Aktionen

Windows:ifmember+ismember

Aus znilwiki

Ifmemberdeluxe logo.png
ifmemberDELUXE.exe -> eine alternative zu ifmember.exe und ismember.exe für das Verbinden von Netzlaufwerken und Druckern


1 ifmember.exe

Microsoft hat schon zu Windows NT 4.0 Zeiten das Kommandozeilenprogramm ifmember.exe zur verfügung gestellt.
Es ist/war unter anderem in dem Windows NT 4.0 Ressource Kit enthalten, heutzutage kann es auch direkt heruntergeladen werden:

Download ifmember.exe: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=07c2f6d7-815e-4fa0-9043-4e4635ccd417

Der Aufruf ist ganz leicht:

D:\>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

Mit folgenden Aufruf listet ifmember.exe alle zugehörigen Gruppen auf:

ifmember.exe /list

ergibt eine Ausgabe wie folgt:

D:\>ifmember.exe /list
User is a member of group testdomain\Domänen-Benutzer.
User is a member of group testdomain\Testgruppe.

In Batchdateien ruft man ifmember.exe einfach mit dem Gruppennamen auf:

D:\>ifmember.exe Administratoren

und es passiert - nichts.
Fragen wir danach jedoch die Variable %ERRORLEVEL% ab:

D:\>echo %ERRORLEVEL%
1

wir die Zahl 1 ausgegeben.
ifmember.exe gibt einen der folgenden 3 Fehlercodes zurück:

 0 = ist nicht Mitglied der abgefragten Gruppe
 1 = ist Mitglied der abgefragten Gruppe
-1 = Gruppenmitgliedschaft kann nicht abgefragt werden

-1 kommt vor wenn ein Benutzer in sehr vielen Gruppen ist (>100 scheinbar), auch dieser Fall sollte dann in Abfragen berücksichtigt werden.


Beispielscript aus der Praxis: Im nachfolgendem Script starten wir abhängig von der Mitgliedschaft in der Gruppe JP_Migration entweder die alte oder die neue Version einer .exe Datei:

Datei:Ifmember sample.cmd

REM JumpingProfiles starten
REM Neue Version 4.0 wenn Benutzer in der Gruppe JP_Migration ist
REM ansonsten alte Version 2.19 wie gehabt
REM 2010 von Bernhard Linz, Bernhard.Linz@datagroup.de

\\server\freigabe\tools\ifmember\IFMEMBER.EXE JP_Migration
Goto ANTWORT%ERRORLEVEL%

:ANTWORT0
REM Ist nicht Mitglied der Gruppe JP_Migration, also alte Version 2.19 starten
\\server\freigabe\JP\JPLogin.exe
Goto ANTWORTENDE

:ANTWORT1
REM Ist Mitglied der Gruppe JP_Migration, also neue Version 4 starten
\\server\freigabe\JumpingProfiles4\JPLogin.exe
Goto ANTWORTENDE

:ANTWORT-1
REM Aufruf von ifmember ist fehlgeschlagen da der Benutzer in zu vielen Gruppen ist
REM im Zweifel neue Version starten damit Benutzer beim Update nicht übergangen wird
\\server\freigabe\JumpingProfiles4\JPLogin.exe
Goto ANTWORTENDE

:ANTWORTENDE
REM ab hier normal weiter oder Ende

Statt %ERRORLEVEL$ einzeln mit if abzufragen springen wir mit Goto direkt zum entsprechenden Abschnitt. Wichtig ist das jeder Abschnitt mit einem Sprung an das Ende, hier :ANTWORTENDE springt - sonst werden die Befehle darunter auch noch ausgeführt.




2 ismember.exe

Tja, ifmember.exe hat ja das Problem, das es bei sehr vielen Gruppenmitgliedschaften (>100) nicht mehr funktioniert. Garnicht so leicht eine, eine Alternative zu finden- aber hier ist sie:

Download ismember.exe: http://www.intelliadmin.com/IsMember.exe*

die Hauptseite dazu ist http://www.intelliadmin.com/index.php/downloads/ auf der es noch einige andere Tools gibt, kostenlose und kostenpflichtige.

Der Aufruf von ismember.exe ist genau der gleiche wie für ifmember.exe so das man es einfach ersetzten kann:

D:\>ismember.exe
************************************
* IsMember Command Line Utility    *
* Copyright 2010 IntelliAdmin, LLC *
* http://www.intelliadmin.com      *
************************************

Usage:

IsMember.exe [Group]

Note:

IsMember.exe will return 0 if the user is not a member of the group
IsMember.exe will return 1 if the user is a member of the group

Das Batchbeispiel von oben lässt sich also wie folgt verkürzen:

REM JumpingProfiles starten (ismember.exe Version)
REM Neue Version 4.0 wenn Benutzer in der Gruppe JP_Migration ist
REM ansonsten alte Version 2.19 wie gehabt
REM 2010 von Bernhard Linz, Bernhard.Linz@datagroup.de

\\server\freigabe\tools\ismember\ISMEMBER.EXE JP_Migration
Goto ANTWORT%ERRORLEVEL%

:ANTWORT0
REM Ist nicht Mitglied der Gruppe JP_Migration, also alte Version 2.19 starten
\\server\freigabe\JP\JPLogin.exe
Goto ANTWORTENDE

:ANTWORT1
REM Ist Mitglied der Gruppe JP_Migration, also neue Version 4 starten
\\server\freigabe\JumpingProfiles4\JPLogin.exe
Goto ANTWORTENDE

:ANTWORTENDE
REM ab hier normal weiter oder Ende

3 ifmemberdeluxe.exe

Tja - wozu benutzen die meisten Administratoren ifmember.exe oder ismember.exe? Zum Laufwerke und Drucker mappen ...
ich habe das mal in ein Tool zusammengefasst - das Abfragen der Gruppenmitgliedschaft und das anschliessende mappen eines Netzlaufwerkes oder Druckers:
Ifmemberdeluxe logo.png
ifmemberDELUXE.exe -> eine alternative zu ifmember.exe und ismember.exe für das Verbinden von Netzlaufwerken und Druckern



Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen.