Suchen Sie AD-Benutzer mit einem bestimmten AD-Attribut NOT null

12

Ich suche nach einem Skript- / Powershell-Befehl, der alle AD-Benutzer auflistet, deren Wert im Attribut teletexterminalidentifier nicht NULL ist. Daher muss für sie ein Wert festgelegt werden.

Standardmäßig ist dieses Attribut nicht festgelegt, aber wir haben eine App, die dieses Attribut ändert (um eine hexadezimale Zeichenfolge zu enthalten). Daher suche ich nach einer Liste aller Benutzer, für die dieses Attribut festgelegt ist.

Vielen Dank!

Johan
quelle
2
Hast du schon was probiert?
Alex McKenzie
1
Ja, aber ich denke, ich habe es endlich herausgefunden, hauptsächlich durch das Lesen von Hilfedateien :) Get-ADUser -Filter 'teletexterminalidentifier -ge 0' | Export-Csv c: \ list.csv Scheint zu funktionieren. Wie mache ich dasselbe, exportiere aber gleichzeitig den Wert des Attributs teletexterminalidentifier?
Johan

Antworten:

10

Sie sollten in der Lage sein, die Benutzer zu erhalten, indem Sie Folgendes verwenden:

Get-ADUser -Filter 'teletexterminalidentifier -like "*"'

Sie können dann filtern, was Sie benötigen, indem Sie den folgenden Befehl weiterleiten:

Get-ADUser -Filter 'teletexterminalidentifier -like "*"' | Select-Object name,teletexterminalidentifier | Export-Csv file.csv

Hier Select-Objectkönnen Sie auswählen, aus welchen Feldern Sie die Informationen nach Namen abrufen möchten.

Alex McKenzie
quelle
Leider erhalte ich Get-ADUser: Fehler beim Parsen der Abfrage: '' teletexterminalidentifier '-like' * '' Fehlermeldung: 'Syntaxfehler' an Position: '1'.
Johan
Haben Sie das Modul importiert?
Colyn1337
Ja. Wenn ich den Befehl in Get-ADUser -Filter 'teletexterminalidentifier -like "*"' | ändere export-csv c: \ list6.csv es funktioniert. Nur eine leichte Überarbeitung der Syntax.
Johan
4

Ich denke, was Sie suchen, ist das Cmdlet Where-Object. Hier ist ein Pseudocode, der Ihnen helfen soll:

Get-ADUser -Filter * | Where-Object {$_.teletexterminalidentifier -ne $null} | Export-Csv c:\list.csv
Colyn1337
quelle
Dieser Befehl fordert mich auf, Werte für "Filter" PS C: \ Users \ admin \ Desktop> Get-ADUser | anzugeben Where-Object {$ _. Teletexterminalidentifier -ne $ null} | Export-Csv c: \ list4.csv Cmdlet Get-ADUser an der Position der Befehlspipeline 1 Geben Sie Werte für die folgenden Parameter an: (Geben Sie!? Für Hilfe ein.) Filter:
Johan
1
@Johan Ich habe den Filterparameter zum Beispiel hinzugefügt.
Colyn1337
1

Wenn Sie Benutzer basierend auf dieser Eigenschaft filtern möchten, müssen Sie den -propertiesSchalter zum Get-ADuserCmdlet hinzufügen. In der Tat werden ohne diesen Schalter nur grundlegende Eigenschaften (Elemente) für Benutzerobjekte geladen.

Hier ist also der vollständige Befehl, um das zu erreichen, was Sie wollen:

Get-ADUser -filter * -Properties * | ? {$_.teletexterminalidentifier -ne $null} | Select-Object CN,SamAccountName,Teletexterminalidentifier

Es wird diese Art von Ergebnis erzeugen: Geben Sie hier die Bildbeschreibung ein

Anschließend können Sie das Ergebnis in das gewünschte Format exportieren.

Hoffe das hilft !

Ob1lan
quelle