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

Geschrieben

Hallo,

 

hat zufällig jemand mal ein Beispielscript für mich?

 

Ich möchte gerne den LDAP-Pfad für eine bestimmte Gruppe aus dem AD auslesen (z.B. Testgruppe)

 

Am besten wäre es, wenn der LDAP-Pfad gleich in eine Variable übergeben wird.

 

Wie bekommt man sowas hin?

 

Vielen Dank schonmal! :)

Geschrieben

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

Geschrieben

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!

Geschrieben

Hi,

 

da du nicht weißt, wie tief die Verschachtelung ist, müsstest du das rekursiv machen. Vielleicht komme ich morgen dazu das zu schreiben, ist eigentlich nicht wild.

 

Gruß

 

woiza

 

P.S.: Ich nehme mal an, du kommst aus Lauffen ;)

Geschrieben

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

Geschrieben

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

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...