deadcandance 10 Geschrieben 8. November 2006 Melden Teilen Geschrieben 8. November 2006 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 Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 8. November 2006 Melden Teilen Geschrieben 8. November 2006 Hallo, net user heisst das Gewünschte oder es geht auch mit ifmemebr, wohl besser. Zitieren Link zu diesem Kommentar
deadcandance 10 Geschrieben 8. November 2006 Autor Melden Teilen Geschrieben 8. November 2006 Hallo, net user heisst das Gewünschte. das musst du mir aber näher erklären. wie soll ich mit dem befehl prüfen ob der user wirklich adminrechte hat. ..und schreib jetzt bitte nicht musst du net user /? eingeben :D gruss DCD Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 8. November 2006 Melden Teilen Geschrieben 8. November 2006 das musst du mir aber näher erklären. wie soll ich mit dem befehl prüfen ob der user wirklich adminrechte hat. Die Empfehlung mit net user ist wohl nicht ganz so toll, schaue dir mal doch besser ifmember aus dem Ressource Kit an! Mit net user habe ich mich gründlich vertan, ich bitte um Nachsicht. Zitieren Link zu diesem Kommentar
deadcandance 10 Geschrieben 8. November 2006 Autor Melden Teilen Geschrieben 8. November 2006 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 Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 8. November 2006 Melden Teilen Geschrieben 8. November 2006 Tu dir sowas nicht an! Google mal nach ifmember! IFMEMBER Windows 98 Windows 98, Windows XP, Windows 2003 .exe, .com .vbs Commands: Count the NT Workgroups that the current user is a member of Download details: Windows Server 2003 Resource Kit Tools Zitieren Link zu diesem Kommentar
grizzly999 11 Geschrieben 8. November 2006 Melden Teilen Geschrieben 8. November 2006 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 Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 8. November 2006 Melden Teilen Geschrieben 8. November 2006 Zur Ergänzung erwähne ich dann noch dsquery, ein sehr interessantes Tool. Zitieren Link zu diesem Kommentar
deadcandance 10 Geschrieben 9. November 2006 Autor Melden Teilen Geschrieben 9. November 2006 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 Zitieren Link zu diesem Kommentar
master-obi-wan 10 Geschrieben 9. November 2006 Melden Teilen Geschrieben 9. November 2006 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 Zitieren Link zu diesem Kommentar
deadcandance 10 Geschrieben 9. November 2006 Autor Melden Teilen Geschrieben 9. November 2006 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 Zitieren Link zu diesem Kommentar
e2e4 10 Geschrieben 14. November 2006 Melden Teilen Geschrieben 14. November 2006 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 Zitieren Link zu diesem Kommentar
master-obi-wan 10 Geschrieben 14. November 2006 Melden Teilen Geschrieben 14. November 2006 Hallo e2e4, ich würde nicht den Umweg über eine Textdatei und zusätzlich eine zweite Batchdatei gehen ... Versuchs mal mit dem Schnipsel: ;) for /f %%i in ('whoami.exe /groups /sid ^| find "S-1-5-32-544"') do goto chefsachen Zitieren Link zu diesem Kommentar
e2e4 10 Geschrieben 14. November 2006 Melden Teilen Geschrieben 14. November 2006 Sehr elegant und klappt sofort, danke :) Zitieren Link zu diesem Kommentar
Pandorum 10 Geschrieben 6. September 2012 Melden Teilen Geschrieben 6. September 2012 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.