Jump to content
Sign in to follow this  
-=MGoF=-Grisu

AD Abfrage: User aus unterschiedlichen OUs

Recommended Posts

Hallo,

 

ich bin mit einem Export aus AD beschäftigt und komme kurz vor dem Ziel nicht weiter...

 

Ich sollte aus unterschiedlichen OUs User mit bestimmten Parametern exportieren. Aus einer OU klappt alles wunderbar, nur lassen sich mit csvde scheinbar nicht mehrere OUs auslesen. Über eine Batch Datei wäre das zwar möglich, allerdings wird das Outputfile bei jeder OU überschrieben.

 

Das hat mich dann aus dsquery gebracht, allerdings ist der Export nicht für eine Weiterverarbeitung z.b. mit Excel brauchbar...

 

csvde:

csvde -f file -r objectCategory=person -l sn,givenName,employeeNumber,department,extensionAttribute3 -d "OU=User,OU=Productive,DC=Domain,DC=at" -p Base

 

ganz toll wäre ja, wenn man mehrere DNs abfragen könnte - bsp.: "(|(OU=Gruppenleiter,OU=User,OU=Productive,DC=Domain,DC=at)(OU=Abteilungsleiter,OU=User,OU=Productive,DC=Domain,DC=at))"

 

...nur läuft das eben nicht

 

hat jemand hier ne Idee, wie ich mehrere OUs in ein Outputfile bringe, oder ich die Ausgabe in eine Datei anhängen kann?

 

Vielen Dank schon mal

 

Gruß

Grisu

Share this post


Link to post
Share on other sites

Moin,

 

kannst du bitte genau erklären, wo die Objekte liegen, nach welchen Kriterien du sie filtern willst und was du mit den Daten dann vorhast?

 

Gruß, Nils

Share this post


Link to post
Share on other sites

Hallo,

 

in der OU Productive gibt es mehrere Unter-OUs (User, Praktikanten, Aussenstellen, Systemuser... in der OU Aussenstellen sind auch User angelegt)

 

Ich benötige einen Export von allen Benutzern in den OUs User, Praktikanten und Aussenstellen, ohne Systemuser

 

Mit "csvde -f file -r objectCategory=person -l sn,givenName,employeeNumber,department,extensionAttribute3 -d "OU=Productive,DC=Domain,DC=at" werden die Systemuser auch gelistet.

 

Somit möchte ich die Auswertung auf folgende OUs beschränken:

OU=User,OU=Productive,DC=Domain,DC=at -p Onelevel

OU=Praktikanten,Productive,DC=Domain,DC=at -p Onelevel

OU=Aussenstellen,OU=Productive,DC=Domain,DC=at -p Subtree

 

Der Export wird für die Weiterverwendung in anderen Applikationen benötigt und wird in regelmäßigen Abständen erstellt...

 

Bisher ist mir nur eingefallen, bei den betroffenen Usern ein weiteres Attribut einzufügen, welches dann gefiltert werden kann - wäre halt eine zustätzliche Fehlerquelle

 

Gruß und Danke

Grisu

 

edit:

genau sowas wäre mein Ziel, läuft aber eben nicht...:

"csvde -f file -r objectCategory=person -l sn,givenName,employeeNumber,department -d "OU=User,OU=Productive,DC=Domain,DC=at","OU=Praktikanten,Productive,DC=Domain,DC=at","OU=Aussenstellen,OU=Productive,DC=Domain,DC=at","..." -p Onelevel

Share this post


Link to post
Share on other sites

Moin,

 

hört sich so an, als sei csvde nicht das richtige. Dort hast du nämlich auch den Umstand, dass du dich nicht auf die Reihenfolge der Felder verlassen kannst - für wiederholte Importvorgänge also ungeeignet; auch ein Export in Teilen per Batch wird daran scheitern, weil die Teildateien dann u.U. nicht dieselbe Feldreihenfolge haben. Allenfalls könntest du versuchen, mit Filterkriterien zu arbeiten und auf den LDAP-Pfad zu filtern, aber ich weiß nicht, ob das gelingt.

 

Schau dir mal adfind von Joe Richards an, vielleicht kommst du damit zu besseren Ergebnissen. Ist allerdings etwas komplex in der Syntax, nimm dir also Zeit.

 

faq-o-matic.net » Active-Directory-Massenoperationen mit AdMod und AdFind

 

Bessere Empfehlungen kann ich aufgrund der rudimentären Angaben nicht machen. Was du mit "Systemuser" meinen könntest, ist mir darüber hinaus unklar.

 

Gruß, Nils

Share this post


Link to post
Share on other sites

Moin,

 

Damit hättest du maximale Flexibilität

 

Off-Topic:

ähh ... nee.

(Ja, gut, ich weiß was du meinst ... aber "maximal" hieße "maximal", und das stimmt nicht.)

 

Gruß, Nils

Share this post


Link to post
Share on other sites

danke für die Tipps... hab mich eben so auf dieses csvde vertieft, dass ich es unbedingt so auf die reihe kriegen wollte

 

mit adfind sollte ich weiterkommen - powershell kenntnisse? sagen wir mal so, ich kenne es :D wäre aber mal ein grund, mich da mal etwas zu vertiefen

 

