none
Export einer User-Liste aus einer bestimmten untergeordneten OU RRS feed

  • Frage

  • Hallo zusammen,

    ich habe ein Anliegen. Ich möchte User bestimmter untergeordneter OUs in eine csv exportieren. Bislang habe ich aus der übergeordneten OU alle User aus untergeordneten OUs exportiert.

    get-aduser -searchbase "ou=users,DC=example,DC=example" -filter * -properties * | select-object samaccountname,givenname,sn,objectclass,title,department,mail,telephoneNumber,streetAddress,company,description,AccountExpirationDate,lastlogondate | export-csv C:\temp\testexport-aduser.csv -notypeinformation -delimiter "," -encoding utf8;

    Dies soll ich jedoch splitten, sodass ich für jede untergeordnete OU eine separate Export-Liste erstelle. Wie komme ich aber nur auf genau die User, der OU, die ich möchte. Wie zum Beispiel hier:

    (übergeordnete OU) users -> (untergeordnete OU) Standortxy-user

    Ich möchte nur eine Export-Liste mit den Usern der OU Standortxy-user

    Kann mir jemand weiterhelfen?

    Mittwoch, 11. Juli 2018 09:13

Alle Antworten

  • Hallo zusammen,

    ich habe ein Anliegen. Ich möchte User bestimmter untergeordneter OUs in eine csv exportieren. Bislang habe ich aus der übergeordneten OU alle User aus untergeordneten OUs exportiert.

    get-aduser -searchbase "ou=users,DC=example,DC=example" -filter * -properties * | select-object samaccountname,givenname,sn,objectclass,title,department,mail,telephoneNumber,streetAddress,company,description,AccountExpirationDate,lastlogondate | export-csv C:\temp\testexport-aduser.csv -notypeinformation -delimiter "," -encoding utf8;

    Dies soll ich jedoch splitten, sodass ich für jede untergeordnete OU eine separate Export-Liste erstelle. Wie komme ich aber nur auf genau die User, der OU, die ich möchte. Wie zum Beispiel hier:

    (übergeordnete OU) users -> (untergeordnete OU) Standortxy-user

    Ich möchte nur eine Export-Liste mit den Usern der OU Standortxy-user

    Kann mir jemand weiterhelfen?


    Lade die untergeordneten OUs in ein Array und arbeite dieses Array mit foreach oder schöner mit for ab.
    Die Info sollte ausreichen. Falls es doch zu schwer ist kann ich auch noch ein Codebeispiel dafür liefern, aber es bringt doch jeden persönlich immer weiter wenn etwas Eigenleistung nötig ist.

    • Bearbeitet BeatYa Mittwoch, 11. Juli 2018 09:50
    Mittwoch, 11. Juli 2018 09:48
  • Hi,

    benutze das CMDlet "Get-ADOrganizationalUnit", um dir beliebige OUs ausgeben zu lassen. Verwende dann eine foreach-Schleife wie folgend.

    foreach ($OU in $OUs) {
          $User = Get-aduser -searchbase $($OU.DistinguishedName) (...)
          $User | export-csv -path "C:\$($OU.Name).csv" (...)
          }

    Du kannst mit dem o.g. CMDlet natürlich beliebig filtern. 

    MfG

    Mittwoch, 11. Juli 2018 11:11
  • Hi,

    benutze das CMDlet "Get-ADOrganizationalUnit", um dir beliebige OUs ausgeben zu lassen. Verwende dann eine foreach-Schleife wie folgend.

    foreach ($OU in $OUs) {
          $User = Get-aduser -searchbase $($OU.DistinguishedName) (...)
          $User | export-csv -path "C:\$($OU.Name).csv" (...)
          }

    Du kannst mit dem o.g. CMDlet natürlich beliebig filtern. 

    MfG

    Moin,

    ein Bißchen mehr Finesse als $OU.Name braucht das Ganze schon. Wenn ich mehrere Sub-OUs für Produktionsstandorte habe und in jeder gibt es eine OU "Postfachbenutzer", was steht dann in C:\Postfachbenutzer.csv? ;-)


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> https://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com


    In theory, there is no difference between theory and practice. In practice, there is.

    Mittwoch, 11. Juli 2018 12:39
  • Moin und Danke für Deinen Kommentar.

    Tarek sollte selbstverständlich berücksichtigen, dass wenn es mehrere Sub-OUs mit dem gleichen Namen gibt, deren CSVs überschrieben werden würden, wenn nicht "export-csv -append" verwendet wird.

    Mit "-Append" würden für jede OU mit unterschiedlichem Namen genau eine CSV-Datei bekommen. Je nach Anwendungsfall wäre das evtl. gar nicht schlecht.

    Wenn Du eindeutige Namen für die CSV-Dateien jeder OU benötigst, dann könntest Du aus dem DistinguishedName der OU einen gültigen Dateinamen basteln. 

    Ganz simpel wäre folgendes. 

    $Filename = ($DN.Replace("OU=","").Replace(",","_").Replace("DC=",""))+".csv"

    MfG

    Donnerstag, 12. Juli 2018 06:32