You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PowerShell获取AD中pegp开头的用户组及组成员数量

问题原因
  • 循环内输出了两种完全不同类型的对象:第一行输出仅包含name属性的AD组对象,第二行输出纯数字的成员数,PowerShell会将二者识别为两个独立的数组元素,导出CSV时由于对象结构不匹配,就会出现空行、数据错位的问题,无法将组名和对应成员数放在同一行。
  • 存在冗余查询:你已经通过Get-ADGroup拉取到了所有符合条件的组对象并存入$groups变量,不需要在循环内重复调用Get-ADGroup查询同一个组。
修复后的完整代码
# 拉取所有名称以pegp开头的AD组
$groups = Get-ADGroup -Filter "Name -like 'pegp*'"

$Output = foreach ($group in $groups) {
    # 构造统一结构的自定义对象,同时存储组名和成员数
    [PSCustomObject]@{
        组名称     = $group.Name
        成员数量 = (Get-ADGroupMember -Identity $group).Count
    }
}

# 导出CSV,指定编码避免乱码,去掉多余的类型描述行
$Output | Export-Csv -Path C:\temp\file_test.csv -Encoding UTF8 -NoTypeInformation
可选调整说明
  • 如果需要统计嵌套组内的所有成员(包含子组中的用户),可以给Get-ADGroupMember加上-Recursive参数:(Get-ADGroupMember -Identity $group -Recursive).Count
  • 如果只需要统计组内的用户对象(排除组、计算机等其他类型对象),可以用过滤逻辑计算数量:
    成员数量 = (Get-ADGroupMember -Identity $group | Where-Object {$_.ObjectClass -eq 'user'}).Count
    

内容的提问来源于stack exchange,提问作者Tek Sten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 19:27:03