Windows Tips & News

So checken Sie eine Batchdatei ein, wenn Sie sie mit erhöhten Rechten ausführen

click fraud protection
EMPFOHLEN: Klicken Sie hier, um Windows-Probleme zu beheben und die Systemleistung zu optimieren

Manchmal ist es sinnvoll, eine Batchdatei einzuchecken, wenn sie über eine Eingabeaufforderung mit erhöhten Rechten oder als Administrator gestartet wurde. Ich möchte mit Ihnen einen Trick teilen, den ich dazu verwende. Die Grundidee meines Tricks basiert auf dem Wert der speziellen Umgebungsvariablen %errorlevel%, die den Exit-Code für die meisten Konsolen-Apps und -Befehle speichert. Sehen wir uns das in Aktion an.

Werbung


Wenn eine Konsolen-App ihre Arbeit ordnungsgemäß beendet, speichert die Variable %errorlevel% 0 als ihren Wert.
Öffnen Sie eine neue Eingabeaufforderungsinstanz und führen Sie den Befehl "dir" aus. Drucken Sie danach den Wert %errorlevel% mit dem Befehl "echo":
dir. echo %errorlevel%

Als Ausgabe wird 0 ausgegeben.
dir errorlevel
Versuchen wir nun, einen Befehl auszuführen, der eine Erhöhung erfordert, von einem normalen Eingabeaufforderungsfenster ohne Erhöhung. Versuchen wir es zum Beispiel mit dem

Dateien öffnen Befehl, der Administratorrechte erfordert.
Wenn Sie den Wert %errorlevel% ausgeben, ist er nicht 0, da der Befehl openfiles keine geöffneten Dateien ohne Administratorrechte anzeigt.
openfiles errorlevel 1
Wenn Sie es jedoch über eine Eingabeaufforderung mit erhöhten Rechten ausführen (So öffnen Sie eine Admin-cmd-Eingabeaufforderung), zeigt es Ihnen geöffnete Dateien an und gibt erwartungsgemäß 0 zurück.
Openfiles Fehlerlevel 0
Mit dieser Funktion ist es möglich, eine einfache Prüfung in der Batch-Datei zu implementieren:

@echo aus. openfiles > NUL 2>&1 if NOT %ERRORLEVEL% EQU 0 goto NotAdmin echo Hallo von der Eingabeaufforderung mit erhöhten Rechten goto End :NotAdmin echo Diese Eingabeaufforderung ist NICHT ERHÖHT :End. 

Beachten Sie, dass ich die Ausgabeumleitung verwende, um jede Ausgabe des Befehls openfiles zu unterdrücken. Im "> NUL 2>&1 Teil" wird die Standardausgabe des Befehls nach nirgendwo (NUL) umgeleitet und die Fehlerausgabe wird auf die Standardausgabe umgeleitet, also auch auf NUL.
Anstelle des Befehls openfiles können Sie jeden Befehl verwenden, der eine Erhöhung erfordert, z net-Sitzung Befehl.
Das ist es.

EMPFOHLEN: Klicken Sie hier, um Windows-Probleme zu beheben und die Systemleistung zu optimieren

Microsoft Edge Chromium erhält Favoriten-Symbolleistenschaltfläche

Diese Website verwendet Cookies, um Ihre Erfahrung beim Navigieren durch die Website zu verbesser...

Weiterlesen

Was ist neu in Windows 10. Oktober 2018 Update Version 1809

Was ist neu in Windows 10. Oktober 2018 Update Version 1809

EMPFOHLEN: Klicken Sie hier, um Windows-Probleme zu beheben und die Systemleistung zu optimierenW...

Weiterlesen

Holen Sie sich eine vollständig transparente Taskleiste in Windows 10

Holen Sie sich eine vollständig transparente Taskleiste in Windows 10

9 AntwortenIn Windows 10 kann der Benutzer die Transparenzstufe der Taskleiste nicht anpassen. Du...

Weiterlesen