
เริ่มต้นด้วย Build 24H2, Windows 11 มีคำสั่ง sudo ในตัว คำสั่งนี้อนุญาตให้เรียกใช้คำสั่งในฐานะผู้ดูแลระบบโดยตรงจากเซสชัน CMD/PowerShell/เทอร์มินัลที่ไม่ได้รับสิทธิพิเศษ
โดยค่าเริ่มต้นคำสั่ง sudo จะถูกปิดใช้งานใน Windows 11 เพื่ออนุญาตให้ใช้เครื่องมือนี้ให้ใช้สวิตช์เปิดใช้งาน Sudo Toggle ในการตั้งค่า-> System-> สำหรับนักพัฒนา

หรือคุณสามารถเปิดใช้งาน Sudo ผ่าน Windows Registry
reg เพิ่ม" hklm \ software \ microsoft \ windows \ currentversion \ sudo "/v" เปิดใช้งาน "/t reg\_dword/d 1/f
ตัวอย่างเช่นการรันคำสั่ง PowerShell ต่อไปนี้เพื่อรีสตาร์ทบริการ Windows จากเทอร์มินัลที่ไม่ได้รับการปรับปรุงจะส่งผลให้เกิดข้อผิดพลาด
รีสตาร์ทบริการ iphlpsvc
จากนั้นเปิดใช้งาน sudo ในการตั้งค่า Windows และเรียกใช้คำสั่งเดียวกันผ่าน sudo
Sudo PowerShell" รีสตาร์ท-บริการ iphlpsvc " `
พรอมต์การควบคุมบัญชีผู้ใช้ (UAC) จะปรากฏขึ้นเพื่อขอความสูงในสิทธิพิเศษ เมื่อได้รับการอนุมัติแล้วหน้าต่างเทอร์มินัลใหม่จะถูกเปิดตัว (แยกจากเซสชันปัจจุบันที่มีการจัดตั้งบริบทแล้ว) และคำสั่งที่ระบุจะถูกดำเนินการด้วยสิทธิ์การดูแลระบบ

ซึ่งแตกต่างจาก runas คำสั่ง sudo ไม่ได้แจ้งให้รหัสผ่านผู้ดูแลระบบในบรรทัดคำสั่ง พรอมต์ UAC ใช้เพื่อยืนยันและยกระดับสิทธิ์ของผู้ใช้ปัจจุบัน แต่ไม่อนุญาตให้เลือกบัญชีผู้ใช้ที่แตกต่างกันเพื่อยกระดับ
ในทำนองเดียวกันคุณสามารถใช้ sudo ในพรอมต์ CMD ฉันกำลังพยายามหยุดบริการโดยใช้พรอมต์คำสั่งที่ไม่ใช่ (ไม่ได้รับการปรับปรุง)
net stop iphlpsvc
System error 5 has occurred.Access is denied.
ตอนนี้ฉันเรียกใช้คำสั่งเดียวกันผ่าน sudo:
sudo net หยุด iphlpsvc

เรียกใช้เป็นผู้ดูแลระบบ
” ตัวเลือก. หากคอนโซล PowerShell ทำงานในโหมดที่ไม่ใช่ผู้บริหารคุณต้องเริ่มต้นเซสชันที่สูงขึ้นจากภายในเซสชันปัจจุบันโดยใช้คำสั่งนี้:
ก่อนหน้านี้การรันโปรแกรมหรือคำสั่งที่มีสิทธิ์ยกระดับจากคอนโซลที่ไม่มีการจัดเตรียมจำเป็นต้องเรียกใช้หน้าต่างพรอมต์คำสั่งใหม่โดยใช้ตัวเลือก“” หากคอนโซล PowerShell ทำงานในโหมดที่ไม่ใช่ผู้บริหารคุณต้องเริ่มต้นเซสชันที่สูงขึ้นจากภายในเซสชันปัจจุบันโดยใช้คำสั่งนี้:
`` เริ่มกระบวนการ PowerShell-Verb runas `
Sudo สำหรับ Windows เรียกใช้แอพที่มีสิทธิ์สูงในสามโหมด โหมดเหล่านี้สามารถเลือกได้จากแอพการตั้งค่าหรือระบุจากบรรทัดคำสั่ง
-
ในหน้าต่างใหม่ - เมื่อคำสั่งหรือโปรแกรมทำงานผ่าน Sudo จะเปิดในหน้าต่างยกระดับใหม่ (เซสชัน) ซึ่งทำงานเป็นผู้ดูแลระบบ นี่คือพฤติกรรมเริ่มต้น
sudo config-เปิดใช้งาน forcenewwindow -
ด้วยการปิดใช้งานอินพุต-นี่คือตัวเลือกที่ปลอดภัยที่สุดโดยที่คำสั่งทำงานด้วยสิทธิ์ที่สูงขึ้นในหน้าต่างปัจจุบัน แต่ไม่สามารถรับหรือแจ้งให้ผู้ใช้ป้อนข้อมูลภายในเซสชันนั้น:
sudo config-เปิดใช้งาน disableInput -
Inline - โหมดนี้คล้ายกับพฤติกรรมของคำสั่ง sudo ใน Linux และ OSS อื่น ๆ คำสั่งยกระดับทำงานในคอนโซลปัจจุบันและสามารถรับอินพุตจากมัน (ตัวเลือกที่สะดวกที่สุด แต่ปลอดภัยที่สุด):
sudo config-เปิดใช้งานปกติ

คุณสามารถเรียกใช้คำสั่งยกระดับในคอนโซลปัจจุบันโดยใช้ sudo โดยไม่คำนึงถึงโหมด Sudo ปัจจุบัน เพียงเพิ่มตัวเลือกอินไลน์
sudo-inline net stop iphlpsvc

หากต้องการดูรายการเต็มของตัวเลือกและพารามิเตอร์ Sudo ที่รองรับใน Windows ให้เรียกใช้คำสั่งต่อไปนี้:
sudo-h

*ลิงค์แหล่งที่มา:
การควบคุมบัญชีผู้ใช้ (UAC) พรอมต์, runas,