alecane
Goto Top

VBS-Script Erweitern um das Auslesen von Benutzern in einer Hauptgruppen

Hallo Community ;)

ich benutze foglendes VBS-Script um mir alle Aktivierten Benutzer einer Gruppe in eine Text-Datei Schreiben zu lassen.
Doch nun habe ich eine Hauptgruppe angegeben, welche mehrere Untergruppen mit deren Benutzern enthält, dabei Meckert mein Script.

Bin leider totaler Anfänger, könnt ihr mir weiterhelfen, wie ich das Problem lösen kann?

Script:
Const ListFile = ".\Aktive_Benutzer_der_Gruppe_Test.txt"  
Const Delim = ";"  
Const FOR_APPENDING = 8
Const ADS_UF_ACCOUNTDISABLE = 2

Set objgroup = GetObject ("LDAP://CN=Test,OU=test,DC=test,DC=DE")  

Set objFSO = CreateObject("Scripting.FileSystemObject")  
Set objFile = objFSO.OpenTextFile(ListFile, FOR_APPENDING, True)

For Each objUser In objGroup.Members
	If Not objUser.userAccountControl AND ADS_UF_ACCOUNTDISABLE Then
    		UserInfo = objUser.sAMAccountName & Delim & objUser.Name
    		Set colGroups = objUser.Groups
    		For Each objGroup in colGroups
        	UserInfo = UserInfo & Delim & objGroup.CN
        	GetNested(objGroup)
  		Next
	    objFile.WriteLine UserInfo
	End if
next
objFile.Close

WScript.Echo "Fertig"  

Function GetNested(objGroup)
    On Error Resume Next
    colMembers = objGroup.GetEx("memberOf")  
    For Each strMember in colMembers
        strPath = "LDAP://" & strMember  
        Set objNestedGroup = _
        GetObject(strPath)
        GetNested(objNestedGroup)
    Next
End Function

Grüße Alecane

[Edit Biber] Codeformatierung wie auch von Logan000 erbeten. [/Edit]

Content-Key: 173232

Url: https://administrator.de/contentid/173232

Printed on: April 19, 2024 at 06:04 o'clock

Member: Logan000
Logan000 Sep 16, 2011 at 12:05:39 (UTC)
Goto Top
Moin Moin

Erstmal möchte ich die die Code-Tags aus der nahelegen wenn du hier Code oder Fragmente davon hier postest.
Weiterhin Meckern Skripte nicht, sondern geben meist eine Fehlermeldung mit Zeilenangabe aus.

Zu deinem Skript / Problem:

Wenn ich das richtig verstanden habe, hast im Skript eine Gruppe angegben die nicht nur User enthält sondern auch andere Gruppen.

In den Zeilen
...
For Each objUser In objGroup.Members
If Not objUser.userAccountControl AND ADS_UF_ACCOUNTDISABLE Then
...
behandelst du aber alle Gruppen Mitglieder nur als User.
Stellt sich die Frage was soll mit denn Gruppen in deinem Skript geschehen?

Gruß L.
Member: bastla
bastla Sep 16, 2011 at 13:23:00 (UTC)
Goto Top
Hallo Alecane!

Vielleicht hilft Dir dieses Script weiter ...

Grüße
bastla
Member: Alecane
Alecane Sep 26, 2011 at 09:58:14 (UTC)
Goto Top
Hallo,

danke für deine Erklärung.

Also ich möchte, das die User der Untergruppen ausgelesen werden.

Ich gebe eine Hauptgruppe mit mehreren Untergruppen und deren Benutzer an und möchte folgendes Ergebnis geliefert bekommen:

Benutzer-ID;Vollständiger Name;Gruppe1;Gruppe2;....

Kannst du mir nun folgen oder brauchst noch mehr Infos?

Grüße Alecane
Member: Logan000
Logan000 Sep 26, 2011 at 12:06:26 (UTC)
Goto Top
Moin Moin

Zitat von @Alecane:
Also ich möchte, das die User der Untergruppen ausgelesen werden.
Ich gebe eine Hauptgruppe mit mehreren Untergruppen und deren Benutzer an und möchte folgendes Ergebnis geliefert bekommen:
Benutzer-ID;Vollständiger Name;Gruppe1;Gruppe2;....
Kannst du mir nun folgen oder ...
Ich denke schon:
Du möchtest die geschachtelten Gruppen recursiv durchsuchen um eine eine Benutzerliste mit entsprechenden Gruppenmitgliedschaften zu erstellen.
... brauchst noch mehr Infos?
Ja allerdings.
Das Beispiel von Bastla liefert (grob) genau das was du suchst.
Also woran hakt es nun?

Gruß L.
Member: Alecane
Alecane Sep 27, 2011 at 06:18:13 (UTC)
Goto Top
Das Script von bastia sollte in mein Script oder andersherum eingebunden werden, doch das ist mir zu Komplex.

Da ich in meinem noch den Zusatz mit der Text-Funktion habe und des Filters von Aktiven Benutzern.

Grüße Alecane