Rechercher des utilisateurs AD avec un attribut AD spécifique NOT null

12

Je recherche une commande script / Powershell qui répertoriera tous les utilisateurs AD qui ont une valeur non NULL dans l'attribut teletexterminalidentifier, donc ils doivent avoir un ensemble de valeurs.

Par défaut, cet attribut n'est pas défini, mais nous avons une application qui modifie cet attribut (pour contenir une chaîne hexadécimale), donc je cherche une liste de tous les utilisateurs qui ont cet attribut défini sur quelque chose.

Merci!

Johan
la source
2
Avez-vous déjà essayé quelque chose?
Alex McKenzie
1
Oui, mais je pense que j'ai finalement compris, principalement en lisant les fichiers d'aide :) Get-ADUser -Filter 'teletexterminalidentifier -ge 0' | Export-Csv c: \ list.csv Semble fonctionner. Comment faire la même chose, mais exporter la valeur de l'attribut teletexterminalidentifier en même temps?
Johan

Réponses:

10

Vous devriez pouvoir obtenir les utilisateurs en utilisant:

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

Vous pouvez ensuite filtrer ce dont vous avez besoin en canalisant la commande:

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

Select-Objectvous permet de sélectionner les champs dont vous souhaitez obtenir les informations par nom.

Alex McKenzie
la source
Malheureusement, j'obtiens Get-ADUser: Erreur lors de l'analyse de la requête: '' teletexterminalidentifier '- comme' * '' Message d'erreur: 'erreur de syntaxe' à la position: '1'.
Johan
Avez-vous importé le module?
Colyn1337
Oui. Lorsque je change la commande en Get-ADUser -Filter 'teletexterminalidentifier -like "*"' | export-csv c: \ list6.csv cela fonctionne. Juste une légère retouche de la syntaxe.
Johan
4

Je pense que ce que vous recherchez est l'applet de commande Where-Object. Voici un pseudo-code pour vous aider:

Get-ADUser -Filter * | Where-Object {$_.teletexterminalidentifier -ne $null} | Export-Csv c:\list.csv
Colyn1337
la source
Cette commande m'invite à fournir des valeurs pour "Filter" PS C: \ Users \ admin \ Desktop> Get-ADUser | Where-Object {$ _. Teletexterminalidentifier -ne $ null} | Export-Csv c: \ list4.csv cmdlet Get-ADUser à la position du pipeline de commandes 1 Fournissez des valeurs pour les paramètres suivants: (Tapez!? Pour l'aide.) Filtre:
Johan
1
@Johan J'ai ajouté le paramètre de filtre à l'exemple.
Colyn1337
1

Si vous souhaitez filtrer les utilisateurs en fonction de cette propriété, vous devez ajouter le -propertiescommutateur à l' Get-ADuserapplet de commande. En effet, sans ce commutateur, il ne charge que les propriétés de base (membres) des objets utilisateur.

Ainsi, voici la commande complète pour réaliser ce que vous voulez:

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

Il produira ce genre de résultat: entrez la description de l'image ici

Ensuite, vous pourrez exporter le résultat dans le format souhaité.

J'espère que cela t'aides !

Ob1lan
la source