PowerShell Get-ADUser过滤器管理器为空

时间:2014-08-04 10:57:03

标签: powershell syntax active-directory

我正在寻找一种方法来检索在活动目录中没有分配给它们的所有用户。无论我尝试什么,它总是吐出错误。

正常工作:

Get-ADUser -Filter {-not(lastLogonTimeStamp -like "*")} -Properties * -SearchBase "xxx"     

不起作用:

Get-ADUser -Filter {-not(manager -like "*")} -Properties * -SearchBase "xxx"
Get-ADUser -Filter {manager -ne "*"} -Properties * -SearchBase "xxx 
Get-ADUser -Filter {manager -eq $null} -Properties * -SearchBase "xxx
Get-ADUser -Filter {manager -notlike '*'} -Properties * -SearchBase "xxx

如果不使用where子句,是否有人对正确的语法有所了解?

解决方法:

Get-ADUser -SearchBase "xxx" -Filter * -Properties * | where {$_.manager -eq $null}

感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

使用-LDAPFilter开关:

Get-ADUser -LDAPFilter "(!manager=*)" -Properties *

答案 1 :(得分:0)

我测试了此代码,此外,如果您仅需要缺少经理字段的已启用帐户,就可以对1000个用户进行测试。如果您想加快搜索速度,则可以使用搜索库,但是如果有时间的话,则不必这样做。 :)

$results =Get-ADUser -Filter * -Properties * -ResultSetSize 1000 | where {$_.manager -eq $null -and $_.enabled -eq $True} |select samaccountname, mail, manager, enabled
$results