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!


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.


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

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 !

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.