StStanke 0 Geschrieben 11. Februar 2015 Melden Teilen Geschrieben 11. Februar 2015 (bearbeitet) Moin zusammen, ich habe folgendes vor: Ich möchte eine Liste von Usern aus dem AD auslesen die in einer bestimmten OU liegen bekomme aber immer einen Fehler ausgegeben. Mein Script sieht wie folgt aus: #AD Modul importieren Import-Module ActiveDirectory #Variablen setzen $Properties=@(“samaccountname”,"mail","PasswordExpired","LastLogonDate") #Userobjekte in das Array $Users einlesen $Users = @(Get-ADUser -Filter '*' -SearchBase "OU=Ebene1/Ebene2,DC=OOOO,DC=OOOO,DC=DE" -Properties $Properties) #Anlage der DataTabelle mit Spalten für jede Property in Properties $DataTable=New-Object System.Data.DataTable("ExportUsers") $Properties | foreach { $Column = New-Object System.Data.DataColumn($_) $DataTable.Columns.Add($Column) } #Befüllen der DataTable mit Daten foreach ($User in $Users){ $PropertiesInRow =@() foreach($Property in $Properties) { $OFS=$myOFS $PropertiesInRow += [String]$($User.$($Property.ToString())) $OFS="+" }#foreach($Property in $Properties) $DataTable.Rows.Add($PropertiesInRow) |Out-Null }#foreach ($User in $Users) #Ausgabe $DataTable | Format-Table -Auto $DataTable | Export-Csv "c:\temp\LastLogonDate.csv" -Delimiter ";" Wenn ich nur in OU Ebene 1 Suche ist auch alles kein Problem aber sobald ich versuche eine Ebene "Tiefer" zu gehen bekomme ich folgende Fehlermeldung: Get-ADUser : Verzeichnisobjekt nicht gefundenBei Zeile:16 Zeichen:22+ $Users = @(Get-ADUser <<<< -Filter '*' -SearchBase "OU=Ebene1/Ebene2,DC=OOOO,DC=OOOO,DC=DE" -Properties $Properties) + CategoryInfo : ObjectNotFound: ( :) [Get-ADUser], ADIdentityNotFoundException + FullyQualifiedErrorId : Verzeichnisobjekt nicht gefunden,Microsoft.ActiveDirectory.Management.Commands.GetADUser Die OU's sind wie folgt strukturiert im AD: OU Ebene1 = Alles OU Ebene2 = Postfächer; Gruppen; ect. OU Ebene3 = Benutzer1;Benutzer2; ect. Eigentlich muss ich die OU's in Ebene 3 einzeln ansteuern können, hat jemand ne Idee? Grüße bearbeitet 11. Februar 2015 von StStanke Zitieren Link zu diesem Kommentar
Beste Lösung Dukel 455 Geschrieben 11. Februar 2015 Beste Lösung Melden Teilen Geschrieben 11. Februar 2015 Es müsste OU=Ebene2,OU=Ebene1,DC=OOOO,DC=OOOO,DC=DE heissen. Das ist eine LDAP Schreibweise. Wenn du dir nicht sicher bist kannst du diese auch per Active Directory Users & Computers auslesen. Eigenschaften einer OU im Reiter Attribute unter distinguishedName. Zitieren Link zu diesem Kommentar
ineedhelp 12 Geschrieben 11. Februar 2015 Melden Teilen Geschrieben 11. Februar 2015 (bearbeitet) Der vollständige ADS-Pfad muss ou=Ebene1,ou=Ebene2,dc=xxx,dc=xxx,dc=xxx lauten. bearbeitet 11. Februar 2015 von ineedhelp Zitieren Link zu diesem Kommentar
StStanke 0 Geschrieben 11. Februar 2015 Autor Melden Teilen Geschrieben 11. Februar 2015 Es müsste OU=Ebene2,OU=Ebene1,DC=OOOO,DC=OOOO,DC=DE heissen. Das ist eine LDAP Schreibweise. Wenn du dir nicht sicher bist kannst du diese auch per Active Directory Users & Computers auslesen. Eigenschaften einer OU im Reiter Attribute unter distinguishedName. Ich habs nun mal so versucht Ergebnis ist das gleiche und dabei ist es egal ob ich OU's aus Ebene1 & Ebene2 nehme oder 2 OU's aus Ebene1 so langsam zweifle ich an mir selber Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 11. Februar 2015 Melden Teilen Geschrieben 11. Februar 2015 Wie genau lautet denn deine Abfrage. Was meinst du mit 2 OU's aus Ebene 1? Zitieren Link zu diesem Kommentar
StStanke 0 Geschrieben 11. Februar 2015 Autor Melden Teilen Geschrieben 11. Februar 2015 Ich frage ab “samaccountname”,"mail","PasswordExpired","LastLogonDate" Mit Ebene 1 meine ich OU's die direkt unter der Domäne hängen und mit Ebene 2 meine ich OU'S die Unter einer OU der Ebene 1 Hängen. Wenn ich nun nur 1 OU der Ebene 1 Abfrage läuft alles nehme ich eine 2. dazu dann kriege ich den Fehler der oben angegeben ist. Nehme ich nun wie du gesagt hast OU=Ebene2,OU=Ebene1,DC=OOOO,DC=OOOO,DC=DE kriege ich wieder den Fehler. der name der OU's stimmt Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 11. Februar 2015 Melden Teilen Geschrieben 11. Februar 2015 Wie lautet die genaue Zeile im Script? Geht die Zeile ohne das Array und ohne die Properties? Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 11. Februar 2015 Melden Teilen Geschrieben 11. Februar 2015 Moin, du kannst nicht zwei OUs auf einmal abfragen, sondern immer nur eine. Gruß, Nils Zitieren Link zu diesem Kommentar
StStanke 0 Geschrieben 11. Februar 2015 Autor Melden Teilen Geschrieben 11. Februar 2015 Zeile im Script wäre: #Variablen setzen$Properties=@(“samaccountname”,"mail","PasswordExpired","LastLogonDate")#Userobjekte in das Array $Users einlesen$Users = @(Get-ADUser -Filter '*' -SearchBase "OU=Users,DC=DOMS,DC=KVWL,DC=DE" -Properties $Properties) Moin, du kannst nicht zwei OUs auf einmal abfragen, sondern immer nur eine. Gruß, Nils Ja das dachte ich mir schon fast aber das Kernproblem ist ja auch das ich nich an bestimmte OU's ran komme Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 11. Februar 2015 Melden Teilen Geschrieben 11. Februar 2015 (bearbeitet) Ist mit Users der Default Ordner "Users" gemeint? Dies ist keine OU sondern ein Container. EDIT: Geht es, wenn du folgendes machst: CN=Users,DC=DOMS,DC=KVWL,DC=DE bearbeitet 11. Februar 2015 von Dukel Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 11. Februar 2015 Melden Teilen Geschrieben 11. Februar 2015 Moin, wäre wohl mal Zeit für ein paar Grundlagen, wie? ;) Der Container "Users" ist keine OU, sondern eben ein Container. Den sprichst du an mit CN=Users,DC=domain,DC=tld Und vielleicht unterhalten wir uns zur Abwechslung mal darüber, was du überhaupt erreichen willst, warum es PowerShell sein soll und was mit den Daten geschehen soll. Und dann wäre es noch gut, wenn du dir angewöhnst, deine Beiträge und Antworten möglichst klar und ausführlich zu formulieren, damit man nicht jede Silbe einzeln aus dir rauskitzeln muss. Gruß, Nils Zitieren Link zu diesem Kommentar
StStanke 0 Geschrieben 11. Februar 2015 Autor Melden Teilen Geschrieben 11. Februar 2015 Tach, also: Nein ich meine NICHT den Container sondern eine OU die sinnvollerweise einfach stumpf "Useres" genannt wurde aber die interessiert mich auch nicht mich interessieren OU's die 2 Ebenen weiter darunter aufgehängt wurden. So was will ich eigentlich machen: Ich will regelmäßig einen Report aus dem AD ziehen in dem die Daten "samaccountname”,"mail","PasswordExpired","LastLogonDate" in Form einer .csv ausgegeben werden die dann auf einem Share gespeichert wird. Grundsätzlich läuft auch alles nur wäre es schön wenn ich das ganze auf eine bestimmte OU eingrenzen könnte. Macht ja keinen Sinn wenn da Postfächer u.Ä. mit drinhängen bläst nur die Tabelle auf über 30k Zeilen auf das muss ja nich sein woll. So warum soll es PS sein? Ja weil das ganze in ein bestehendes scrpit rein soll und weil mir zugegeben keine einfacherer kostenlose Möglichkeit eingefallen ist. Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 11. Februar 2015 Melden Teilen Geschrieben 11. Februar 2015 Bei mir (mit der Korrekten OU Angabe) geht das Script ohne Probleme. Evtl. kannst du mit dem Filter arbeiten, so das nur gewünschte Objekte ausgegeben werden. Zitieren Link zu diesem Kommentar
StStanke 0 Geschrieben 11. Februar 2015 Autor Melden Teilen Geschrieben 11. Februar 2015 Bei mir (mit der Korrekten OU Angabe) geht das Script ohne Probleme. Evtl. kannst du mit dem Filter arbeiten, so das nur gewünschte Objekte ausgegeben werden. Hast du denn auch das Szenario mit den Verschachtelten OU's? Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 11. Februar 2015 Melden Teilen Geschrieben 11. Februar 2015 Ja. Kannst du einen Screenshot deines AD's bei einem Bildhoster hochladen und hier verlinken? 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.