Jump to content

Vbscript - Gruppe im AD suchen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Recommended Posts

Hi,

 

hatte viel zu tun und bin jetzt erst dazu gekommen. Hier wäre mal ein Vorschlag:

 

Gruß

 

woiza

 

Dim myGroup,rsString, myDomain, output

'Anpassen
myGroup = "mygroup"
myDomain = "DC=test,dc=de"


rsString = "<LDAP://" & myDomain & ">;(&(objectclass=group)(cn="& myGroup &"));distinguishedName"
Set rs=CreateObject("ADODB.recordset")

rs.Open rsString,"provider=AdsDSOObject"

output =  rs.fields("distinguishedName") & VbCrLf

'In Output steht der DN, mit diesem kannst du weitermachen
WScript.Echo "DN: " & output 

rs.Close

Link to comment

Hi,

 

vielen Dank für das Script und den Link! Das hilft mir echt weiter :)

Ich werde das morgen im Büro gleich mal testen, aber so wie ich das sehe wird es bestimmt funktionieren.

 

In dem Zusammenhang hätte ich noch eine weitere Frage:

 

Mann kann ja via VBScript auch die Mitglieder einer ActiveDirectory-Gruppe auslesen.

Hier habe ich das Problem mit verschachtelten Gruppen, hier ein Beispiel:

 

Gruppenname: Testgruppe(Global)

 

Mitglieder:

 

Duck, Donald

Duck, Dagobert

Entenhausen(Global)

 

Lese ich die Mitglieder der o.g. Gruppe aus, bekomme ich das Ergebnis so wie oben dargestellt.

 

Was mir leider nicht viel bringt, da die Mitglieder der enthaltenen Gruppe (Entenhausen) nicht aufgelöst werden..

 

Gibt es eine Funktion zum Auslesen von verschachtelten Gruppen? Oder kann das ganze irgendwie mit einer Schleife realisiert werden?

 

Vielen Dank & beste Grüße!

Link to comment

Hallo Woiza,

 

also erst nochmal danke für das erste Script, es hat gut funktioniert!

 

Wäre super wenn Du mir noch ein Beispiel bzw. den Code für die verschachtelten Gruppen zeigen könntest :)

 

Der Vorschlag von blub funktioniert zwar, aber ich wollte es gerne komplett in VBScript machen. Danke trotzdem @ blub.

 

Grüße,

Darksun777

Link to comment

Hi,

 

hier ist ein Quick'n'Dirty Script. DIe Formkatierung und auch die Reihenfolge der Member ist nicht so toll, da könnte man noch dran arbeiten, allerdings wird bei nem einfachen Beispiel die Rekursion ersichtlicher.

 

Bei Fragen einfach melden.

 

Gruß

 

woiza

 

'Das "Hauptprogramm, hier wird die rekursive Funktion aufgerufen
Dim output
'Aufruf der Funktion 
output = recGetMember("cn=test,ou=test,dc=test,dc=de")

MsgBox output



'muss ausserhalb der Funktion definiert werden
Dim out

Function recGetMember(dn)

Dim objGroup, arrMemberOf
'Gruppe im AD auslesen
Set objGroup = GetObject ("LDAP://" & dn &"")

'Member der aktuellen Gruppe in ein Array 
arrMemberOf = objGroup.GetEx("member")

'Schleife über die Member
For Each strMember In arrMemberOf
'Test, ob Member Gruppe ist
If isGroup(strMember) = True Then
	'Rekursiver Aufruf
	recGetMember(strMember)

End If


   out = out & strMember & VbCrLf
Next

recGetMember = out

End Function


Function isGroup (dn)

Dim objMember
Set objMember = GetObject ("LDAP://" & dn & "")

If objMember.Class = "group" Then
	isGroup = True
Else
	isGroup = False		
End If

Set objMember = Nothing
End Function

Link to comment
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...