Ausführen eines Skripts, das Administratorrechte in der Schleife erhält
536
poszkodowany
Wenn das UAC-Fenster mit den Optionen YES und NO angezeigt wird und der Benutzer auf NEIN klickt, möchte ich, dass die Nachricht erneut in einer Schleife angezeigt wird, bis die Taste YES gedrückt wird.
:::::::::::::::::::::::::::::::::::::::::::: :: Elevate.cmd - Version 4 :: Automatically check & get admin rights :::::::::::::::::::::::::::::::::::::::::::: @echo off CLS ECHO. ECHO ============================= ECHO Running Admin shell ECHO ============================= :init setlocal DisableDelayedExpansion set cmdInvoke=1 set winSysFolder=System32 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%" if '%cmdInvoke%'=='1' goto InvokeCmd ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%" goto ExecElevation :InvokeCmd ECHO args = "/c """ + "!batchPath!" + """ " + args >> "%vbsGetPrivileges%" ECHO UAC.ShellExecute "%SystemRoot%\%winSysFolder%\cmd.exe", args, "", "runas", 1 >> "%vbsGetPrivileges%" :ExecElevation "%SystemRoot%\%winSysFolder%\WScript.exe" "%vbsGetPrivileges%" %* exit /B :gotPrivileges setlocal & 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: P1=%1 P2=%2 P3=%3 P4=%4 P5=%5 P6=%6 P7=%7 P8=%8 P9=%9 cmd /k
Wie es geht? Ich habe versucht, eine zweite Batchdatei auszuführen, die überprüft, ob die erste ausgeführt wird. Das Problem ist, dass das Programm geschlossen wird, wenn Sie auf "Nein" klicken.
0 Antworten auf die Frage
Verwandte Probleme
-
2
Erhöhte Berechtigungen für Startanwendungen in Windows?
-
0
Wie kann ich die Benutzerkontensteuerung in Windows 7 vollständig deaktivieren?
-
5
Können Sie die Benutzerkontensteuerung für eine einzelne App deaktivieren?
-
8
Wie nützlich ist die UAC?
-
5
Wie wird eine Datei automatisch auf einen anderen PC im Netzwerk verschoben?
-
2
Wie kann ich zulassen, dass Programme, die Administratorrechte benötigen, beim Start in Vista ausgef...
-
2
Festlegen mehrerer Umgebungsvariablen in einer Shell, die über ein Windows-Batch-Skript erstellt wir...
-
4
Verhindern Sie die Erhöhung (UAC) für eine Anwendung, die sie nicht benötigt
-
1
Deaktivieren Sie Vista UAC nur für den Administrator
-
2
Wie bekomme ich die UAC / Elevation-Aufforderung, sich an meinen lokalen Benutzernamen zu erinnern?