Trova utenti AD con attributo AD specifico NON null


12

Sto cercando un comando script / Powershell che elencherà tutti gli utenti AD che hanno un valore non NULL nell'attributo teletexterminalidentifier, quindi devono avere un valore impostato.

Per impostazione predefinita questo attributo non è impostato ma abbiamo un'app che modifica questo attributo (per contenere una stringa esadecimale), quindi sto cercando un elenco di tutti gli utenti che hanno questo attributo impostato su qualcosa.

Grazie!


2
Hai già provato qualcosa?
Alex McKenzie

1
Sì, ma penso di averlo finalmente capito, principalmente leggendo i file di aiuto :) Get-ADUser -Filter 'teletexterminalidentifier -ge 0' | Export-Csv c: \ list.csv Sembra funzionare. Come posso fare la stessa cosa, ma allo stesso tempo esportare il valore dell'attributo teletexterminalidentifier?
Johan,

Risposte:


10

Dovresti essere in grado di ottenere gli utenti utilizzando:

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

Puoi quindi filtrare ciò di cui hai bisogno eseguendo il piping del comando:

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

Dove Select-Objectti consente di selezionare i campi da cui ottenere le informazioni per nome.


Sfortunatamente ottengo Get-ADUser: errore durante l'analisi della query: '' teletexterminalidentifier '-like' * '' Messaggio di errore: 'errore di sintassi' nella posizione: '1'.
Johan,

Hai importato il modulo?
Colyn1337,

Sì. Quando cambio il comando in Get-ADUser -Filter 'teletexterminalidentifier -like "*"' | export-csv c: \ list6.csv funziona. Solo una leggera rielaborazione della sintassi.
Johan,

4

Penso che quello che stai cercando sia il cmdlet Where-Object. Ecco alcuni pseudo-codice per aiutarti:

Get-ADUser -Filter * | Where-Object {$_.teletexterminalidentifier -ne $null} | Export-Csv c:\list.csv

Tale comando mi richiede di fornire valori per "Filtro" PS C: \ Users \ admin \ Desktop> Get-ADUser | Where-Object {$ _. Teletexterminalidentifier -ne $ null} | Export-Csv c: \ list4.csv cmdlet Get-ADUser nella posizione della pipeline di comando 1 Fornire i valori per i seguenti parametri: (Digitare!? Per Guida.) Filtro:
Johan

1
@Johan Ho aggiunto il parametro param all'esempio.
Colyn1337,

1

Se si desidera filtrare gli utenti in base a questa proprietà, è necessario aggiungere -propertiesl' Get-ADuseropzione al Cmdlet. Infatti, senza questa opzione, carica solo le proprietà di base (membri) per gli oggetti utente.

Quindi, ecco il comando completo per ottenere ciò che vuoi:

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

Produrrà questo tipo di risultato: inserisci qui la descrizione dell'immagine

Quindi sarai in grado di esportare il risultato nel formato desiderato.

Spero che sia di aiuto !

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.