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

2018-08-18 05:27:54
หลัก·ไมโครซอฟท์·วิธีการยกระดับไฟล์แบตช์โดยอัตโนมัติเพื่อเรียกใช้ในฐานะผู้ดูแลระบบ

ในการยกระดับไฟล์แบตช์ด้วยตนเองคุณจะต้องคลิกขวาที่ไฟล์นั้นแล้วเลือกเรียกใช้ในฐานะผู้ดูแลระบบ นี่คือวิธีในการยกระดับไฟล์แบตช์โดยอัตโนมัติซึ่งต้องใช้สิทธิ์ระดับสูงเพื่อให้ทำงานได้อย่างถูกต้อง สิ่งนี้เทียบเท่ากับการเลือก“ Run as Administrator” โดยการคลิกขวาที่แบตช์ไฟล์ ในทั้งสองกรณีพรอมต์ UAC จะยังคงปรากฏขึ้น

ยกระดับไฟล์แบทช์โดยอัตโนมัติ

:::::::::::::::::::::::::::::::::::::::::::: :: Automatically check & get admin rights V2 :::::::::::::::::::::::::::::::::::::::::::: @echo off CLS ECHO. ECHO ============================= ECHO Running Admin shell ECHO ============================= :init setlocal DisableDelayedExpansion set "batchPath=%~0" for %%k in (%0) do set batchName=%%~nk set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" setlocal EnableDelayedExpansion :checkPrivileges NET FILE 1>NUL 2>NUL if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ) :getPrivileges if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges) ECHO. ECHO ************************************** ECHO Invoking UAC for Privilege Escalation ECHO ************************************** ECHO Set UAC = CreateObject^("Shell.Application"^)>"%vbsGetPrivileges%" ECHO args = "ELEV ">>"%vbsGetPrivileges%" ECHO For Each strArg in WScript.Arguments>>"%vbsGetPrivileges%" ECHO args = args ^& strArg ^& " ">>"%vbsGetPrivileges%" ECHO Next>>"%vbsGetPrivileges%" ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1>>"%vbsGetPrivileges%" "%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %* exit /B :gotPrivileges setlocal & pushd . cd /d %~dp0 if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1) :::::::::::::::::::::::::::: ::START :::::::::::::::::::::::::::: REM Run shell as admin (example) - put here code as you like ECHO %batchName% Arguments: %1 %2 %3 %4 %5 %6 %7 %8 %9 cmd /k 

เพิ่มคำแนะนำของคุณลงในไฟล์. bat นี้ใต้ป้ายกำกับ "เริ่ม"

ไฟล์แบทช์นี้สร้างไฟล์ Vbscript ซึ่งจะเปิดตัวไฟล์แบตช์อีกครั้งในฐานะผู้ดูแลระบบ (หากยังไม่ได้ทำงานภายใต้สิทธิ์ผู้ดูแลระบบ) โดยใช้พารามิเตอร์“ runas” ซึ่งจำเป็นต้องยกระดับ วิธี Vbscript &“ runas” ได้รับการกล่าวถึงใน VBScripts และ UAC ระดับสูงใน Windows Vista และสูงกว่า

มอบเครดิตให้แก่ Matt ที่ Stack Overflow สำหรับวิธีการนี้ windows - ฉันจะยกระดับไฟล์แบตช์ของฉันโดยอัตโนมัติได้อย่างไรเพื่อที่จะได้รับการร้องขอจากสิทธิ์ผู้ดูแลระบบ UAC หากจำเป็น

การเรียกใช้ไฟล์แบทช์ยกระดับโดยค่าเริ่มต้น

นอกเหนือจากวิธีการยกระดับอัตโนมัติข้างต้นจากฝั่งไคลเอ็นต์คุณสามารถปรับแต่งรีจิสตรีเพื่อให้ไฟล์แบตช์จะเริ่มการยกระดับเสมอโดยแสดงพร้อมท์ UAC สิ่งนี้ทำได้โดยการเปลี่ยนการกระทำดับเบิลคลิกเริ่มต้นจาก "เปิด" เป็น "runas" ในรีจิสทรี ใช้ขั้นตอนเหล่านี้:

เริ่ม Regedit.exe และไปที่ตำแหน่งต่อไปนี้:

 HKEY_CLASSES_ROOT \ batfile \ shell 

ดับเบิลคลิก (ค่าเริ่มต้น) และตั้งค่าข้อมูลเป็น runas

ออกจากตัวแก้ไขรีจิสทรี

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

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