Получить всех пользователей из активного каталога, используя фильтр - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь использовать приведенный ниже скрипт для получения всех активных пользователей из AD, однако я не получаю никаких результатов, хотя знаю, что есть данные со значением 512.

Знаете ли вы, что у меня естьздесь не так?

  Get-ADUser -filter {$userAccountControl -eq "512"} -properties Name,userAccountControl -Server myserver.local | Export-CSV "E:\Folder\ADusers.csv" -NoTypeInformation -Encoding UTF8

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Как указано в комментариях, $ не принадлежит.Это говорит PowerShell, что вы хотите использовать значение в переменной с именем $userAccountControl и сравнить его с 512.Учитывая, что вы, вероятно, никогда не устанавливаете переменную с именем $userAccountControl, это означает, что она не сравнивает ничего с 512 и видит, что это не так для каждой учетной записи.

Удалите $, и она сравнит свойство с именемuserAccountControl до 512.

Get-ADUser -filter {userAccountControl -eq "512"} -properties Name,userAccountControl -Server myserver.local | Export-CSV "E:\Folder\ADusers.csv" -NoTypeInformation -Encoding UTF8
0 голосов
/ 28 мая 2018

вы можете попробовать синтаксис LDAPfilter

Get-ADUser -property userAccountControl -LDAPfilter "(userAccountControl=512)"

Однако, это может быть не очень хороший метод: userAccountControl - это двоичное поле, каждый бит представляет двоичное значение (см. https://support.microsoft.com/en-us/help/305144/how-to-use-the-useraccountcontrol-flags-to-manipulate-user-account-pro) дляпример:

512 - это «обычная учетная запись», которую вы хотите

66048 - это «обычная учетная запись» + «пароль не истекает», что также может потребоваться

514«обычная учетная запись» + «учетная запись отключена», которую вы, возможно, не захотите

все значения будут соответствовать

-band 512

вам необходимо уточнить, кто является активным пользователем.

...