วิธียกระดับแบตช์ไฟล์โดยอัตโนมัติเพื่อเรียกใช้ในฐานะผู้ดูแลระบบ
บางครั้งคุณจำเป็นต้องสร้างไฟล์แบตช์ซึ่งรวมถึงคำสั่งที่ต้องใช้สิทธิ์ระดับสูง เนื่องจากฟังก์ชัน UAC ที่รวมอยู่ใน Windows ตั้งแต่ Windows Vista เมื่อเริ่มต้นแบตช์ไฟล์ จะเปิดขึ้นโดยไม่ใช้ สิทธิ์การเข้าถึงที่จำเป็นเว้นแต่คุณจะคลิกขวาและเลือก "เรียกใช้ในฐานะผู้ดูแลระบบ" จากบริบท เมนู. นี่คือวิธีที่คุณสามารถสร้างไฟล์แบตช์ซึ่งจะยกระดับตัวเองโดยอัตโนมัติ
ก่อนดำเนินการต่อ โปรดดูที่ วิธีเพิ่ม Batch file (*.bat) ให้กับเมนูใหม่ของ File Explorer. วางเนื้อหาต่อไปนี้ที่จุดเริ่มต้นของไฟล์แบตช์ของคุณ:
:: ตรวจสอบและรับสิทธิ์ผู้ดูแลระบบ V2 โดยอัตโนมัติ @ปิดเสียงสะท้อน ซีแอลเอส. เสียงสะท้อน ECHO ECHO เรียกใช้เชลล์ผู้ดูแลระบบ ก้อง :init. setlocal DisableDelayedExpansion. ปิดใช้งาน ตั้งค่า "batchPath=%~0" สำหรับ %%k ใน (%0) ให้ตั้งค่า batchName=%%~nk ตั้งค่า "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" setlocal EnableDelayedExpansion :checkPrivileges. ชุดท้องถิ่น EnableDelayedExpansion :checkPrivileges NET ไฟล์ 1>NUL 2>NUL. ถ้า '%errorlevel%' == '0' ( goto gotPrivileges ) อื่น ( goto getPrivileges ) :getPrivileges ถ้า '%1'=='ELEV' (สะท้อน ELEV & shift /1 & ไปที่ gotPrivileges) เสียงสะท้อน เสียงสะท้อน ******************************************** ECHO เรียกใช้ UAC สำหรับการยกระดับสิทธิ์ ECHO ************************************** ECHO ตั้งค่า UAC = CreateObject^("Shell. แอปพลิเคชัน"^) > "%vbsGetPrivileges%" ECHO args = "ELEV " >> "%vbsGetPrivileges%" ECHO สำหรับแต่ละ strArg ใน WScript อาร์กิวเมนต์ >> "%vbsGetPrivileges%" ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" ECHO ถัดไป >> "%vbsGetPrivileges%" ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%" "%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %* ทางออก /B :gotPrivileges. setlocal & ผลัก cd /d %~dp0. ถ้า '%1'=='ELEV' (เดล "%vbsGetPrivileges%" 1>nul 2>nul & shift / 1) ::START REM Run shell ในฐานะผู้ดูแลระบบ (ตัวอย่าง) - ใส่รหัสที่นี่ตามที่คุณต้องการ ECHO %batchName% อาร์กิวเมนต์: %1 %2 %3 %4 %5 %6 %7 %8 %9
วางคำสั่งแบทช์ของคุณเองซึ่งต้องมีการยกระดับใต้บรรทัดสุดท้าย
รหัสที่ให้มาจะสร้างไฟล์ VBS พิเศษซึ่งจะเริ่มต้นใหม่หากไม่ได้ทำงานเป็นผู้ดูแลระบบ ดังนั้น หากคุณเปิดใช้งานด้วยสิทธิ์ที่จำกัด คุณจะได้รับข้อความแจ้ง UAC เพื่อขอให้คุณยกระดับสิทธิ์ก่อนที่จะรันคำสั่ง!
นี่คือลักษณะที่ปรากฏใน Windows 10: