Malzwei 10 Geschrieben 12. April 2011 Melden Teilen Geschrieben 12. April 2011 Hallo Leute, vielleicht war ich blind, aber ich habe das Theema nicht gefunden: Weiß jemand eine möglichst elegante Lösung, wie ich anhand der SID die Objekte ausfindig machen kann? ggf. gleich durch Eingabe mehrerer SIDs? Geht das dann auch, wenn die Objekte gelöscht wurden? Wir haben unsere Verteiler-Struktur umgebaut. Dabei wurden versehentlich einige alte Verteiler gelöscht - die würden wir halt gerne wieder habn, um das Ergebnis zu vergleichen... Grüße Zitieren Link zu diesem Kommentar
samsam 14 Geschrieben 13. April 2011 Melden Teilen Geschrieben 13. April 2011 Moin, ich weiß es nicht, dass deine frage richtig verstanden. Aber ich denke, du brauchst diese Skript. List Active Directory Objects SID wenn nicht, bitte schreib genau, was du meinst. mfg Zitieren Link zu diesem Kommentar
P.Foeckeler 11 Geschrieben 14. April 2011 Melden Teilen Geschrieben 14. April 2011 Hallo, ganz einfach: Du musst gar nicht nach einem Objekt mit einer bestimmten SID suchen, sondern du kannst dich per ADSI-Scripting auch direkt mit einem Objekt verbinden, dass eine bestimmte SID hat :D. Danach hast du ja direkt Zugriff auf alle Eigenschaften wie z.B. Objektname, Anmeldename, Gruppenmitgliedschaften etc... Ich zitiere mal aus dem betreffenden SelfADSI-Artikel plus angefügtem Beispiel: SelfADSI : Microsoft Security Descriptor (SID) Attribute : LDAP Bind zu Objekten mit SIDs anstatt mit dem Distinguished Name Eine interessante Variation der Suche nach Objekten mit einer vorgegebenen SID: Man kann beim Verbinden mit Objekten (LDAP Bind) auch einfach deren SID verwenden, wenn man folgende Syntax einhält <SID=S-1-5-21-34672221-56910222-80333210-57321189-511> (Beispiel) Sogar die puren HexStrings der SIDs lassen sich hier zum BIND benutzen: <SID=0105000000000005150000001b0e683dbf16479eb5a59ec158040000> (Beispiel) Diese Technik können wir verwenden, um die Liste der direkten und indirekten Gruppenmitgliedschaften viel eleganter als im letzten Beispiel zu erhalten: 'Sie müssen hier andere Namen und Anmeldedaten aus Ihrer eigene Umgebung angeben! Set obj = GetObject("LDAP://cn=Foeckeler,cn=Users,dc=cerrotorre,dc=de") obj.GetInfoEx Array("tokenGroups"), 0 'tokenGroups ist ein Operational Attribut und muß extra angefordert werden groupListRaw = obj.GetEx("tokenGroups") WScript.Echo obj.cn For i = 0 To UBound(groupListRaw) sidHex = OctetToHexStr(groupListRaw(i)) Set obj = GetObject("LDAP://<SID=" & sidHex & ">") WScript.Echo "---> " & obj.distinguishedName Next Function OctetToHexStr(var_octet) 'wandelt reine Binärdaten (Byte-Array) in einen String mit den Hexadezimalwerten um. Dim n OctetToHexStr = "" For n = 1 To lenb(var_octet) OctetToHexStr = OctetToHexStr & Right("0" & hex(ascb(midb(var_octet, n, 1))), 2) Next End Function Gruss, Philipp Zitieren Link zu diesem Kommentar
P.Foeckeler 11 Geschrieben 14. April 2011 Melden Teilen Geschrieben 14. April 2011 Allerdings: Du kommst mit ADSI-Scripting nicht an gelöschte Objekte heran...Versuchs mal mit dem Lazarus, einem kostenlosen Tool für den Zugriff/die Wiederherstellung gelöschter AD-Objekte: LAZARUS - Active Directory Deleted Objects Recovery Ob du dann wirklich die Verteiler plus Mitgliedern wiederherstellen kannst, hängt davon ab, ob du den so genannten AD Recycle Bin in Deinem AD Forest aktiviert hast. Steht aber alles auf der Seite vom Lazarus ganz gut erklärt.... Gruß, Philipp 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.