@systemuser - war nur ein beispiel und irgendwie wohl ein verwirrender begriff - leider ist das betroffene AD ein ziemlicher saustall mit "usern" die eigentlich keine sind (Applikationen usw.) - aufräumen und neuorganisieren wäre angesagt - nur hab ich das mittlerweile aufgegeben

 

@csvde und reihenfolge - hab ich auch schon bemerkt, da die user der betroffenen OUs alle zuverlässig befüllt sind, sollte die reihenfolge zuverlässig stimmen

Share this post


Link to post
Share on other sites

Moin,

 

@csvde und reihenfolge - hab ich auch schon bemerkt, da die user der betroffenen OUs alle zuverlässig befüllt sind, sollte die reihenfolge zuverlässig stimmen

 

??? die Daten bei den Objekten haben mit der Ausgabereihenfolge der Felder durch csvde nichts zu tun.

 

Wenn man wüsste, was du mit dem Export genau vorhast, könnte man dir evtl. auch was anderes vorschlagen. Vielleicht ist ein Export-Eigenbau per ADSI/VBScript oder per PowerShell ja tatsächlich besser. Oder deine Ziel-Applikationen können direkt auf das AD zugreifen.

 

Gruß, Nils

Share this post


Link to post
Share on other sites
??? die Daten bei den Objekten haben mit der Ausgabereihenfolge der Felder durch csvde nichts zu tun.

scheinbar doch, beim ersten user einer OU war der kürzel (employeeid) nicht eingetragen, bei dieser abrage war dann das feld am ende gelistet...

 

hab ich denn noch nicht beschrieben, was ich möchte? user export aller akiven user aus mehreren OUs - die App greift nicht direkt auf das AD zu

 

folgend felder werden benötigt sn,givenName,employeeNumber,department,extensionAttribute3 (=Kostenstelle)

 

die deaktivierten objekte filtere ich bei der abfrage aus, was aber mit meinem problem nichts zu tun hat:

 

-r "(|(useraccountcontrol=512)(useraccountcontrol=544)(useraccountcontrol=66048))"

 

für was genau der export verwendet wird, weiß ich gar nicht - habe nur eine anfrage für diesen export bekommen ...

Share this post


Link to post
Share on other sites

Moin,

 

deshalb musst du ja nicht aufhören, die Shift-Taste zu verwenden.

 

Du machst den gleichen Fehler wie viele Fragesteller: Du hast dir einen Lösungsweg ausgesucht für ein Problem, das du nicht beschreibst. Nun kommst du mit deinem Weg nicht weiter und fragst nach Unterstützung. Vielleicht könnte man dir aber besser helfen, wenn man wüsste, welches Problem du denn eigentlich lösen willst - in diesem Fall: Was denn mit dem Export genau passieren soll.

 

Gruß, Nils

Share this post


Link to post
Share on other sites

Hallo,

 

ich denke, ich habe mein Problem ausführlich geschildert? Ich weiß nicht, was ich noch schreiben soll.

 

Mein Boss hat mir die Aufgabe gegen, einen Export als csv oder txt Datei vom AD von allen Mitarbeitern mit Name, Abteilung, Personalnummer und Kürzel zur Verfügung zu stellen. Was damit geschehen soll, weiß ich nicht und hat auch mit meinem Problem nichts zu tun? Ich weiß nur, dass die Applikation, welche den Export für was auch immer verwendet keinen Zugriff auf das AD hat.

 

Ich möchte einfach nur wissen, wie ich Objekte aus verschiedenen OUs abfragen kann...

 

weitergekommen bin ich überigens auch schon, der Export läuft mit csvde, mit ein wenig Bastelei hab ich es auf die Reihe bekommen. Nur glaub ich nicht, dass es keine bessere Lösung gibt. Dafür schau ich mir morgen zuerst adfind an, zur Not auch Powershell

 

Ich versteh nicht ganz, was dir für Infos fehlen? Meine Fragestellung sollte eigentlich schon aus der Überschrift ersichtlich sein - oder reden wir ganz einfach aneinander vorbei??

 

bis denne

Grisu

Share this post


Link to post
Share on other sites

Moin,

 

dann mal ein Ansatz mit Powershell für Dich:

 

$OU = "domain.at/productive/user"
Get-QADUser -SearchRoot $OU -includedproperties sn,givenName,employeeNumber,department,extensionAttribute3 | select sn,givenName,employeeNumber,department,extensionAttribute3 | Sort-Object -Property user > dateiname.txt

 

Für dieses Powershell Script brauchst Du das Quest Cmdlet Modul installiert, sonst kennt Powershell den Get-QADUser Befehl nicht. Das Ergebnis sollte aber passen und für die anderen OU´s bennenst Du den Searchroot und die TXT Datei um und fertig.

 

Grüße

Alex

Share this post


Link to post
Share on other sites

denke Powershell ist hier das beste Mittel. Ist kein großer Skript. 3. Anbieter CMDlets von Quest nutze ich nicht.

Man hat so eine hohe Flexibilität, kann die Daten auch direkt in eine SQL Datenbank exportieren, wie man will (;

 

a) kann und darf man diese nicht in jeder Umgebung nutzen

b) können die Boardmittel dies meistens auch

 

Yusufs Blog ist großartig, er hat viele gute Beispiele :)

http://blog.dikmenoglu.de/ADPowerShell+Befehle.aspx

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...