2014-10-09 50 views
0

林试图让所有的AD用户,其中经理字段用户禁用PowerShell中得到-ADUser便有哪里经理当量禁用

以下不工作,我已经尝试过多种方法,虽然不能弄明白

Get-ADUser -SearchBase "XXX" -filter {enabled -eq $true} -Properties * | where {Get-aduser -Filter {distinguishedname -eq $_.manager -and enabled -eq $false}} 

回答

0

我没有一个已经填充Manager属性的随时可用的AD,因此该脚本未经过测试。无论如何,一个简单的方法是用Get-ADUser创建两个集合。填写一个所有的残疾人帐户和一个启用的帐户。循环启用帐户并检查是否从禁用中找到管理器。

为了使事情更快,残疾人的账户作为哈希表Group-Object存储和使用哈希表的ContainsKey()方法,像这样,

$disabled = Get-ADUser -filter { enabled -ne $true } | group-object ` 
    -AsHashTable -AsString -Property Name 
$users = Get-ADUser -filter { enabled -eq $true } 

foreach($user in $users) { 
    if($disabled.ContainsKey($user.Manager)) { 
    # User's manager is a disabled account 
    } 
}