ฉันมีเพียงบัญชีเดียวในเครื่อง Windows Vista ของฉันและผู้ใช้นั้นมีสิทธิ์ระดับผู้ดูแลระบบ อย่างไรก็ตามเมื่อฉันพยายามรันคำสั่งภายใน PowerShell เพื่อฆ่ากระบวนการบางอย่างฉันได้รับการต้อนรับด้วยข้อความ "การเข้าถึงถูกปฏิเสธ" ฉันจะเป็นผู้ดูแลระบบได้อย่างไร
ฉันมีเพียงบัญชีเดียวในเครื่อง Windows Vista ของฉันและผู้ใช้นั้นมีสิทธิ์ระดับผู้ดูแลระบบ อย่างไรก็ตามเมื่อฉันพยายามรันคำสั่งภายใน PowerShell เพื่อฆ่ากระบวนการบางอย่างฉันได้รับการต้อนรับด้วยข้อความ "การเข้าถึงถูกปฏิเสธ" ฉันจะเป็นผู้ดูแลระบบได้อย่างไร
คำตอบ:
วิธี v2 Powershell, ตามที่ไมโครซอฟท์คือการคลิกขวาที่ทางลัดและเลือกเรียกใช้ในฐานะผู้ดูแลระบบ
และเพื่อยกระดับภายในหน้าต่าง Powershell:
start-process powershell –verb runAs
ซึ่งจากไฟล์แบตช์ cmd.exe ทางลัดหรือรันไลน์จะมีลักษณะคล้ายกัน (ซ้ำ ๆ ) ดังนี้:
powershell "start-process powershell -verb runas"
นี่เป็นการเปิดอินสแตนซ์ PowerShell ใหม่:
function Run-Elevated ($scriptblock)
{
# TODO: make -NoExit a parameter
# TODO: just open PS (no -Command parameter) if $scriptblock -eq ''
$sh = new-object -com 'Shell.Application'
$sh.ShellExecute('powershell', "-NoExit -Command $scriptblock", '', 'runas')
}
ฉันคาดหวังว่าจะมีปัญหากับเรื่องนี้ - โดยเฉพาะคุณจะไม่ได้ผลลัพธ์ของ scriptblock ของคุณกลับมาในสคริปต์การโทร ในทางตรงกันข้ามมันจะมีอยู่ในอินสแตนซ์ PS ใหม่เพื่อให้คุณสามารถแฮ็คกับมันได้
หากคุณต้องการเสมอเรียก PowerShell กับสิทธิ์ของผู้ดูแลระบบคุณสามารถคลิกขวาที่ทางลัด PowerShell แล้วคลิกที่ "ขั้นสูง ..." ปุ่มบนแท็บ "ทางลัด" แล้วเลือก "เรียกใช้ในฐานะผู้ดูแลระบบ"
วิธีที่ง่าย ...
นี่คือวิธีการตั้งค่าคำสั่งง่าย ๆสำหรับรับสิทธิ์ผู้ดูแลระบบจาก PowerShell ทุกเซสชัน!
ขั้นตอนที่ 1: เปิดโปรไฟล์ PowerShell ของคุณ (อนุญาตให้ notepad สร้างไฟล์หากไฟล์หายไป)
notepad "$profile"
ขั้นตอนที่ 2: วางรหัสต่อไปนี้ไว้ที่ใดก็ได้ในไฟล์นั้น
function GoAdmin { start-process powershell –verb runAs }
ขั้นตอนที่ 3: เริ่ม PowerShell ใหม่ ขณะนี้คำสั่งพร้อมใช้งานอย่างถาวร
ขั้นตอนที่ 4: ทุกครั้งที่คุณต้องการไปเป็นผู้ดูแลระบบเพียงพิมพ์GoAdmin
(และไม่ต้องกังวลเกี่ยวกับการพิมพ์ตัวพิมพ์ที่ถูกต้องฟังก์ชั่น PS นั้นไม่ตรงตามตัวพิมพ์ใหญ่และเล็ก) แน่นอนคุณสามารถตั้งชื่อฟังก์ชั่นที่คล้ายElevate
หรืออะไรก็ได้ แต่ฉันไม่ต้องการความเสี่ยงจากความขัดแย้งดังนั้นฉันจึงตั้งชื่อมันเป็นวลีสองคำโดยไม่มีเครื่องหมายขีดคั่นใด ๆ เพื่อให้แน่ใจว่ามันจะไม่ขัดแย้งกับคุณสมบัติของ PowerShell
โปรดทราบว่าหน้าต่างผู้ดูแลระบบจะเปิดขึ้นในเชลล์แยกต่างหาก คุณสามารถปิดเปลือกเดิมหรือเปิดมันไว้ หากผู้ดูแลระบบของคุณทำงานบางอย่าง "ใหญ่" เช่นการเพิ่ม / แก้ไขตัวแปรสภาพแวดล้อมเชลล์ผู้ใช้ของคุณ (ไม่ใช่ผู้ดูแลระบบ) สามารถพิมพ์refreshenv
เพื่อโหลดสภาพแวดล้อมของมันใหม่และรับการเปลี่ยนแปลง
ดังนั้นโดยทั่วไปเพียงGoAdmin
ทำสิ่งที่ผู้ดูแลระบบเช่นการติดตั้งแพคเกจ (ด้วยhttps://chocolatey.org/แน่นอน!) แล้วปิดหน้าต่างผู้ดูแลระบบและเรียกใช้refreshenv
ในเปลือกผู้ใช้ของคุณ! voila