Проверьте, является ли пользователь служебной учетной записью

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

Get-ADUser $username -Properties PasswordNeverExpires |
  where { $_.PasswordNeverExpires -eq "true" } |
  where { $_.Enabled -eq "true"}

Он должен возвращать только одно значение, может быть с True или False. Как я мог это сделать?

2 ответа

Решение

Приведите выражение к [bool] - если нет пользователя с этими критериями, он будет $false, иначе $true:

$SAExists = [bool](Get-ADUser -Filter {SAMAccountName -eq $username -and PasswordNeverExpires -eq $true -and Enabled -eq $true})

Я не верю, что ответ Матиаса правильный. Чтобы определить, является ли данное имя sAMAccountName служебной учетной записью, см. Следующее:

https://docs.microsoft.com/en-us/powershell/module/activedirectory/get-adserviceaccount?view=winserver2012-ps

Команда powershell:

Get-ADServiceAccount -Identity Service1

где 'Service1' является именем sAMAccountName.

Обновить:

У меня есть похожие сообщения на этот вопрос, но моей целью было получить все управляемые учетные записи служб через фильтр C# LDAP (см. Ссылку ниже).

Active Directory: как определить, является ли учетная запись служебной учетной записью?

https://blogs.technet.microsoft.com/askds/2009/09/10/managed-service-accounts-understanding-implementing-best-practices-and-troubleshooting/

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

Другие вопросы по тегам