Windows: Gruppen-Mitgliedschaft via Befehl abfragen

Viele gestandene Administrator*Innen kennen bestimmt noch das Tool “ifmember.exe” aus dem Windows Server 2003 Ressource Kit. Mit diesem war es möglich, einfach die Gruppen-Mitgliedschaft von Benutzern abzufragen um z.B. via Anmeldeskript dann Netzlaufwerke, Drucker und Co. zuweisen zu können.

Heutzutage hat man mittels GPO bessere Möglichkeiten wie zuvor genannt über ein Anmeldeskript Ressourcen zuzuweisen, dennoch kann es Situationen geben, in denen man etwas Skripten muss.

Ebenfalls ein klassischer Weg und mit Bordmitteln klappt das mit

net user %username% /domain

In der Ausgabe sind unter anderem die Gruppenmitgliedschaften enthalten. In der Kombination mit “find” lässt sich so eine Zugehörigkeit feststellen und auf deren Basis etwas starten:

net user %username% /domain | find /i "<Gruppenname>"
if %errorlevel%==0 (
 rem Diese Befehle ausfuehren, wenn der Benutzer Mitglied einer bestimmten Gruppe ist
)

Ähnliches kann man mit der Gruppenmitgliedschaft von Computern machen:

net group <Gruppenname> /domain | find /i "%computername%
if %errorlevel%==0 (
 rem Diese Befehle ausfuehren, wenn der Computer Mitglied einer bestimmten Gruppe ist
)

Alternativ kann man selbst Listen pflegen und abfragen ob ein Benutzer oder Computer dort eingetragen ist. Ein Beispiel:

type "\\%DeploymentServer%\%DeploymentShare%\AV.txt" | find /i "%computername%"
if %errorlevel%==0 (
 rem Diese Befehle ausfuehren, wenn der Computer in dieser Liste eingetragen ist
)

Ein Kommentar

  • Hallo lieber Andy,
    danke für Deinen Blog, aus dem wir schon viele wertvolle Dinge “mitgenommen” haben.

    Der Nachteil von “net user %username%” besteht darin, dass verschachtelte Gruppen nicht abgebildet werden, das musste ich leider heute feststellen – zwei User waren in einer untergeordneten Gruppe Mitglied.

    Die Alternative besteht in “whoami /groups /nh” – dieser Befehl listet die Gruppen auf, in denen ich Mitglied bin. Ich habe es nun folgendermaßen gelöst:

    rem — schreibe alle Gruppen in eine temporäre Datei
    whoami /groups /nh > %temp%\usergroups.txt

    rem — durchsuche die Datei nach dem Gruppennamen
    find “SG_Gruppenname” %temp%\usergroups.txt

    rem — falls es gefunden wurde, dann mappe es
    if %errorlevel%==0 (net use L: \\Fileserver\Freigabe$)

    Herzliche Grüße
    Ralf

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert