AD-User exportieren

Ich versuche gerade aus dem Active Directory das AD-Feld „MemberOf“ von einem User zu exportieren. Das heiss, ich kann es schon mit diesem Kommandozeilenbefehl:

ldifde -f &username%.txt -r „(samAccountName=%username%)“ -l memberof

Wenn ich das mache habe ich in der Textdatei leider den vollen Gruppennamen drin wie z.B.

memberOf: CN=G_Gruppenname,OU=Gruppen,OU=Groups,DC=domain,DC=adinternal,DC=com

Kann ich das Exportergebnis nur auf den CN-Namen beschränken?
Ich möchte in dem Textfile eigentlich nur die Gruppennamen aufgelistet haben, in denen der User ist. Den Rest brauche ich nicht. Dann muss ich nämlich die Textdatei nich noch von Hand auseinandernehmen…

Für alternative Exporttools bin ich offen…

Gruss Stephan

Ich versuche gerade aus dem Active Directory das AD-Feld
„MemberOf“ von einem User zu exportieren. Das heiss, ich kann
es schon mit diesem Kommandozeilenbefehl:

ldifde -f &username%.txt -r „(samAccountName=%username%)“ -l
memberof

Wenn ich das mache habe ich in der Textdatei leider den vollen
Gruppennamen drin wie z.B.

memberOf:
CN=G_Gruppenname,OU=Gruppen,OU=Groups,DC=domain,DC=adinternal,DC=com

Kann ich das Exportergebnis nur auf den CN-Namen beschränken?

Nun, so steht es im AD, und ldifde kann nur das ausgeben was es im AD findet. Eine Nachbearbeitung des Abfrageergebnisses ist in ldifde nicht möglich.

Ich möchte in dem Textfile eigentlich nur die Gruppennamen
aufgelistet haben, in denen der User ist. Den Rest brauche ich
nicht. Dann muss ich nämlich die Textdatei nich noch von Hand
auseinandernehmen…

Am Einfachsten, hau mich tot aber ich kann es beweisen, geht das mit dem Windows Scripting Host (WSH). Meinetwegen (bevor der große Aufschrei kommt) auch mit der Powershell. Ich denke, da sind kaum mehr als 20 Zeilen simpler Code notwendig. Halbe Stunde Arbeit für mich, samt Test.

Beispielcode zum Abkupfern gibt es wie Sand am Meer. Google wsh list user group memberships, und schon hast Du ein Smaple wie Du die Gruppenmitgliedschaften eines Users auflisten kannst. Dann brauchst Du noch zwei weitere Bausteine: wscript.arguments um den Usernamen über die Kommandozeile einzulesen, und das NameTranslate Object (extrem nützlich …), das unter Anderem auch einen LDAP Pfad auseinandernehmen kann. Wenn Dir das zu kryptisch ist, machst Du einfach eine simple Schleife über die MemberOf Liste und öffnest Jede gruppe und liest ihr CN Attribut.

Im ersten Moment hört sich das für einen Nicht-Programmierer alles
ganz furchtbar kompliziert an, aber wenn ich dagegen sehe, was manchmal an Denkschmalz investiert werden muss, um primitivste Anforderungen auf Kommandozeilenebene zu lösen, nur weil die Werkzeugkiste dort nur eine Brechstange, einen Eisenschlägel und einen Satz Ihrmacherschraubendreher entält, ist eine Scriptsprache wie WSH eine wahre Wohltat.

Kommandozeilentools sind OK, wenn eins grad zufällig exakt passt, dann meinetwegen, aber wenn nicht, dann lieber andere Wege suchen. WSH ist fast immer ein guter Weg :smile:

Armin.

Vielen Dank für deine Hilfe.
Ich hab es mit ein bisschen VBS probiert und würde auch funktionieren.
Nur habe ich darin wenig möglichkeiten, da meine Kentnisse in Visual Basic gegen null sinken…

Ich begnüge mich mit dem, was ich bis jetzt habe und belasse das Ergebnis so, wie es ist. Aber nichts desto trotz danke für deine Mühe.

Falls ich noch was finden sollte, das meinen Vorstellungen entsprechen würde, würde ich es hier noch posten.

Merci

Vielen Dank für deine Hilfe.
Ich hab es mit ein bisschen VBS probiert und würde auch
funktionieren.

Na worauf wartest Du denn …?

Nur habe ich darin wenig möglichkeiten, da meine Kentnisse in
Visual Basic gegen null sinken…

Viel kann nicht fehlen. Poste den Code den Du hast entweder hier oder im VBS Forum, und sag an was Dir fehlt, und schon wird Dir wer helfen.

Ich begnüge mich mit dem, was ich bis jetzt habe und belasse
das Ergebnis so, wie es ist. Aber nichts desto trotz danke für
deine Mühe.

Deine Wahl :smile: Melde Dich, wenn Du es Dir noch mal anders überlegen willst.

Armin.