ตกลงเหตุผลที่ใช้ไม่ได้เป็นรุ่นความปลอดภัยใน Windows Vista และใหม่กว่า บัญชีในกลุ่มผู้ดูแลระบบยังคงทำงานทุกอย่างที่ไม่ได้ยกระดับอย่างชัดเจนว่าเป็นผู้ใช้ที่ จำกัด ยกเว้นในกรณีที่เป็นAdministrator
บัญชีซึ่งวิ่งทุกอย่างสูง ด้วยเหตุนี้จึงถือว่าไม่ดีที่จะใช้เป็นบัญชีเข้าสู่ระบบของคุณและถูกปิดใช้งานตามปกติ
คุณสามารถเปิดใช้งานและจากนั้นrunas
จะเรียกใช้เป็นบัญชีนั้น สิ่งนี้นำเสนอปัญหาเล็กน้อย - ตอนนี้คุณกำลังทำงานกับสภาพแวดล้อมของผู้ใช้ที่แตกต่างกันซึ่งอาจมีการตั้งค่าตัวแปรสภาพแวดล้อมที่แตกต่างกัน 1
วิธีที่ดีกว่าในการทำเช่นนี้จะเป็นการยกระดับเป็นผู้ใช้ปัจจุบันของคุณผ่าน UAC น่าเสียดายที่พรอมต์คำสั่งมาตรฐานไม่รวมความสามารถนั้น - แต่โปรแกรมของ บริษัท อื่นและ PowerShell และ WSHell (VBScript) ในตัวสามารถทำได้
การยืมจากคำตอบอื่นของฉันคุณสามารถเรียกใช้คำสั่ง PowerShell ได้โดยตรงด้วยpowershell -c
:
powershell -c start -verb runas notepad C:\Windows\System32\drivers\etc\hosts
ซึ่งโดยทั่วไปจะบอก PowerShell ให้เรียกใช้สิ่งต่อไปนี้ ( start
เป็นนามแฝงStart-Process
):
Start-Process -Verb "runas" notepad C:\Windows\System32\drivers\etc\hosts
เคล็ดลับที่นี่คือการผ่านคำกริยาrunas
ก่อให้เกิด UAC
ทั้งStart-Process -Verb runas
cmd มาตรฐานและrunas
จะไม่ผ่านไดเรกทอรีทำงานปัจจุบันดังนั้นใช้เส้นทางแบบเต็มในคำสั่งใด ๆ ที่คุณยกระดับในแบบนี้เสมอ
โปรดทราบว่าข้อโต้แย้งบางอย่างเช่น-c
อาจขัดแย้งกับStart-Process
ข้อโต้แย้งดังนั้นวิธีที่ปลอดภัยที่สุดคือ:
powershell "-c start -verb runas commandname -argumentlist 'arg1 arg2'"
1 หมายเหตุ: ใช้กับตัวแปรสภาพแวดล้อมของผู้ใช้เท่านั้น ตัวแปรสภาวะแวดล้อมที่คุณตั้งค่าในกระบวนการหลักจะไม่ผ่านโดย UAC ! สิ่งนี้ใช้กับrunas
และมันยิ่งแย่ลงเพราะคุณจะไม่ได้รับ vars ที่ถูกต้องของผู้ใช้