Jump to content

Prüfen ob User Adminrechte hat per cmd script


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

hi, wie die betreffzeile schon vermuten lässt, ich suche nach einer möglichkeit in einem cmd script zu prüfen ob der user der dieses script ausführt adminrechte auf dem XP client hat.

 

es gibt die möglichkeit dies per abfrage zu machen, ob der user in der gruppe Administratoren ist. das hat aber folgenden nachteil:

wenn der user in einer domänengruppe ist und diese in der lokalen gruppe der Administratoren ist, steht es natürlich so nicht drin. und auf engl. betriebssystem heißt die gruppe nicht Administratoren sondern Administrators, auf niederländische, französisch usw. heißt es wahrscheinlich auch anderes.

 

jetzt hatte ich mir gedacht ich prüfe ob der user schreibrehcte auf %windir% hat oder schreibrechte in der registry. dummerwiese hat die gruppe hauptbenutzer diese rechte ebenfalls. fällt also auch weg.

 

kennt jemand eine möglichkeit dies zu testen oder per cmd zu prüfen, unabhängig von der sprache des betriebssystemes und etwaiiger gruppenzugehörigkeiten des users?

 

gruss DCD

Link zu diesem Kommentar
Die Empfehlung mit net user ist wohl nicht ganz so toll, schaue dir mal doch besser ifmember aus dem Ressource Kit an!

 

hab jetzt mal mit den diensten rumgespielt.

wenn ich prüfe ob der user den spoolerdienst beenden darf schein es zu funktionieren.

als hauptbenutzer kann man den dienst jedenfalls nicht beenden.

 

@echo off

 

:TESTADMINRECHT

echo Schau 'ma mal ob du adminrechte hast

net stop spooler >nul

 

if not errorlevel 1 (

goto ADMINRECHT

)

 

:KEINADMINRECHT

echo shit! kein adminrecht

pause

goto ENDE

 

 

:ADMINRECHT

echo warte mal 'n moment

net start spooler >nul

echo OK adminrecht

pause

goto ENDE

 

 

:ENDE

exit

 

gruss dcd

Link zu diesem Kommentar

ifmember ist zwar ganz gut, aber dann müsste man die Adminstrator-Gruppe in allen Sprachen kennen und abchecken.

 

Was aber in jeder Sprache gleich ist, ist die SID der lokalen Adminsitratorengruppe: S-1-5-32-544

 

Wenn du whomai von XOP nimmst, zwei Batches machst (die ein ruft die andere auf und übergibt einen Parameter), dann könnte das so aussehen:

 

batch1:

@echo off

whoami /Groups /nh /fo csv > c:\temp\user.txt

for /f "tokens=3 delims=," %%a in (c:\temp\user.txt) do call c:\temp\batch2.bat %%a

 

batch2:

@echo off

set groupvar=%1

if %groupvar%=="S-1-5-32-544" echo "Ist Mitglied in der lokalen Admin-Gruppe"

 

Statt dem Echo-Befehl in der letzten Zeile kannst du natürlich auch was anderes machen lassen

 

grizzly999

Link zu diesem Kommentar

danke f. die antworten und vorschläge.

 

whoami muss ich mir mal anschauen.

deine besispiel batch funktionieren so nicht.

 

ifmemeber, damit kann ich zwar prüfen ob der user in einer gruppe ist.

was ist aber wenn es in der gruppe ABC ist, die Gruppe ABC ist in der Gruppe XYZ und die gruppe XYZ ist dann in der lokalen gruppe der Administratoren.

 

dsquery, was ist wenn der pc nicht in einer AD domäne ist?

 

was spricht eigentlich dagegen, es mit einer einfachen überprüfung des spoolers zu machen?

funktioniert einwandfrei (bisher) und sollte unabhängig von der sprache des systems sein.

 

 

gruss dcd

Link zu diesem Kommentar

Hallo deadcandance,

 

... was spricht eigentlich dagegen, es mit einer einfachen überprüfung des spoolers zu machen? ...

 

Nun in vielen Unternehmen wird den Usern das Recht eingeräumt den lokalen Spooler bei "Hängern" neuzustarten ... und das ohne, dass der User dazu Admin-Rechte braucht. Deine Logik schlägt hier also fehl ... :p

 

Der Ansatz von Grizzly mit dem Überprüfen der SID ist hier sicher besser.

(falls du XP-Whoami verwendest solltest du folgende Syntax verwenden: [whoami /groups /sid]

 

Oder du lädst dir das Tool isadmin.exe runter.

(Was übrigens auf dem gleichen Ansatz, also prüfen der SID beruht ...) ;)

Bill Stewart's Site - Windows Admin Script Tools

Link zu diesem Kommentar
Hallo deadcandance,

 

Nun in vielen Unternehmen wird den Usern das Recht eingeräumt den lokalen Spooler bei "Hängern" neuzustarten ... und das ohne, dass der User dazu Admin-Rechte braucht. Deine Logik schlägt hier also fehl ... :p

 

Oder du lädst dir das Tool isadmin.exe runter.

(Was übrigens auf dem gleichen Ansatz, also prüfen der SID beruht ...) ;)

Bill Stewart's Site - Windows Admin Script Tools

 

 

isadmin.exe ...das ist es, genau was ich gesucht habe.

jetzt muss nur noch testen ob das auch bei "verschachtelten" gruppenzugehörigkeiten funktioniert.

 

danke

gruss dcd

Link zu diesem Kommentar

Salut,

 

Wenn du whomai von XOP nimmst

 

Was bedeutet XOP? Mit google konnte ich keine Webseite finden, welche ein "anderes" whoami angeboten hat. Ich bin den Weg über whoami der Windows Ressource Tools gegangen, doch leider gelingt es mir nicht die Abfrage korrekt zu gestalten, folgende Skripte:

 

@echo off
REM whoami von WinXP-SupportTools verwendet
whoami /groups /sid > f:\user.txt
for /f "tokens=5 delims= " %%a in (f:\user.txt) do call f:\batch2.cmd %%a

 

@echo off 
set groupvar=%1
if %groupvar%=="S-1-5-32-544" echo "Ist Mitglied in der lokalen Admin-Gruppe"

 

Ich habe 5 Leerzeichen gezählt und dies als Trenner angenommen, dennoch bricht das Skript wegen der Fehlermeldung

 

"Mitglied" ist syntaktisch an dieser Stelle nicht verarbeitbar.

 

ab.

 

Grüße, e2e4

Link zu diesem Kommentar
  • 5 Jahre später...

Dieser Thread ist zwar schon älter, trotzdem hier eine kurze Ergänzung zu whoami.

Unter Windows 7 scheint es den Parameter /sid nicht mehr zu geben. Kann man einfach weglassen, da die SID jetzt bereits mit dem Parameter /groups ausgegeben wird.

 

Alternativ zu Obi-Wans Lösung funktioniert auch das hier:

whoami /groups | find "S-1-16-12288" > nul 
if not errorlevel 1 goto IsAdmin

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...