PowerShell AD-Stammdatenprüfung

George Stobbart

Cadet 4th Year
Registriert
Dez. 2013
Beiträge
66
Guten Tag,

ich arbeite mich gerade in Powershell ein und möchte zukünftig AD-Benutzer automatisiert auf vorhandene Stammdaten prüfen.

Ich möchte lediglich prüfen, ob alle wichtigen Angaben am User hinterlegt sind oder nicht (z.B. PersNr, Vorgesetzter, Kostenstelle etc.)

1. Wieso funktioniert der erste Aufruf aber der zweite nicht ?

PowerShell:
get-aduser -filter * -Properties extensionattribute3 | Where-Object {$_.extensionattribute3 -eq $null}

PowerShell:
get-aduser -filter {extensionattribute3 -eq $null} -Properties extensionattribute3


Fehlermeldung lautet: Variable: "null" wurde im Ausdruck gefunden
Es wäre doch sinnvoll möglichst nur die User direkt zu filtern, die meinen Suchkritieren matchen.


2. Ist es ausreichend mit "-eq $null" zu suchen? Laut diesem Artikel werden leere Strings oder Felder, die ein Leerzeichen enthalten, nicht berücksichtigt .


3 . Da ich einige Felder zu prüfen habe, würde ich diese einfach mit -or verknüpfen, also
PowerShell:
Where-Object {$_.extensionattribute3 -eq $null -or $_.extensionattribute4 -eq $null -or $_.extensionattribute5 -eq $null etc... }

Gibt es für mein Vorhaben eine "elegantere Variante" ?


Vielen Dank im Voraus
 
1. Ich würde vermuten, dass das Attribute "extensionattribute3" nicht bei allen AD-Usern existiert - unabhängig vom Wert.
2. Das Hängt davon ab, was erreicht werden soll


Ein LDAP-Filter sollte hier funktionieren:
PowerShell:
Get-ADUser -properties extensionattribute3 -LDAPFilter "!(extensionattribute3=*)"
 
Zuletzt bearbeitet:
Hi sklaes,

vielen Dank für deine Antwort. Ich werde mir LDAP-Filter einmal genauer anschauen.

Ich möchte bei meiner Abfrage sicherstellen, dass ich wirklich alle Daten erwische. Vielleicht mache ich mir auch zu viele Gedanken^^
 
Zurück
Oben