是否可以根据OU获取属于特定组的成员数?当我运行下面的代码时,如果只有1个OU值为3,则每个OU的值为3,其余值应为0.它运行Get-ADGroupMember -Identity“Test_Group”。计算整个活动目录结构而不是仅针对每个OU ??
import-module activedirectory
foreach ($ou in Get-ADOrganizationalUnit -filter * -SearchScope 1){
$computers = 0 + (get-adcomputer -filter * -searchbase $ou.distinguishedname).count
$ou | add-member -membertype noteproperty -name Computers -value $computers -force
Foreach ($Member in $ou){
(Get-ADGroupMember -Identity “Test_Group”).count
}
$ou | select name,computers
}
答案 0 :(得分:3)
我对你的问题的解释是,对于特定的AD组,你正在寻找基于OU或容器的成员数。
Get-ADGroupMember -Identity "insert_your_group" -Recursive |
Where-Object{$_.objectClass -eq "User"} |
Get-ADUser -Properties canonicalname |
Select-Object @{Name='Container';Expression={$_.canonicalname | split-path -parent}} |
Group-Object container |
Select Name,Count
逐行打破这个
-Recursive
中的所有用户,因此可以忽略它们。 canonicalname
因为我们获取了父容器的信息canonicalname
将其拆分(就像您在目录中一样),然后只取-parent
部分。<强>输出强>
Name Count
---- -----
Domain.Local\OU\SubOU 8
Domain.Local\OU\SubOU2 8
Domain.Local\OU\SubOU5 2
答案 1 :(得分:0)
(Get-ADGroupMember'AD-groupname'-Recursive).count