So erhöhen Sie eine Batchdatei automatisch, um sie als Administrator auszuführen
Manchmal müssen Sie eine Batchdatei erstellen, die Befehle enthält, die erhöhte Rechte erfordern. Aufgrund der UAC-Funktion, die seit Windows Vista in Windows enthalten ist, öffnet sich eine Batch-Datei beim Starten ohne die erforderlichen Zugriffsrechte, es sei denn, Sie klicken mit der rechten Maustaste darauf und wählen "Als Administrator ausführen" aus dem Kontext Speisekarte. So können Sie eine Batch-Datei erstellen, die sich automatisch erhöht.
Werbung
Bevor Sie fortfahren, lesen Sie So fügen Sie eine Batch-Datei (*.bat) zum neuen Menü des Datei-Explorers hinzu. Platzieren Sie den folgenden Inhalt am Anfang Ihrer Batchdatei:
:: Admin-Rechte automatisch prüfen und erhalten V2. @echo aus. CLS. ECHO. ECHO ECHO Ausführen der Admin-Shell. ECHO :init. setlocal DisableDelayedExpansion. setze "batchPath=%~0" für %%k in (%0) setzen Sie batchName=%%~nk. setze "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" setlocal EnableDelayedExpansion :checkPrivileges. NET-DATEI 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 ruft UAC für die Rechteeskalation auf. ECHO ************************************* ECHO Set UAC = CreateObject^("Shell. Anwendung"^) > "%vbsGetPrivileges%" ECHO args = "ELEV" >> "%vbsGetPrivileges%" ECHO für jedes strArg in WScript. Argumente >> "%vbsGetPrivileges%" ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" ECHO Weiter >> "%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 & verschieben /1) ::START. REM Shell als Admin ausführen (Beispiel) - Geben Sie hier Code ein, wie Sie möchten. ECHO %batchName% Argumente: %1 %2 %3 %4 %5 %6 %7 %8 %9.
Platzieren Sie Ihre eigenen Stapelbefehle, die eine Höhe unterhalb der letzten Zeile erfordern.
Der bereitgestellte Code erstellt eine spezielle VBS-Datei, die sie neu startet, wenn sie nicht als Administrator ausgeführt wird. Wenn Sie es also mit eingeschränkten Berechtigungen starten, erhalten Sie eine UAC-Eingabeaufforderung, in der Sie aufgefordert werden, die Berechtigungen zu erhöhen, bevor die Befehle ausgeführt werden!
So sieht es in Windows 10 aus:
Credits für diesen Code gehen an Matt.