0

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

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

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

4

2 回答 2

1

我不相信马蒂亚斯的回答是正确的。要确定给定的 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/

我希望这有帮助。

于 2018-05-15T14:30:24.547 回答
0

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

$SAExists = [bool](Get-ADUser -Filter {SAMAccountName -eq $username -and PasswordNeverExpires -eq $true -and Enabled -eq $true})
于 2017-02-01T11:12:43.233 回答