
Ich arbeite an einem kleinen Batch-Skript, das grundlegende Windows-Programme so erweitert, dass sie als Administrator ausgeführt werden können.
Alle Funktionen funktionieren einwandfrei, aber beim Versuch, „regedit.exe“ auszuführen, ist ein Problem aufgetreten.
Wenn im Skript Option 3 ausgewählt ist und regedit als Administrator ausgeführt werden soll, erhalte ich die folgende Fehlermeldung:
740: Der angeforderte Vorgang erfordert eine Erhöhung der Rechte.
Hier ist das Skript:
echo off
cls
echo.
echo Start as admin:
echo /----------------\
echo # 1. CMD #
echo # 2. Task Manager#
echo # 3. Regedit #
echo # 0. Exit #
echo \----------------/
echo.
set /p run=
if %run%==1 (
set run="cmd"
)
if %run%==2 (
set run="taskmgr"
)
if %run%==3 (
set run="regedit"
)
if %run%==0 (
exit
)
runas /savecred /user:admin %run%
Gibt es dafür eine Problemumgehung?
Ich möchte, dass dies funktioniert, ohne Programme von Drittanbietern zu installieren, die Registrierung zu ändern oder UAC zu deaktivieren.
Antwort1
Sie können dies erreichen, indem Sie mit RunAs eine neue CMD-Eingabeaufforderung starten, die Sie anweisen, Ihren Befehl auszuführen.
Um dies in Ihrem Stapel zu tun, ändern Sie die letzte Zeile wie folgt:
runas /savecred /user:admin "cmd /c %run%"
Antwort2
Add this to the top of your Batch file and at the end just put %run% instead of (runas /savecred /user:admin %run%)
@echo off
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params = %*:"=""
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:gotAdmin
pushd "%CD%"
CD /D "%~dp0"
:--------------------------------------
Antwort3
VielleichtDaskann helfen, oder vielleicht hilft es, den gesamten Batch als Administrator zu starten. Dies geschieht durch die Erstellung eines weiteren Batch-Skripts mit dem folgenden Inhalt:
runas /user:admin C:\Path_to_your_batch_file\name.bat
Antwort4
- Klicken Sie mit der rechten Maustaste auf C:\Windows\regedit.exe und wählen Sie Eigenschaften
- Wählen Sie im Reiter „Kompatibilität“ die Option „Dieses Programm als Administrator ausführen“