Windows Tips & News

Hoe een batchbestand automatisch te verhogen om het als beheerder uit te voeren

click fraud protection
4 antwoorden

Soms moet u een batchbestand maken dat opdrachten bevat waarvoor verhoogde rechten vereist zijn. Vanwege de UAC-functie die sinds Windows Vista in Windows is opgenomen, wordt bij het starten van een batchbestand het geopend zonder de vereiste toegangsrechten, tenzij u er met de rechtermuisknop op klikt en "Uitvoeren als beheerder" selecteert in de context menu. Hier leest u hoe u een batchbestand kunt maken dat zichzelf automatisch verheft.

Voordat je verder gaat, zie hoe Batch-bestand (*.bat) toe te voegen aan Nieuw menu van Verkenner. Plaats de volgende inhoud aan het begin van uw batchbestand:

:: Automatisch controleren en beheerdersrechten verkrijgen V2. @echo uit. CLS. ECHO. ECHO ECHO Beheerdersshell uitvoeren. ECHO: init. setlocal DisableDelayedExpansion. stel "batchPath=%~0" in stel voor %%k in (%0) batchName=%%~nk in. stel "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" in setlocal EnableDelayedExpansion :checkPrivileges. NET BESTAND 1>NUL 2>NUL. if '%errorlevel%' == '0' ( ga naar gotPrivileges ) else ( ga naar getPrivileges ): getPrivileges. if '%1'=='ELEV' (echo ELEV & shift /1 & ga naar privileges) ECHO. ECHO ************************************ ECHO beroept zich op UAC voor escalatie van bevoegdheden. ECHO ************************************ ECHO Stel UAC = CreateObject^("Shell. Toepassing"^) > "%vbsGetPrivileges%" ECHO args = "ELEV " >> "%vbsGetPrivileges%" ECHO voor elke strArg in WScript. Argumenten >> "%vbsGetPrivileges%" ECHO argumenten = argumenten ^& strArg ^& " " >> "%vbsGetPrivileges%" ECHO Volgende >> "%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 Voer shell uit als admin (voorbeeld) - plaats hier code zoals je wilt. ECHO %batchName% Argumenten: %1 %2 %3 %4 %5 %6 %7 %8 %9.

Plaats uw eigen batchcommando's die een verhoging vereisen onder de laatste regel.

De verstrekte code maakt een speciaal VBS-bestand aan dat het opnieuw zal opstarten als het niet als beheerder wordt uitgevoerd. Dus als u het start met beperkte machtigingen, krijgt u een UAC-prompt waarin u wordt gevraagd om de privileges te verhogen voordat het zijn opdrachten uitvoert!

Zo ziet het eruit in Windows 10:

Credits voor deze code ga naar Mat.

Alt Tab-tuner VIII

Alt Tab-tuner VIII

Alt Tab Tuner VIII is vervangen door Winaero Tweaker en wordt niet meer onderhouden. In tegenstel...

Lees verder

Vivaldi 2.4: bladwijzer voor geselecteerde tabbladen (momentopname 1455.4)

Vivaldi 2.4: bladwijzer voor geselecteerde tabbladen (momentopname 1455.4)

AANBEVOLEN: Klik hier om Windows-problemen op te lossen en de systeemprestaties te optimaliserenE...

Lees verder

Windows 10 Build 17133: RTM-mijlpaal

Windows 10 Build 17133: RTM-mijlpaal

AANBEVOLEN: Klik hier om Windows-problemen op te lossen en de systeemprestaties te optimaliserenM...

Lees verder