เริ่มกระบวนการยกระดับจาก PowerShell
PowerShell เป็นพรอมต์คำสั่งรูปแบบขั้นสูง มีการขยายด้วยชุด cmdlet ที่พร้อมใช้งานจำนวนมาก และมาพร้อมกับความสามารถในการใช้ .NET framework/C# ในสถานการณ์ต่างๆ วันนี้ ฉันจะแสดงวิธีเริ่มกระบวนการที่ยกระดับจากพรอมต์ของ PowerShell
ก่อนหน้านี้ฉันได้กล่าวถึงวิธีการเดียวกันที่สามารถทำได้ เสร็จสิ้นจากไฟล์แบตช์. อย่างไรก็ตาม ด้วยการอัปเดตผู้สร้าง Windows 10 Microsoft จะไม่เน้นที่พรอมต์คำสั่งและส่งเสริม PowerShell ทุกที่ ดูบทความเหล่านี้สำหรับการอ้างอิง:
- Windows 10 build 14986 แทนที่พรอมต์คำสั่งด้วย PowerShell ทุกที่
- เพิ่ม Command Prompt กลับไปที่เมนู Win+X ใน Windows 10 Creators Update
- เพิ่ม Command Prompt ให้กับ Context Menu ใน Windows 10 Creators Update
- ลบหน้าต่าง Open PowerShell ที่นี่จากเมนูบริบทใน Windows 10
ดังนั้นจึงเป็นความคิดที่ดีที่จะเรียนรู้เคล็ดลับที่มีประโยชน์ซึ่งสามารถทำได้จากคอนโซล PowerShell และประหยัดเวลาของคุณ
เริ่มกระบวนการยกระดับจาก PowerShell
สำหรับงานนี้ เราจะใช้ Start-Process cmdlet รองรับ a จำนวนตัวเลือกหนึ่งในนั้นคือ -กริยา หากคุณระบุ -Verb เป็น "RunAs" กระบวนการที่คุณกำลังจะเริ่มต้นจะเปิดขึ้น
มาลองเปิดแอพ Notepad ที่ยกระดับกัน
- เปิด PowerShell.
- พิมพ์หรือคัดลอกและวางคำสั่งต่อไปนี้:
เริ่มกระบวนการ "notepad.exe" -Verb RunAs
- ข้อความแจ้ง UAC จะปรากฏขึ้น ยืนยัน:
- แอป Notepad จะเปิดขึ้น
คุณสามารถตรวจสอบสิ่งนี้ได้โดยใช้ตัวจัดการงาน ดูบทความ: วิธีตรวจสอบว่ากระบวนการทำงานเป็นผู้ดูแลระบบ (ยกระดับ) ใน Windows. หรือไม่
หมายเหตุ: หากคุณกดปุ่ม "ไม่" ที่ข้อความแจ้ง UAC คอนโซล PowerShell จะพิมพ์ข้อความแสดงข้อผิดพลาด "การดำเนินการถูกยกเลิกโดยผู้ใช้" นี้คาดว่า.
เคล็ดลับ: คุณสามารถเรียกใช้แอปที่ยกระดับด้วยความช่วยเหลือของ PowerShell ได้โดยตรงโดยไม่ต้องเปิดคอนโซลก่อน ตัวอย่างเช่น คุณสามารถสร้างทางลัดหรือพิมพ์คำสั่งต่อไปนี้ในกล่องโต้ตอบเรียกใช้:
powershell.exe - คำสั่ง "เริ่มกระบวนการ Notepad.exe -Verb RunAs"
ผลลัพธ์จะเหมือนกัน หน้าต่าง Powershell จะกะพริบครู่หนึ่ง จากนั้นแอปจะเปิดขึ้นในระดับสูง
เริ่มกระบวนการยกระดับด้วยอาร์กิวเมนต์จาก PowerShell
หากคุณต้องการส่งผ่านอาร์กิวเมนต์ (หรือที่เรียกว่าสวิตช์หรือพารามิเตอร์) ไปยังกระบวนการที่คุณจะเริ่มต้นยกระดับจาก PowerShell ให้ใช้สวิตช์ -Argument ของ cmdlet กระบวนการเริ่มต้น อาร์กิวเมนต์ที่ระบุจะถูกส่งไปยังไฟล์ปฏิบัติการเป้าหมาย นี่คือตัวอย่างที่แก้ไขด้วย Notepad.exe ที่ฉันใช้ด้านบนนี้
สำหรับคอนโซล PowerShell ให้ใช้คำสั่งต่อไปนี้:
เริ่มกระบวนการ "notepad.exe" - อาร์กิวเมนต์ "C:\My Stuff\my file.txt" -Verb RunAs
ใส่เส้นทางที่มีช่องว่างในเครื่องหมายคำพูด หากคุณต้องการส่งผ่านมากกว่าอาร์กิวเมนต์ ให้คั่นด้วยเครื่องหมายจุลภาคและใช้ ArgumentList:
เริ่มกระบวนการ "file.exe" -ArgumentList "argument1, argument2, argument3" -Verb RunAs
จากภายใน PowerShell คุณสามารถใช้คำสั่งต่อไปนี้:
powershell.exe - คำสั่ง "เริ่มกระบวนการ 'Notepad.exe' - อาร์กิวเมนต์ 'C:\My Stuff\my file.txt' - กริยา RunAs"
อีกตัวอย่างหนึ่ง:
powershell - คำสั่ง "เริ่มกระบวนการ powershell.exe -ArgumentList '-ExecutionPolicy Bypass -NoExit -Command \"จุดตรวจสอบ-คอมพิวเตอร์ -คำอธิบาย \"RestorePoint1\" -RestorePointType \"MODIFY_SETTINGS\"\""' -กริยา วิ่งเป็น"
ดูบทความสำหรับข้อมูลเพิ่มเติม: สร้างจุดคืนค่าใน Windows 10 ด้วย PowerShell
ล้อมรอบเส้นทางด้วยช่องว่างในเครื่องหมายคำพูดเดียวดังที่แสดงด้านบน
แค่นั้นแหละ.