เรียกใช้ในฐานะผู้ดูแลระบบจากบรรทัดคำสั่งใน Windows 8


11

ฉันพยายามเรียกใช้ Notepad เป็นผู้ดูแลระบบเพื่อให้ฉันสามารถแก้ไขไฟล์โฮสต์ของฉันจากบรรทัดคำสั่ง

ฉันลองrunas /user:(myusername)\administrator "notepad c:\windows\system32\drivers\etc\hosts"แล้วฉันจะป้อนรหัสผ่านของฉันและฉันได้รับ

ข้อผิดพลาด RUNAS: ไม่สามารถเรียกใช้ - notepad c: \ windows \ system32 \ drivers \ etc \ hosts 1327: ข้อ จำกัด ของบัญชีทำให้ผู้ใช้รายนี้ลงชื่อเข้าใช้ไม่ได้ตัวอย่างเช่น: ไม่อนุญาตให้ใช้คำสั่ง pa เปล่าเวลาลงชื่อเข้าใช้จะถูก จำกัด หรือข้อ จำกัด ของนโยบายมีผลบังคับใช้

PS: ฉันรู้ว่าฉันอนุญาตให้บัญชีผู้ใช้ของฉันฉันสามารถแก้ไขได้โดยไม่ต้องทำงานในฐานะผู้ดูแล แต่ฉันต้องการทราบวิธีการทำเช่นนี้โดยไม่ต้องเปลี่ยนการอนุญาตในไฟล์โฮสต์

คำตอบ:


7

ตกลงเหตุผลที่ใช้ไม่ได้เป็นรุ่นความปลอดภัยใน 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 runascmd มาตรฐานและrunasจะไม่ผ่านไดเรกทอรีทำงานปัจจุบันดังนั้นใช้เส้นทางแบบเต็มในคำสั่งใด ๆ ที่คุณยกระดับในแบบนี้เสมอ

โปรดทราบว่าข้อโต้แย้งบางอย่างเช่น-cอาจขัดแย้งกับStart-Processข้อโต้แย้งดังนั้นวิธีที่ปลอดภัยที่สุดคือ:

powershell "-c start -verb runas commandname -argumentlist 'arg1 arg2'"

1 หมายเหตุ: ใช้กับตัวแปรสภาพแวดล้อมของผู้ใช้เท่านั้น ตัวแปรสภาวะแวดล้อมที่คุณตั้งค่าในกระบวนการหลักจะไม่ผ่านโดย UAC ! สิ่งนี้ใช้กับrunasและมันยิ่งแย่ลงเพราะคุณจะไม่ได้รับ vars ที่ถูกต้องของผู้ใช้


มันไม่ได้ผลสำหรับฉันด้วยเครื่องหมายคำพูดคู่
วินซ์

@ Ghodmode คุณช่วยยกตัวอย่างของบรรทัดที่คุณพยายามเรียกใช้หรือไม่? -cหากคุณกำลังหมายถึงตัวอย่างสุดท้ายลองย้ายคำพูดแรกที่หลัง (ดังนั้น-c "startแทน"-c start)
Bob

โปรดทราบว่ากระบวนการ powershell ไม่จำเป็นต้องได้รับการยกระดับเพื่อที่จะเรียกใช้โปรแกรมในฐานะผู้ดูแลระบบ
jiggunjer

แปลกที่มันทำงานก่อนการอัปเดต Windows 10 2019-03
Qwerty

12

เป็นไปได้มากว่าคุณยังไม่ได้เปิดใช้งานบัญชีผู้ดูแลระบบ

ต่อไปนี้เป็นคำแนะนำสำหรับการเปิดใช้บัญชีผู้ดูแล

คุณจะพบข้อมูลเพิ่มเติมเกี่ยวกับ runasบนเว็บไซต์ Microsoft


ผู้ใช้ผู้ดูแลระบบของฉันหยุดทำงานหลังจากอัปเดต Windows 10 2019-03 คำสั่งนี้ซ่อมnet user administrator /active:yes
Qwerty

-1

สิ่งหนึ่งที่คุณสามารถลองได้คือการเปิดพร้อมท์คำสั่งในฐานะผู้ดูแลระบบและเรียกใช้แผ่นจดบันทึกผ่านทางนั้น Notepadเพียงพิมพ์ หลังจากที่คุณทำเช่นนั้นคุณสามารถคลิกไฟล์แล้วเปิดและนำทางไปยังไฟล์โฮสต์และเปิด สุดท้ายคุณก็สามารถประหยัดได้เหมือนปกติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.