IFmember – Parameter und Error Level
IFmember ist ein Tool von Microsoft, um zu prüfen ob ein Benutzer Mitglied einer bestimmten Active Directory Gruppe ist. Die IFmember.exe war früher sehr gerne gesehen und wurde fast überall verwendet. Das größte Einsatzgebiet war die Verwendung in einem Logon Script, um beispielsweise Laufwerke anzubinden. Natürlich funktioniert das heute auch noch. Aber ich schreibe hier in der Vergangenheit, da das Anbinden von Laufwerken heute Gruppenrichtlinien übernehmen. Doch wie funktioniert das Tool, welche Parameter gibt es und welche Error Level werden ausgegeben? Wir klären euch auf.
IFmember Download
Das Tool ist leider nicht in Windows integriert. Außerdem wird es nicht mehr weiterentwickelt, da es eigentlich nicht mehr benötigt wird. Ausnahmen gibt es immer. Wer es dennoch benötigt, der kann es natürlich online herunterladen. Das Tool ist in den Windows Server 2003 Resource Kit Tools enthalten. Den IFmember Download gibt es hier:
IFmember herunterladen (Heise)IFmember Parameter
Beim Aufruf des Tools werden uns die IFmember Parameter angezeigt. Beim Ausführen der exe in der Kommandozeile / CMD wird uns folgendes ausgegeben:
C:\>ifmember.exe usage: IFMEMBER.EXE [/verbose] [/list] groupname ... /verbose will print out all matches. /list will print out all groups user is a member of. Return Code shows number of groups this user is a member of. Example: IFMEMBER.EXE /v /l "MyDomain\Domain Users" Users Everyone
Es gibt also folgende Parameter die verwendet werden können:
Parameter
Bedeutung
/verbose
Gibt alle Treffer aus
/list
Listet alle Active Directory Gruppen, in denen der Benutzer Mitglied ist
GRUPPENNAME
Name der Active Directory Gruppe die überprüft werden soll, ob der Benutzer Mitglied ist
ifmember.exe /list User is a member of group yourdomain\Domänen-Benutzer. User is a member of group yourdomain\Test-Group.
Hier werden alle Gruppenmitgliedschaften gelistet.
IFmember Error Level
Wenn man nun den Befehl ausführt sieht man leider… …erstmal nichts. Das Ergebnis der Abfrage wird leider nicht in der Konsole ausgegeben. Das verwirrt zunächst. Allerdings kann man die IFmember ErrorLevel abfragen. Hier bekommen wir unser Ergebnis geliefert.
C:\>ifmember.exe Administratoren C:\>echo %ERRORLEVEL% 1
Hier sieht man schön, dass der ErrorLevel “1” zurückgeliefert wird. Aber was er bedeutet seht ihr hier:
Error Level
Bedeutung
0
Benutzer ist KEIN Mitglied der abgefragten Gruppe
1
Benutzer IST Mitglied der abgefragten Gruppe
-1
Benutzer ist Mitglied in zu vielen Gruppen, Prüfung ist fehlgeschlagen, beziehungsweise konnte nicht überprüft werden
IFmember Beispiel
Zum besseren Verständnis habe ich ein Beispiel vorbereitet. Je nach Error Level den man zurück bekommt, kann man dann eine Aktion in der Batch Datei ausführen.
\\your.domain\NETLOGON\IFMEMBER.EXE DEINEGRUPPE Goto ANTWORT%ERRORLEVEL% :ANTWORT0 REM Ist nicht Mitglied der Gruppe DANN TU DAS Goto ANTWORTENDE :ANTWORT1 REM Ist Mitglied der Gruppe DANN TU DAS Goto ANTWORTENDE :ANTWORT-1 REM Mitgliedschaft konnte nicht geprüft werden DANN TU DAS Goto ANTWORTENDE :ANTWORTENDE REM weiterer Batch Quellcode
In diesem Beispiel wird überprüft, ob der angemeldete Benutzer Mitglied in der Gruppe “DEINEGRUPPE” ist. Wenn ja springe zu “:ANTWORT1”, wenn nicht dann springe zu “:ANTWORT0”. Beim Text “DANN TU DAS” kann natürlich der gewünschte Befehl oder Aufruf gestartet werden.