如何从Active Directory获取特定组的用户数量?
嘿,我来帮你搞定从Active Directory里查询特定组内用户数量的事儿!下面是几种实用的方法,你可以根据自己的操作习惯来选:
方法1:PowerShell(最快捷高效,推荐)
这是运维人员最常用的方式,前提是你已经安装了**RSAT(远程服务器管理工具)**里的AD模块。如果没装,在Windows 10/11上可以通过「设置 → 应用 → 可选功能 → 添加功能」,找到「RSAT: Active Directory Domain Services and Lightweight Directory Tools」安装即可。
针对特定组的查询,直接用下面的命令:
# 查询组内直接成员的用户数量(不包含嵌套组里的用户) Get-ADGroupMember -Identity "你的目标组名称" | Where-Object {$_.objectClass -eq 'user'} | Measure-Object | Select-Object -ExpandProperty Count
如果你的组里嵌套了其他组,想要统计所有层级的用户(包括嵌套组里的用户),就加-Recursive参数:
Get-ADGroupMember -Identity "你的目标组名称" -Recursive | Where-Object {$_.objectClass -eq 'user'} | Measure-Object | Select-Object -ExpandProperty Count
小提示:
-Identity参数也可以用组的DN(可分辨名称)、SID或者GUID,不一定非要用组名,能避免重名组的问题。
方法2:Active Directory用户和计算机(ADUC)图形界面
如果你更习惯点鼠标操作,这个方法适合你:
- 打开ADUC(可以通过运行
dsa.msc快速启动); - 在左侧导航栏找到目标组所在的OU,右键点击目标组,选择「属性」;
- 切换到「成员」标签页,窗口底部会显示当前组的直接成员数量;
- 如果要统计嵌套组里的所有用户,需要点击「查看」菜单,勾选「高级功能」,然后回到组属性,切换到「成员」标签页,右键点击空白处选择「查看扩展成员」,此时显示的就是所有层级的用户,底部的数量就是总用户数。
方法3:VBScript(适合老系统或批量脚本场景)
如果需要在老Windows系统上运行,或者要写批量脚本,可以用VBScript:
Set objGroup = GetObject("LDAP://CN=你的目标组名称,OU=用户组,DC=domain,DC=com") objGroup.GetInfo arrMembers = objGroup.GetEx("member") WScript.Echo "组内直接用户数量:" & UBound(arrMembers) + 1
注意:这个脚本只能统计直接成员,要处理嵌套组的话需要额外写递归逻辑,相对复杂,一般推荐用PowerShell替代。
这些方法应该能帮你快速拿到想要的用户数量啦,有其他细节问题随时问!
内容的提问来源于stack exchange,提问作者darshan bagrecha
相关产品推荐
相关产品推荐

