检查用户是否是服务帐户

Check if user is service account

如果给定的用户名是服务帐户,我会尝试使用下面的主机命令来决定。

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

它应该 return 只有一个值,可能是 True 或 False。我该怎么做?

将表达式转换为 [bool] - 如果不存在符合这些条件的用户,它将是 $false,否则 $true:

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

我不相信 Mathias 的回答是正确的。要确定给定的 sAMAccountName 是否是服务帐户,请参阅以下内容:

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

powershell 命令为:

Get-ADServiceAccount -Identity Service1

其中 'Service1' 是 sAMAccountName。

更新:

我有一个与此问题类似的帖子,但我的目标是通过 C# LDAP 过滤器获取所有托管服务帐户(请参阅下面的 link)。

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

希望对您有所帮助。