วิธีการเปิด Vbscript ในโหมดยกระดับ (เรียกใช้ในฐานะผู้ดูแลระบบ)

2015-07-26 17:23:48
หลัก·ไมโครซอฟท์·วิธีการเปิด Vbscript ในโหมดยกระดับ (เรียกใช้ในฐานะผู้ดูแลระบบ)

ด้วยการแนะนำการควบคุมบัญชีผู้ใช้ (UAC) ใน Windows Vista คุณมักจะเปิด Command Prompt เพื่อเรียกใช้แบตช์ไฟล์และสคริปต์ที่ต้องการสิทธิ์ระดับผู้ดูแลระบบ แอปพลิเคชันสามารถใช้ไฟล์รายการ (โดยใช้ค่าสถานะ RequireAdministrator ) เพื่อเรียกใช้การยกระดับโดยอัตโนมัติ

สำหรับสคริปต์บทความนี้ให้เทคนิคเล็กน้อยที่คุณสามารถยกระดับโดยอัตโนมัติโดยใช้พารามิเตอร์“ Runas” ShellExecute

( ดูเพิ่มเติม วิธีการยกระดับไฟล์แบตช์โดยอัตโนมัติเพื่อเรียกใช้ในฐานะผู้ดูแลระบบสำหรับวิธีการยกระดับอัตโนมัติอื่น)

เรียกใช้ Vbscript แบบยกระดับ

ขอบคุณ Jim Barry ที่ให้ทิปฉันเกี่ยวกับการใช้อาร์กิวเมนต์ runas ในวิธี ShellExecute ของวัตถุ Shell.Application ด้วยการแนะนำของ Jim สคริปต์ต้นฉบับของฉันย่อตัวลงอย่างมาก ใช้หนึ่งในวิธีการเหล่านี้เพื่อเรียกใช้ VBScripts ที่ยกระดับ

วิธีที่ 1

นี่คือสคริปต์ตัวอย่างที่เรียกใช้ตัวเองอีกครั้งในฐานะผู้ดูแลระบบ (ยกระดับ) โดยใช้พารามิเตอร์ runas หากสคริปต์ไม่มีอาร์กิวเมนต์บรรทัดคำสั่งที่ส่งผ่าน เมื่อเรียกใช้สคริปต์อีกครั้งในฐานะผู้ดูแลระบบให้ส่งอาร์กิวเมนต์ที่เป็นการหลอกลวงเพื่อให้สคริปต์ไม่ทำงานในวงจรวนซ้ำ

 ถ้า WScript.Arguments.length = 0 ให้ตั้งค่า objShell = CreateObject ("Shell.Application") 'ผ่านการโต้แย้งปลอมพูด [uac] objShell.ShellExecute "wscript.exe", Chr (34) & _ WScript.ScriptFullName & Chrr (34) & "uac", "", "runas", 1 อื่น ๆ 'เพิ่มรหัสของคุณที่นี่สิ้นสุดถ้า 

วิธีที่ 2

วิธีนี้ใช้สคริปต์ตัวเรียกใช้งานซึ่งรัน VBScript หลักที่ยกระดับโดยใช้คำกริยา runas

Set objShell = CreateObject("Shell.Application") Set FSO = CreateObject("Scripting.FileSystemObject") strPath = FSO.GetParentFolderName (WScript.ScriptFullName) If FSO.FileExists(strPath & "\MAIN.VBS") Then objShell.ShellExecute "wscript.exe", _ Chr(34) & strPath & "\MAIN.VBS" & Chr(34), "", "runas", 1 Else MsgBox "Script file MAIN.VBS not found" End If 

คุณจะเห็นกล่องโต้ตอบระดับความสูงของ UAC

เมื่อผู้ใช้คลิก ดำเนิน การ ต่อ เพื่ออนุมัติสคริปต์หลักจะเปิดตัวในฐานะผู้ดูแลระบบ

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

ตัวเลือกของบรรณาธิการ