Buscar usuarios de AD con un atributo de AD específico NO nulo

11

Estoy buscando un comando de script / Powershell que enumere todos los usuarios de AD que tengan un valor no NULL en el atributo teletexterminalidentifier, por lo que deben tener un valor establecido.

Por defecto, este atributo no está configurado, pero tenemos una aplicación que modifica este atributo (para que contenga una cadena hexadecimal), por lo que estoy buscando una lista de todos los usuarios que tienen este atributo configurado en algo.

¡Gracias!

Johan
fuente
2
¿Has probado algo ya?
Alex McKenzie
1
Sí, pero creo que finalmente lo descubrí, principalmente leyendo archivos de ayuda :) Get-ADUser -Filter 'teletexterminalidentifier -ge 0' | Export-Csv c: \ list.csv Parece funcionar. ¿Cómo hago lo mismo, pero exporto el valor del atributo teletexterminalidentifier al mismo tiempo?
Johan

Respuestas:

9

Debería poder obtener los usuarios utilizando:

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

Luego puede filtrar lo que necesita canalizando el comando:

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

Where le Select-Objectpermite seleccionar de qué campos desea obtener la información por nombre.

Alex McKenzie
fuente
Desafortunadamente obtengo Get-ADUser: Error al analizar la consulta: '' teletexterminalidentifier '-like' * '' Mensaje de error: 'error de sintaxis' en la posición: '1'.
Johan
¿Importaste el módulo?
Colyn1337
Si. Cuando cambio el comando a Get-ADUser -Filter 'teletexterminalidentifier -like "*"' | export-csv c: \ list6.csv funciona. Solo una ligera reelaboración de la sintaxis.
Johan
4

Creo que lo que está buscando es el cmdlet Where-Object. Aquí hay un pseudocódigo para ayudarlo:

Get-ADUser -Filter * | Where-Object {$_.teletexterminalidentifier -ne $null} | Export-Csv c:\list.csv
Colyn1337
fuente
Ese comando me está pidiendo que proporcione valores para "Filtro" PS C: \ Users \ admin \ Desktop> Get-ADUser | Where-Object {$ _. Teletexterminalidentifier -ne $ null} | Export-Csv c: \ list4.csv cmdlet Get-ADUser en la posición de la tubería de comando 1 Proporcione valores para los siguientes parámetros: (¡Escriba!? Para obtener ayuda). Filtro:
Johan
1
@Johan Agregué el parámetro de filtro al ejemplo.
Colyn1337
1

Si desea filtrar usuarios en función de esta propiedad, debe agregar -propertiesel Get-ADusermodificador al Cmdlet. De hecho, sin este modificador, solo carga propiedades básicas (miembros) para los objetos de usuario.

Por lo tanto, aquí está el comando completo para lograr lo que desea:

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

Producirá este tipo de resultado: ingrese la descripción de la imagen aquí

Luego podrá exportar el resultado al formato deseado.

Espero que esto ayude !

Ob1lan
fuente