Получить список включенных и не заблокированных пользователей Active Directory в powershell - PullRequest
0 голосов
/ 07 мая 2019

У меня ниже командлет:

  get-aduser -filter {Enabled -eq 'true' -and LockedOut -eq 'true'} -Properties samaccountname, givenname, sn, physicalDeliveryOfficeName | 
             Select-Object -Property samaccountname, givenname, sn, physicalDeliveryOfficeName |
             Export-Csv -Encoding Default -path $csvOutputPath -NoTypeInformation

Теперь мне нужно добавить фильтр для исключения заблокированных пользователей AD в вышеупомянутом командлете get-aduser .... но я не знаю, как это сделатьэто ....

Я знаю, что могу получить заблокированных пользователей, используя ниже:

Search-ADAccount -UsersOnly -Locked

Так что любая идея?

1 Ответ

0 голосов
/ 07 мая 2019

Если вы хотите сохранить это в одном запросе, вы можете выполнить фильтрацию по свойству UserAccountControl.Документация показывает, что заблокированная учетная запись помечена битом 0x0010 (шестнадцатеричное) или 16 (десятичное основание 10).Следовательно, вы должны иметь возможность использовать побитовый оператор AND (-band) для определения статуса блокировки.

get-aduser -filter {Enabled -eq 'true' -and (-not (UserAccountControl -band 16))} -Properties samaccountname, givenname, sn, physicalDeliveryOfficeName | 
             Select-Object -Property samaccountname, givenname, sn, physicalDeliveryOfficeName |
             Export-Csv -Encoding Default -path $csvOutputPath -NoTypeInformation

Оператор -not используется для учетных записей, которые не заблокированы.Вы можете удалить его, если хотите найти заблокированные учетные записи.

Технически вы можете использовать UserAccountControl для всего фильтра, но он не так удобен для чтения.Вот пример работы оператора -band:

# Enabled User not locked has useraccountcontrol = 512
[bool](512 -band 16)
False

# Enabled User locked has useraccountcontrol = 528
PS C:\temp\test1> [bool](528 -band 16)
True

# Locked Enabled User with expired password
[bool](8389136 -band 16)
True

См. UserAccountControl Flags для получения дополнительной информации о битах, используемых для определения значений UserAccountControl.

См. About_Arithmetic_Operators для получения дополнительной информации о побитовых операторах.

...