powershell get-aduser,其中manager -eq被禁用

时间:2014-10-09 04:45:19

标签: powershell

我试图让所有AD用户都被禁用管理员字段中的用户

以下不起作用,香港专业教育学院尝试了多种方法虽然无法弄明白

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

1 个答案:

答案 0 :(得分: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
  }
}