检查用户是否是服务帐户

时间:2017-02-01 11:06:44

标签: powershell active-directory powershell-v2.0 windows-users

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

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

它应该只返回一个值,可能是True或False。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

我不相信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过滤器获取所有托管服务帐户(请参阅下面的链接)。

Active Directory: How to determine whether account is service account?

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

我希望这会有所帮助。

答案 1 :(得分:0)

将表达式转换为[bool] - 如果不存在具有这些条件的用户,则表示$false,否则为$true

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