Найти пользователей AD с определенным атрибутом AD, не равным NULL

12

Я ищу для сценария / команды Powershell , который будет список всех пользователей AD , которые имеют значение не NULL в атрибуте teletexterminalidentifier, поэтому они должны иметь множество значений.

По умолчанию этот атрибут не установлен, но у нас есть приложение, которое изменяет этот атрибут (чтобы содержать шестнадцатеричную строку), поэтому я ищу список всех пользователей, для которых этот атрибут имеет какое-то значение.

Благодарность!

Johan
источник
2
Вы уже пробовали что-нибудь?
Алекс Маккензи,
1
Да, но я думаю, что я наконец понял это, в основном, читая файлы справки :) Get-ADUser -Filter 'teletexterminalidentifier -ge 0' | Export-Csv c: \ list.csv Кажется, работает. Как сделать то же самое, но экспортировать значение атрибута teletexterminalidentifier одновременно?
Йохан

Ответы:

10

Вы должны быть в состоянии получить пользователей с помощью:

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

Затем вы можете отфильтровать то, что вам нужно, с помощью команды:

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

Где Select-Objectпозволяет вам выбрать, из каких полей вы хотите получить информацию по имени.

Алекс Маккензи
источник
К сожалению, я получаю Get-ADUser: Ошибка анализа запроса: '' teletexterminalidentifier '-like' * '' Сообщение об ошибке: 'синтаксическая ошибка' в позиции: '1'.
Йохан
Вы импортировали модуль?
Colyn1337
Да. Когда я меняю команду на Get-ADUser -Filter 'teletexterminalidentifier-like "*"' | export-csv c: \ list6.csv это работает. Просто небольшая доработка синтаксиса.
Йохан
4

Я думаю, что вы ищете командлет Where-Object. Вот некоторый псевдокод, чтобы помочь вам:

Get-ADUser -Filter * | Where-Object {$_.teletexterminalidentifier -ne $null} | Export-Csv c:\list.csv
Colyn1337
источник
Эта команда побуждает меня указывать значения для «Filter» PS C: \ Users \ admin \ Desktop> Get-ADUser | Where-Object {$ _. Teletexterminalidentifier -ne $ null} | Командлет Export-Csv c: \ list4.csv Get-ADUser в позиции конвейера команд 1 Задайте значения для следующих параметров: (Введите!? Для справки.) Фильтр:
Йохан
1
@Johan Я добавил параметр фильтра в пример.
Colyn1337,
1

Если вы хотите фильтровать пользователей на основе этого свойства, вы должны добавить -propertiesпереключатель в Get-ADuserкомандлет. Действительно, без этого переключателя он загружает только основные свойства (элементы) для пользовательских объектов.

Таким образом, вот полная команда для достижения того, что вы хотите:

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

Это даст такой результат: введите описание изображения здесь

Тогда вы сможете экспортировать результат в нужный формат.

Надеюсь это поможет !

Ob1lan
источник