รับสิทธิ์ผู้ดูแลระบบใน PowerShell


27

ฉันมีเพียงบัญชีเดียวในเครื่อง Windows Vista ของฉันและผู้ใช้นั้นมีสิทธิ์ระดับผู้ดูแลระบบ อย่างไรก็ตามเมื่อฉันพยายามรันคำสั่งภายใน PowerShell เพื่อฆ่ากระบวนการบางอย่างฉันได้รับการต้อนรับด้วยข้อความ "การเข้าถึงถูกปฏิเสธ" ฉันจะเป็นผู้ดูแลระบบได้อย่างไร

คำตอบ:


14

วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการเปิด Powershell ด้วยโทเค็นการจัดการ ในการทำเช่นนี้คุณคลิกขวาที่ Powershell (หรือทางลัด) และคลิกที่ "run as administrator" หรือคุณสามารถใช้elevate.cmd


25

วิธี v2 Powershell, ตามที่ไมโครซอฟท์คือการคลิกขวาที่ทางลัดและเลือกเรียกใช้ในฐานะผู้ดูแลระบบ

และเพื่อยกระดับภายในหน้าต่าง Powershell:

start-process powershell verb runAs

ซึ่งจากไฟล์แบตช์ cmd.exe ทางลัดหรือรันไลน์จะมีลักษณะคล้ายกัน (ซ้ำ ๆ ) ดังนี้:

powershell "start-process powershell -verb runas"

10

นี่เป็นการเปิดอินสแตนซ์ 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 ใหม่เพื่อให้คุณสามารถแฮ็คกับมันได้


5

หากคุณต้องการเสมอเรียก PowerShell กับสิทธิ์ของผู้ดูแลระบบคุณสามารถคลิกขวาที่ทางลัด PowerShell แล้วคลิกที่ "ขั้นสูง ..." ปุ่มบนแท็บ "ทางลัด" แล้วเลือก "เรียกใช้ในฐานะผู้ดูแลระบบ"


0

วิธีที่ง่าย ...

นี่คือวิธีการตั้งค่าคำสั่งง่าย ๆสำหรับรับสิทธิ์ผู้ดูแลระบบจาก 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

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