ใน Windows เวอร์ชันที่รองรับทั้งหมด คุณสามารถเรียกใช้แอปพลิเคชันในนามของผู้ใช้รายอื่น (เรียกใช้ในฐานะ ) ในเซสชั่นปัจจุบัน สิ่งนี้ทำให้คุณสามารถเรียกใช้สคริปต์ (.bat, .cmd, .vbs, .ps1), ไฟล์ปฏิบัติการ (.exe) หรือการติดตั้งแอพพลิเคชั่น (.msi, .cab) ด้วยสิทธิ์ของผู้ใช้รายอื่น
ตัวอย่างเช่น คุณสามารถใช้ RunAs เพื่อติดตั้งแอปหรือเรียกใช้สแน็ปอิน MMC ภายใต้บัญชีผู้ดูแลระบบในเซสชันผู้ใช้ที่ไม่มีสิทธิพิเศษ โอกาสในการเรียกใช้โปรแกรมในฐานะผู้ใช้อื่นอาจมีประโยชน์เมื่อแอปพลิเคชันได้รับการกำหนดค่าภายใต้ผู้ใช้รายอื่น (และเก็บการตั้งค่าไว้ในโปรไฟล์ของผู้ใช้รายอื่นซึ่งผู้ใช้ปัจจุบันไม่สามารถเข้าถึงได้) แต่ต้องเริ่มต้นด้วยการตั้งค่าเดียวกันในอีก เซสชันของผู้ใช้
[/alert]
ใน Windows 10 มีหลายวิธีในการเรียกใช้โปรแกรม/กระบวนการในนามของผู้ใช้รายอื่น
บริการเข้าสู่ระบบรอง (seclogon) มีหน้าที่รับผิดชอบความสามารถในการเรียกใช้โปรแกรมต่าง ๆ ในฐานะผู้ใช้ที่แตกต่างกันใน Windows หากบริการนี้หยุดลง เมธอด RunAs ที่อธิบายไว้ทั้งหมดจะไม่ทำงาน คุณสามารถตรวจสอบว่าบริการเริ่มต้นด้วยคำสั่ง PowerShell ต่อไปนี้:
Get-Service seclogon
จะเรียกใช้แอปในฐานะผู้ใช้ที่แตกต่างจาก File Explorer ได้อย่างไร
วิธีที่ง่ายที่สุดในการเรียกใช้แอปพลิเคชันในนามของผู้ใช้รายอื่นคือการใช้ Windows File Explorer GUI เพียงค้นหาแอปพลิเคชัน (หรือทางลัด) ที่คุณต้องการเริ่ม กดปุ่ม Shift ที่สำคัญและคลิกขวาที่มัน เลือก เรียกใช้ในฐานะผู้ใช้อื่น ในเมนูบริบท
[แจ้งเตือน]หมายเหตุ . หากรายการเมนู “เรียกใช้ในฐานะผู้ใช้อื่น ” หายไป โปรดดูหัวข้อถัดไป
ในหน้าต่างถัดไป ระบุชื่อและรหัสผ่านของผู้ใช้ภายใต้บัญชีที่คุณต้องการเรียกใช้แอปพลิเคชัน แล้วคลิก ตกลง .
หมายเหตุ . หากคุณต้องการระบุผู้ใช้โดเมน จะมีการใช้ชื่อรูปแบบใดรูปแบบหนึ่งต่อไปนี้:UserName@DomainName
หรือ DomainName\UserName
. สำคัญ . การเรียกใช้โปรแกรมในนามของผู้ใช้อื่นเป็นไปได้หากบัญชีมีรหัสผ่าน การใช้ RunAs สำหรับผู้ใช้ที่มีรหัสผ่านว่างเปล่าจะไม่ทำงาน
เปิดตัวจัดการงานและตรวจสอบให้แน่ใจว่าแอปพลิเคชันทำงานภายใต้บัญชีผู้ใช้ที่ระบุ
ไม่มีตัวเลือก "เรียกใช้ในฐานะผู้ใช้อื่น" ใน Windows 10
หากไม่มี เรียกใช้ในฐานะผู้ใช้อื่น ในเมนูบริบท File Explorer เปิด Local Group Policy Editor (gpedit.msc
) และตรวจสอบให้แน่ใจว่า ต้องการเส้นทางที่เชื่อถือได้สำหรับการป้อนข้อมูลรับรอง นโยบายถูกปิดใช้งาน (หรือไม่ได้กำหนดค่า) ใน การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแล -> ส่วนประกอบของ Windows -> ส่วนต่อประสานผู้ใช้ข้อมูลรับรอง .
การใช้คำสั่ง RunAs เพื่อเรียกใช้โปรแกรมในฐานะผู้ใช้อื่นจาก CMD
คุณสามารถใช้เครื่องมือ cli ในตัวของ Windows runas.exe เพื่อเรียกใช้แอปพลิเคชันแอพในฐานะผู้ใช้อื่นจากพรอมต์คำสั่ง runas
คำสั่งยังให้คุณบันทึกรหัสผ่านของผู้ใช้ไปยัง Windows Credential Manager ได้อีกด้วย คุณจะได้ไม่ต้องป้อนรหัสผ่านทุกครั้ง
เปิดพรอมต์คำสั่ง (หรือ เรียกใช้ หน้าต่างโดยกด Win+R ). ในการเริ่ม Notepad.exe ภายใต้บัญชีผู้ดูแลระบบ ให้เรียกใช้คำสั่งนี้:
runas /user:admin "C:\Windows\notepad.exe"
runas /user:"antony jr" notepad.exe
ในหน้าต่างถัดไป ข้อความแจ้ง "ป้อนรหัสผ่านสำหรับผู้ดูแลระบบ" จะปรากฏขึ้น โดยคุณจะต้องป้อนรหัสผ่านของผู้ใช้และกด Enter
แอปพลิเคชันของคุณควรเปิดขึ้น ในกรณีของฉัน นี่คือ cmd.exe ชื่อหน้าต่างระบุว่า “ทำงานเป็น PCName\ชื่อผู้ใช้ “:
ตัวอย่างเช่น คุณสามารถเปิดแผงควบคุมภายใต้ผู้ใช้อื่น:
runas /user:admin control
หากคุณต้องการเรียกใช้โปรแกรมภายใต้ผู้ใช้โดเมน ให้ใช้รูปแบบชื่อต่อไปนี้:UserName@DomainName
หรือ DomainName\UserName
. ตัวอย่างเช่น หากต้องการเปิดไฟล์ข้อความโดยใช้แผ่นจดบันทึกในนามของผู้ใช้โดเมน ให้ใช้คำสั่ง:
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 " ...
บางครั้งคุณจำเป็นต้องเรียกใช้โปรแกรมในฐานะผู้ใช้โดเมนจากคอมพิวเตอร์ที่ไม่ได้เข้าร่วมโดเมน AD ในกรณีนี้ คุณต้องใช้คำสั่งต่อไปนี้ (สันนิษฐานว่าเซิร์ฟเวอร์ DNS ที่ระบุในการตั้งค่าเครือข่ายของคอมพิวเตอร์ของคุณสามารถแก้ไขชื่อโดเมนนี้ได้):
runas /netonly /user:contoso\bmorgan cmd.exe
หากคุณไม่ต้องการโหลดโปรไฟล์ผู้ใช้เมื่อเริ่มต้นโปรแกรมในฐานะผู้ใช้อื่น ให้ใช้ /noprofile พารามิเตอร์. วิธีนี้ช่วยให้เปิดแอปพลิเคชันได้เร็วขึ้นมาก แต่อาจทำให้การทำงานของโปรแกรมที่จัดเก็บข้อมูลแอปในโปรไฟล์ของผู้ใช้ไม่ถูกต้อง
วิธีใช้ RunAs โดยไม่ต้องใส่รหัสผ่าน
คุณสามารถบันทึกข้อมูลรับรองผู้ใช้ (ด้วยรหัสผ่าน) ที่คุณป้อน /savecred
พารามิเตอร์นี้ใช้สำหรับสิ่งนี้
runas /user:admin /savecred “C:\Windows\cmd.exe”
หลังจากระบุรหัสผ่านแล้ว รหัสผ่านจะถูกบันทึกไว้ใน Windows Credential Manager .
ครั้งต่อไปที่คุณรันคำสั่ง runas ภายใต้ผู้ใช้เดียวกันกับ /savecred
คีย์ Windows จะใช้รหัสผ่านที่บันทึกไว้โดยอัตโนมัติจาก Credential Manager โดยไม่ต้องแจ้งให้ป้อนอีกครั้ง
หากต้องการแสดงรายการข้อมูลรับรองที่บันทึกไว้ใน Credential Manager ให้ใช้คำสั่งต่อไปนี้:
rundll32.exe keymgr.dll, KRShowKeyMgr
อย่างไรก็ตาม การใช้ /savecred
พารามิเตอร์ไม่ปลอดภัย เนื่องจากผู้ใช้ที่บันทึกโปรไฟล์ไว้ สามารถใช้เพื่อเรียกใช้ ใดๆ คำสั่งด้วยสิทธิพิเศษเหล่านี้และแม้กระทั่งเปลี่ยนรหัสผ่านผู้ใช้อื่น นอกจากนี้ยังง่ายต่อการขโมยรหัสผ่านที่บันทึกไว้ใน Credential Manager ดังนั้นจึงแนะนำให้ป้องกันไม่ให้ Windows บันทึกรหัสผ่าน (และอย่าบันทึกรหัสผ่านของบัญชีผู้ดูแลระบบที่มีสิทธิ์)
จะสร้างทางลัดให้ทำงานเป็นผู้ใช้คนละคนได้อย่างไร
คุณสามารถสร้างทางลัดบนเดสก์ท็อปที่อนุญาตให้คุณเรียกใช้โปรแกรมในฐานะผู้ใช้อื่นได้ เพียงสร้างทางลัดใหม่และระบุ runas
คำสั่งพร้อมพารามิเตอร์ที่จำเป็นในช่องตำแหน่ง
เมื่อคุณเรียกใช้ทางลัดดังกล่าว คุณจะได้รับแจ้งให้ป้อนรหัสผ่านผู้ใช้
หากคุณระบุ /savecred
. เพิ่มเติม พารามิเตอร์ใน runas
ทางลัดแล้วรหัสผ่านจะได้รับแจ้งเพียงครั้งเดียว รหัสผ่านจะถูกบันทึกไว้ใน Credential Manager และใช้โดยอัตโนมัติเมื่อคุณเรียกใช้ทางลัดโดยไม่ต้องถามรหัสผ่าน
ช็อตคัทดังกล่าวมักใช้ในการรันโปรแกรมที่ต้องการการอนุญาตระดับสูงเพื่อรัน อย่างไรก็ตาม มีวิธีที่ปลอดภัยกว่าในการเรียกใช้โปรแกรมโดยไม่มีสิทธิ์ของผู้ดูแลระบบ หรือปิดใช้งานข้อความแจ้ง UAC สำหรับแอปพลิเคชันเฉพาะ
จะเรียกใช้ MMC Snap-In ในฐานะผู้ใช้อื่นได้อย่างไร
ในบางกรณี คุณต้องเรียกใช้สแน็ปอินการจัดการ Windows ตัวใดตัวหนึ่งในฐานะผู้ใช้อื่น ตัวอย่างเช่น คุณสามารถใช้คำสั่งต่อไปนี้เพื่อเรียกใช้ Active Directory Users and Computers (ADUC) RSAT snap-in เป็นผู้ใช้อื่น:
runas.exe /user:DOMAIN\USER "cmd /c start \"\" mmc %SystemRoot%\system32\dsa.msc"
ในทำนองเดียวกัน คุณสามารถเรียกใช้ snap-in อื่นๆ ได้ (หากคุณทราบชื่อ)
เพิ่มตัวเลือก “เรียกใช้ในฐานะ” ให้กับเมนูเริ่มใน Windows 10
ตามค่าเริ่มต้นในรายการ Start Menu ของ Windows 10 จะไม่มีตัวเลือก "Run As" ในการเพิ่มเมนูบริบท “เรียกใช้ในฐานะผู้ใช้อื่น” ให้เปิดใช้งาน “แสดงการเรียกใช้เป็นคำสั่งผู้ใช้อื่นเมื่อเริ่ม” นโยบายใน การกำหนดค่าผู้ใช้ -> เทมเพลตการดูแลระบบ -> เมนูเริ่มและแถบงาน ของ Local Group Policy Editor (gpedit.msc)
หรือหากไม่มี gpedit.msc ให้สร้างพารามิเตอร์ DWORD ใหม่โดยใช้ชื่อ ShowRunasDifferentuserinStart และค่า 1 ในรีจิสตรีคีย์ HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer . คุณสามารถใช้คำสั่ง PowerShell ต่อไปนี้เพื่อเพิ่มพารามิเตอร์ reg:
New-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\CurrentVersion\Explorer" -Name ShowRunasDifferentuserinStart -Value 1 -PropertyType DWORD -Force
อัปเดตการตั้งค่านโยบายกลุ่ม (gpupdate /force
) และตรวจสอบให้แน่ใจว่าเมนูบริบทใหม่ เพิ่มเติม -> เรียกใช้ในฐานะผู้ใช้อื่น ได้ปรากฏขึ้นสำหรับโปรแกรมในเมนูเริ่ม