aktuelle Benutzerrechte mit Batch auslesen

Das neue Benutzerkontensicherheitsprinzip ab Vista kennen ja sicher alle. Wird eine ausführbare Datei oder ein Programm mit einem Klick oder Doppelklick geöffnet, sei es in einem Administratorkonto oder nicht, wird das Programm selbst nicht mit Administratorrechten ausgeführt. Erst wenn man über Rechtsklick -> Als Administrator ausführen nutzt wird das Programm auch wirklich mit Administratorrechten ausgeführt.
Dafür gibt es in Vista und 7 Integrity Level, verschiedene Sicherheitsstufen. Folgende Level existieren:

  • Trusted Installer
  • System (operating system processes)
  • High (administrators)
  • Medium (non-administrators)
  • Low (temporary Internet files)
  • Untrusted

Auf Deutsch nennen sich die Gruppen etwas anders, hier ist von „Niedrige Verbindlichkeitsstufe“, „Mittlere Verbindlichkeitsstufe“ und „Hohe Verbindlichkeitsstufe“ die Rede.
Alle Gruppen eines Benutzers seht ihr mit „whoami /groups“ in der cmd.
Wenn ihr also eure Gruppen anzeigen lasst und da steht (wahrscheinlich ganz am Ende) „Verbindliche Beschriftung\Mittlere Verbindlichkeitsstufe“ dann habt ihr die cmd normal aufgerufen, nicht als Administrator.
Wird ein Programm mit „Rechtsklick -> Als Administrator ausführen“ gestartet gehört es der Gruppe „Hohe Verbindlichkeitsstufe“ an.

Um mit einem Batch Programm auszulesen, ob ein Programm normal oder Als Administrator ausgeführt wurde, helfen folgende Zeilen:

@echo off
whoami /groups | find "S-1-16-12288" > nul
if errorlevel 1 goto noadmin
echo Programm wurde als Administrator gestartet
pause
goto eof
:noadmin
whoami /groups | find "S-1-16-8192" > nul
if errorlevel 0 echo Programm mit normalen Rechten gestartet
pause
goto eof

adminrechte-mit-cmd-auslesen

Schreibe einen Kommentar