Wie kann eine Batch-Datei automatisch angehoben werden, um sie als Administrator auszuführen?

Um Batchdateien manuell zu erhöhen, klicken Sie mit der rechten Maustaste darauf und wählen Sie Als Administrator ausführen. Hier ist eine Möglichkeit, eine Batchdatei automatisch zu erhöhen, für deren ordnungsgemäße Ausführung erhöhte Berechtigungen erforderlich sind. Dies entspricht der Auswahl von "Als Administrator ausführen", indem Sie mit der rechten Maustaste auf eine Batchdatei klicken. In beiden Fällen wird die UAC-Eingabeaufforderung weiterhin angezeigt.

Automatisches Erhöhen einer Batchdatei

:::::::::::::::::::::::::::::::::::::::::::: :: 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 

Fügen Sie Ihre Anweisungen zu dieser .bat-Datei unter dem Label "START" hinzu.

$config[ads_text6] not found

Diese Batchdatei erstellt eine Vbscript-Datei, die die Batchdatei als Administrator neu startet (sofern sie nicht bereits unter Administratorrechten ausgeführt wird). Verwenden Sie dazu den Parameter "runas", der zum Erhöhen erforderlich ist. Die Vbscript- und Runas-Methode wurde in meinen alten Post-Vbscripts und der UAC-Erhöhung in Windows Vista und höher behandelt.

Dank an Matt bei Stack Overflow für diese Methode. Windows - Wie kann ich meine Batch-Datei automatisch erhöhen, damit sie bei Bedarf von UAC-Administratorrechten angefordert wird?

Ausführen von Batch-Dateien, die standardmäßig erhöht sind

Neben der oben genannten automatischen Erhöhungsmethode können Sie von der Clientseite aus die Registrierung so anpassen, dass Batchdateien immer mit erhöhten Werten beginnen und die UAC-Eingabeaufforderung anzeigen. Dies erfolgt durch Ändern der Standard-Doppelklick-Aktion von "Öffnen" in "Runas" in der Registrierung. Verwenden Sie diese Schritte:

Starten Sie Regedit.exe und gehen Sie zum folgenden Speicherort:

 HKEY_CLASSES_ROOT \ batfile \ shell 

Doppelklicken Sie (Standard) und legen Sie die Wertdaten als Runas fest

Beenden Sie den Registrierungseditor.

Nach dieser Änderung werden Batchdateien beim Doppelklicken immer erhöht ausgeführt. Als Administrator ausführen ist die Standardoption, die angezeigt wird, wenn Sie mit der rechten Maustaste auf eine .bat-Datei klicken.

Ähnlicher Artikel