2017-08-02 41 views
0
名基地

我的代码:PowerShell的 - 找到描述

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | where {$_.Description -Notlike "Services User"} | select Name 

我想上面的代码,它仍然显示这两个账户。所以我有2个帐户的用户。一个帐户是常规帐户,另一个帐户是服务帐户。我只想显示常规帐户。

回答

1

您的代码看起来很好,适用于我(使用更改的帐户变量)。这意味着你应该检查账户和“服务用户”。逐步分解管道以验证工作是否正常。

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description 

这应该输出这两个帐户,连同他们的描述作为标题。根据你的错误,这部分工作正常,所以你可能甚至不需要检查它。

但是,它可能仍然是好做检查的“说明”属性看起来不错:

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | select Description 

如果这些比赛你所写的内容,那么接下来的元素添加到管道:

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | where {$_.Description -Notlike "Services User"} 

对于这部分,看看它输出的内容更重要。从你所说的话,这将输出这两个帐户,但这不是你想要的。最可能的情况是“服务用户”不完全是您的其他帐户的描述。将它与此代码片段的输出进行比较。

我希望这可以帮助,它只是经典的调试。你也可以使用类似DistinguishedName属性的东西来比较这两个账户,它可能比描述(这不是强制性属性)更可靠。

0

也许你应该使用另一个开关。而不是使用 - 不是像,你应该使用-ne或当量:

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | where {$_.Description -ne "Services User"} | select Name 

或者:

Get-ADUser -Filter {Name -eq "James Kent"} -Properties Description | where {$_.Description -eq "regular account"} | select Name 

当然,当你使用上面的开关,你必须检查的描述字符串。它必须与条件中的字符串相等。

0

兴趣......它的工作原理,当我加"*service*"

感谢总结问题的家伙。

相关问题