Jump to content

Problem bei Get-ADUser


Direkt zur Lösung Gelöst von Dukel,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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 gefunden
Bei 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 von StStanke
Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...