gpt4 book ai didi

powershell - 获取事件目录组的成员数?

转载 作者:行者123 更新时间:2023-12-03 01:17:38 25 4
gpt4 key购买 nike

是否可以根据 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

}

最佳答案

我对您的问题的解释是,对于特定的 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 的所有用户所以它们可以被忽略。
  • 使用 Get-ADUser 调用获取所有用户对象。我们需要 canonicalname因为我们得到了父容器的信息
  • 这是有趣的部分。使用 canonicalname把它分开(就像你要一个目录一样),然后把 -parent部分。
  • 将对象分组以获得您要查找的计数
  • 使用 select 语句简化输出。

  • 输出
    Name                                                                    Count
    ---- -----
    Domain.Local\OU\SubOU 8
    Domain.Local\OU\SubOU2 8
    Domain.Local\OU\SubOU5 2

    关于powershell - 获取事件目录组的成员数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25623217/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com