Trong tất cả phiên bản Windows hỗ trợ, có thể chạy ứng dụng thay mặt user khác (Run As) trong phiên hiện tại. Cho phép chạy script (.bat, .cmd, .vbs, .ps1), file thực thi (.exe) hoặc cài đặt ứng dụng (.msi, .cab) với đặc quyền user khác (thường là admin).
Ví dụ, dùng RunAs cài app hoặc chạy MMC snap-in dưới tài khoản admin trong phiên user không đặc quyền. Khả năng chạy chương trình với user khác hữu ích khi app cấu hình dưới user khác (lưu cài đặt trong profile user khác, user hiện tại không truy cập được), nhưng phải chạy với cùng cài đặt trong phiên user khác.
Dịch vụ Secondary Log-on (seclogon) chịu trách nhiệm chạy chương trình với user khác trong Windows. Nếu dịch vụ dừng, tất cả phương pháp RunAs không hoạt động. Kiểm tra dịch vụ đã chạy bằng PowerShell:
Get-Service seclogon
Chạy app với user khác từ File Explorer
Cách dễ nhất chạy ứng dụng thay mặt user khác dùng GUI Windows File Explorer. Chỉ cần tìm ứng dụng (hoặc shortcut) muốn chạy, giữ phím Shift và chuột phải vào nó. Chọn Run as different user trong menu ngữ cảnh.
[alert]Lưu ý. Nếu mục menu "Run as different user" thiếu, xem mục tiếp theo.
Trong cửa sổ tiếp theo, nhập tên và mật khẩu user muốn chạy ứng dụng và nhấp OK.
Lưu ý. Nếu cần chỉ định user domain, dùng một trong hai định dạng tên: UserName@DomainName hoặc DomainName\UserName.
Quan trọng. Chạy chương trình thay mặt user khác chỉ khả thi nếu tài khoản có mật khẩu. Dùng RunAs cho user mật khẩu rỗng không hoạt động.
Mở Task Manager xác minh ứng dụng chạy dưới tài khoản user chỉ định.
Thiếu tùy chọn "Run As Different User" trong Windows 10
Nếu không có tùy chọn Run as different user trong menu ngữ cảnh File Explorer, mở Local Group Policy Editor (gpedit.msc) và đảm bảo chính sách Require trusted path for credential entry bị tắt (hoặc không cấu hình) tại Computer Configuration → Administrative Templates → Windows Components → Credential User Interface.
Dùng lệnh RunAs chạy chương trình với user khác từ CMD
Bạn dùng công cụ CLI tích hợp runas.exe chạy ứng dụng với user khác từ command prompt. Lệnh runas cũng cho lưu mật khẩu user vào Windows Credential Manager để không nhập lại mỗi lần.
Mở command prompt (hoặc cửa sổ Run Win+R). Để chạy Notepad.exe dưới tài khoản admin, chạy:
runas /user:admin "C:\Windows\notepad.exe"
Mẹo. Nếu username chứa khoảng trắng, đặt ngoặc kép quanh nó:
runas /user:"antony jr" notepad.exe
Cửa sổ tiếp theo nhắc "Enter the password for admin", nhập mật khẩu user và Enter.
Ứng dụng nên mở. Trong trường hợp tôi là cmd.exe. Tiêu đề cửa sổ ghi "running as PCName\username":
Ví dụ, mở Control Panel dưới user khác:
runas /user:admin control
Nếu cần chạy chương trình dưới user domain, dùng định dạng: UserName@DomainName hoặc DomainName\UserName. Ví dụ mở file text dùng notepad thay mặt user domain:
runas /user:corp\server_admin "C:\Windows\system32\notepad.exe C:\ps\region.txt"
Enter the password for corp\server_admin: Attempting to start C:\Windows\system32\notepad.exe C:\ps\region.txt as user "corp\server_admin " ...
Đôi khi cần chạy chương trình với user domain từ máy không tham gia AD domain. Lúc này dùng lệnh (giả định DNS trong cài đặt mạng máy bạn phân giải được tên domain):
runas /netonly /user:contoso\bmorgan cmd.exe
Nếu không muốn load user profile khi chạy chương trình với user khác, dùng tham số /noprofile. Cho app khởi động nhanh hơn, nhưng có thể gây hoạt động không đúng chương trình lưu dữ liệu app trong profile user.
Dùng RunAs không nhắc mật khẩu
Bạn có thể lưu thông tin đăng nhập (có mật khẩu) bạn nhập. Tham số /savecred dùng cho việc này.
runas /user:admin /savecred “C:\Windows\cmd.exe”
Sau nhập mật khẩu, nó lưu vào Windows Credential Manager.
Lần sau chạy runas với cùng user và khóa /savecred, Windows tự dùng mật khẩu lưu trong Credential Manager không nhắc nhập lại.
Hiển thị danh sách credential lưu trong Credential Manager:
rundll32.exe keymgr.dll, KRShowKeyMgr
Tuy nhiên, dùng /savecred không an toàn. Vì user trong profile lưu nó có thể dùng chạy bất kỳ lệnh với đặc quyền đó thậm chí đổi mật khẩu user khác. Cũng dễ đánh cắp mật khẩu lưu trong Credential Manager nên khuyến khích ngăn Windows lưu mật khẩu (và không bao giờ lưu mật khẩu tài khoản admin đặc quyền).
Lưu ý. Ngoài ra, /savecred không hoạt động trên Windows Home edition.
Tạo shortcut chạy Run As Different User
Bạn tạo shortcut trên desktop cho phép chạy chương trình với user khác. Tạo shortcut mới, chỉ định lệnh runas với tham số cần thiết trong trường Location.
Khi chạy shortcut này, bạn sẽ nhắc nhập mật khẩu user.
Nếu thêm tham số /savecred vào shortcut runas, mật khẩu chỉ hỏi một lần. Mật khẩu lưu Credential Manager và tự dùng khi chạy shortcut không nhắc password.
Shortcut này thường dùng chạy chương trình yêu cầu quyền nâng cao. Tuy nhiên, có cách an toàn hơn chạy chương trình không cần admin, hoặc tắt UAC prompt cho app cụ thể.
Chạy MMC Snap-Ins với user khác
Trong một số trường hợp, phải chạy snap-in quản trị Windows với user khác. Ví dụ, dùng lệnh sau chạy Active Directory Users and Computers (ADUC) RSAT snap-in với user khác:
runas.exe /user:DOMAIN\USER "cmd /c start \"\" mmc %SystemRoot%\system32\dsa.msc"
Tương tự chạy snap-in khác (nếu biết tên).
Thêm tùy chọn "Run As" vào Start Menu Windows 10
Mặc định trong Windows 10 Start Menu không có tùy chọn "Run As". Để thêm menu ngữ cảnh "Run as different user", bật chính sách "Show Run as different user command on Start" trong User Configuration → Administrative Templates → Start Menu and Taskbar của Local Group Policy Editor (gpedit.msc).
Hoặc nếu thiếu gpedit.msc, tạo DWORD mới tên ShowRunasDifferentuserinStart giá trị 1 trong khóa HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer. Dùng PowerShell thêm tham số registry:
New-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\CurrentVersion\Explorer" -Name ShowRunasDifferentuserinStart -Value 1 -PropertyType DWORD -Force
Cập nhật Group Policy (gpupdate /force) và kiểm tra menu ngữ cảnh mới More → Run as different user xuất hiện cho chương trình trong Start menu.