Darksun777 10 Geschrieben 5. Februar 2007 Melden Teilen Geschrieben 5. Februar 2007 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! :) Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 5. Februar 2007 Melden Teilen Geschrieben 5. Februar 2007 Hi, du willst den Gruppennamen eingeben und dann den DN bekommen? In welche Variable willst du das Übergeben? Wie willst du die auszulesende Gruppe übergeben? Zitieren Link zu diesem Kommentar
Darksun777 10 Geschrieben 5. Februar 2007 Autor Melden Teilen Geschrieben 5. Februar 2007 Ja genau ... den Gruppennamen kann man auch vorher per Variable definieren ... und den kompletten LDAP-Pfad bzw. DN möchte ich dann wiederrum in einer Variable zur Verfügung haben .. Weisst Du wie man das hinbekommt? Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 5. Februar 2007 Melden Teilen Geschrieben 5. Februar 2007 In einer Variable im Script, mit der du das Script weiterlaufen lassen kannst? Das kann ich schreiben. Zitieren Link zu diesem Kommentar
Darksun777 10 Geschrieben 5. Februar 2007 Autor Melden Teilen Geschrieben 5. Februar 2007 Also wenn Du mir das zur Verfügung stellen könntest, wäre ich Dir super dankbar! Ich suche schon ewig nach so einer Möglichkeit, habe bisher aber nichts gefunden .. Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 6. Februar 2007 Melden Teilen Geschrieben 6. Februar 2007 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 Zitieren Link zu diesem Kommentar
Daim 12 Geschrieben 6. Februar 2007 Melden Teilen Geschrieben 6. Februar 2007 Salve, evtl. ist hier auch noch etwas für Dich dabei: Den LDAP-Pfad eines AD-Objekts anzeigen - faq-o-matic.net Zitieren Link zu diesem Kommentar
Darksun777 10 Geschrieben 6. Februar 2007 Autor Melden Teilen Geschrieben 6. Februar 2007 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! Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 6. Februar 2007 Melden Teilen Geschrieben 6. Februar 2007 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 ;) Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 6. Februar 2007 Melden Teilen Geschrieben 6. Februar 2007 machts euch doch nicht so kompliziert :) @echo off echo group: %1 dsquery group -samid %1 | dsget group -members -expand -l cu blub Zitieren Link zu diesem Kommentar
Darksun777 10 Geschrieben 8. Februar 2007 Autor Melden Teilen Geschrieben 8. Februar 2007 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 Zitieren Link zu diesem Kommentar
woiza 10 Geschrieben 11. Februar 2007 Melden Teilen Geschrieben 11. Februar 2007 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 Zitieren Link zu diesem Kommentar
Darksun777 10 Geschrieben 12. Februar 2007 Autor Melden Teilen Geschrieben 12. Februar 2007 Hallo, vielen Dank! Ich werde es diese Woche ausprobieren und nochmal Rückmeldung geben. Muss mich erstmal in das Script reindenken und die Funktionsweise nachvollziehen. Danke Danke :) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.