Encontre usuários do AD com atributo do AD específico NÃO nulo

12

Estou procurando um comando script / Powershell que liste todos os usuários do AD que tenham um valor que não seja NULL no atributo teletexterminalidentifier, portanto, eles devem ter um conjunto de valores.

Por padrão, esse atributo não está definido, mas temos um aplicativo que modifica esse atributo (para conter uma cadeia hexadecimal), portanto, estou procurando uma lista de todos os usuários que tenham esse atributo definido como algo.

Obrigado!

Johan
fonte
2
Você já tentou alguma coisa?
Alex McKenzie
1
Sim, mas acho que finalmente entendi, principalmente lendo os arquivos de ajuda :) Get-ADUser -Filter 'teletexterminalidentifier -ge 0' | Export-CSV c: \ list.csv Parece funcionar. Como faço a mesma coisa, mas exporto o valor do atributo teletexterminalidentifier ao mesmo tempo?
Johan

Respostas:

10

Você deve conseguir os usuários usando:

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

Você pode filtrar o que precisa, canalizando o comando:

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

Onde Select-Objectpermite selecionar de quais campos você deseja obter as informações por nome.

Alex McKenzie
fonte
Infelizmente, recebo Get-ADUser: Erro ao analisar a consulta: '' teletexterminalidentifier '-like' * '' Mensagem de erro: 'erro de sintaxe' na posição: '1'.
Johan
Você importou o módulo?
Colyn1337 /
Sim. Quando altero o comando para Get-ADUser -Filter 'teletexterminalidentifier-like "*"' | export-csv c: \ list6.csv funciona. Apenas uma pequena reformulação da sintaxe.
314 Johan Johan
4

Acho que o que você está procurando é o cmdlet Where-Object. Aqui estão alguns pseudo-códigos para ajudá-lo:

Get-ADUser -Filter * | Where-Object {$_.teletexterminalidentifier -ne $null} | Export-Csv c:\list.csv
Colyn1337
fonte
Esse comando está solicitando que eu forneça valores para "Filtro" PS C: \ Users \ admin \ Desktop> Get-ADUser | Onde-objeto {$ _. Teletexterminalidentifier -ne $ null} | Export-Csv c: \ list4.csv cmdlet Get-ADUser na posição do pipeline de comando 1 Forneça valores para os seguintes parâmetros: (Digite!? Para obter ajuda.) Filtro:
Johan
1
@ John Adicionei o parâmetro do filtro ao exemplo.
Colyn1337
1

Se você deseja filtrar usuários com base nessa propriedade, adicione a -propertiesopção ao Get-ADuserCmdlet. De fato, sem essa opção, ele carrega apenas propriedades básicas (membros) para objetos do usuário.

Portanto, aqui está o comando completo para alcançar o que você deseja:

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

Produzirá esse tipo de resultado: insira a descrição da imagem aqui

Então você poderá exportar o resultado para o formato desejado.

Espero que isto ajude !

Ob1lan
fonte