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!

Empfohlene Beiträge

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 zu diesem Kommentar

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 zu diesem Kommentar

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 zu diesem Kommentar

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 zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...