it-swarm.com.de

Wie kann man eine BAT-Datei so programmieren, dass sie immer als Administratormodus ausgeführt wird?

Ich habe diese Zeile in meiner BAT-Datei:

"Example1Server.exe"

Ich möchte dies im Administratormodus ausführen. Wie kann ich den bat-Code so ändern, dass er als Administrator ausgeführt wird?

Ist das richtig? Muss ich die Anführungszeichen setzen?

runas /user:Administrator invis.vbs Example1Server.exe
119
karikari

Sie verwenden runas, um ein Programm als bestimmten Benutzer zu starten:

runas /user:Administrator Example1Server.exe
56
Kerrek SB

Für die andere Antwort müssen Sie das Kennwort des Administratorkontos eingeben. Das Ausführen unter einem Konto in der Administratorgruppe ist nicht dasselbe wie als Administrator ausführen siehe: UAC in Wikipedia

Windows 7-Anweisungen

Um als Administrator ausgeführt zu werden, erstellen Sie eine Verknüpfung für die Stapeldatei.

  1. Klicken Sie mit der rechten Maustaste auf die Batchdatei und klicken Sie auf Kopieren 
  2. Navigieren Sie zu der Stelle, an der Sie die Verknüpfung wünschen 
  3. Klicken Sie mit der rechten Maustaste auf den Hintergrund des Verzeichnisses
  4. Wählen Sie Verknüpfung einfügen

Dann können Sie die Verknüpfung als Administrator festlegen:

  1. Klicken Sie mit der rechten Maustaste auf die Verknüpfung
  2. Wählen Sie Eigenschaften
  3. Klicken Sie auf der Registerkarte Verknüpfung auf Erweitert
  4. Aktivieren Sie das Kontrollkästchen "Als Administrator ausführen".
  5. Klicken Sie auf OK, OK

Wenn Sie nun auf die Verknüpfung doppelklicken, werden Sie zur Bestätigung der Benutzerkontensteuerung aufgefordert und anschließend Als Administrator ausführen (was sich, wie gesagt, von der Ausführung unter einem Konto in der Administratorgruppe unterscheidet)

Überprüfen Sie den Screenshot

Screenshot

Hinweis: Wenn Sie "Als Administrator ausführen" ausführen, stimmt das aktuelle Verzeichnis (Pfad) nicht mit der Bat-Datei überein. Dies kann in manchen Fällen zu Problemen führen, dass sich die bat-Datei auf relative Dateien daneben bezieht. In meinem Windows 7 wird zum Beispiel SYSTEM32 anstelle des Speicherorts der Bat-Datei angegeben! Um dies zu umgehen sollten Sie verwenden 

cd "%~dp0" 

oder besser 

pushd "%~dp0" 

um sicherzustellen, dass sich das Verzeichnis unter dem Pfad befindet, in dem sich die bat-Datei befindet.

323
Ed Greaves

Wenn Sie ein Drittanbieter-Dienstprogramm verwenden können, ist hier ein elevate Befehlszeilen-Dienstprogramm .

Dies ist die Verwendungsbeschreibung:

Usage: Elevate [-?|-wait|-k] prog [args]
-?    - Shows this help
-wait - Waits until prog terminates
-k    - Starts the the %COMSPEC% environment variable value and
                executes prog in it (CMD.EXE, 4NT.EXE, etc.)
prog  - The program to execute
args  - Optional command line arguments to prog
8
aphoria

Sie können den Befehl nircmd.exe ' elevate verwenden

NirCmd-Befehlsreferenz - Erhöhen Sie

elevate [Program] {Command-Line Parameters}

Nur für Windows Vista/7/2008: Führen Sie ein Programm mit Administratorrechten aus. Wenn das [Programm] ein oder mehrere Leerzeichen enthält, müssen Sie es in Anführungszeichen setzen. 

Beispiele: 

elevate notepad.exe 
elevate notepad.exe C:\Windows\System32\Drivers\etc\HOSTS 
elevate "c:\program files\my software\abc.exe"

PS: Ich benutze es bei Win 10 und es funktioniert

6
Dheeraj Bhaskar

Ich glaube, ich habe eine Lösung für das Passwortproblem ... Dieses einzelne Argument ist wirklich erstaunlich. Es fragt einmal nach dem Passwort und danach nie wieder nach dem Passwort. Auch wenn Sie es in ein anderes Programm schreiben, werden Sie nicht nach dem Kennwort gefragt. Hier ist es:

runas /user:Administrator /savecred Example1Server.exe

5
Anynomous

konvertieren Sie Ihre Batch-Datei mit diesem Tool in die EXE-Datei: http://www.battoexeconverter.com/ und dann können Sie sie als Administrator ausführen

5
xxedxx
go get github.com/mattn/Sudo

Dann

Sudo Example1Server.exe
2
mattn
  1. Mein Experimentieren zeigt, dass der Befehl runas die Domäne des Administrators enthalten muss (zumindest in der Umgebungskonfiguration meiner Organisation):

    runas /user:AdminDomain\AdminUserName ExampleScript.bat
    
  2. Die Antworten von Kerrek SB und Ed Greaves führen die Zieldatei unter dem Benutzer admin aus. Wenn das Zielskript eine .bat-Datei ist, werden sie nicht ausgeführt. Tatsächlich sollten Sie die Befehle im Skript so aktualisieren, dass sie über Administratorrechte des Administrators verfügen, zumindest wenn Sie versuchen, Registrierungsschlüssel hinzuzufügen oder zu ändern, die ansonsten durch Gruppenrichtlinien gesperrt sind.

    Weiß jemand, wie man tatsächlich bat-file (CMD) -Befehle auf Administratorrechte aktualisiert?

1
pstraton

Fügen Sie dies einfach oben in Ihre bat-Datei ein:

set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )

Es wird auf admin erhöht und verbleibt im richtigen Verzeichnis. Getestet unter Windows 10.

1
Sire

Sollte auf jeden Fall funktionieren, indem Sie diese Zeilen oben in Ihre bat-Datei einfügen. Es rettet buchstäblich das Leben!

set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )
0
xikandar hayyat

Verwenden Sie den vollständigen Pfad des physischen Laufwerks\zur Ziel-Batchdatei in den Eigenschaften der Verknüpfung.

Dies funktioniert nicht in Windows 10, wenn Sie untergeordnete Laufwerke verwenden, wie ich es zuerst versucht habe ...

0
Samiamias