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

请求编写PowerShell脚本导出多安全组成员至单CSV并解决数量限制

导出多个AD安全组成员到单个CSV并突破数量限制

完整PowerShell脚本

以下脚本可批量导出指定AD安全组的成员到单个CSV文件,包含UserName、UserID、Sec Group三列:

# 导入ActiveDirectory模块(需先安装RSAT-AD组件)
Import-Module ActiveDirectory

# 替换成你需要导出的安全组名称/DN/SID列表
$securityGroups = "Sales Team", "HR Department", "IT Admins"

# 初始化存储结果的数组
$exportResults = @()

foreach ($group in $securityGroups) {
    try {
        # 先获取组对象,确认组存在并拿到组名
        $adGroup = Get-ADGroup -Identity $group -ErrorAction Stop
        
        # 获取组成员:-ResultSetSize $null 突破默认1000条限制;加-Recursive可获取嵌套组成员(按需开启)
        $groupMembers = Get-ADGroupMember -Identity $adGroup -ResultSetSize $null -ErrorAction Stop # -Recursive
        
        foreach ($member in $groupMembers) {
            # 只处理用户类型的成员(排除组、计算机等)
            if ($member.ObjectClass -eq "user") {
                $adUser = Get-ADUser -Identity $member -Properties Name, SamAccountName -ErrorAction SilentlyContinue
                
                if ($adUser) {
                    # 构造结果对象
                    $resultObj = [PSCustomObject]@{
                        "UserName"  = $adUser.Name
                        "UserID"    = $adUser.SamAccountName
                        "Sec Group" = $adGroup.Name
                    }
                    
                    $exportResults += $resultObj
                }
            }
        }
        Write-Host "已完成组: $($adGroup.Name)"
    }
    catch {
        Write-Warning "处理组 $group 时出错: $_"
    }
}

# 导出到CSV(替换成你要保存的路径)
$exportResults | Export-Csv -Path "C:\AD_Group_Members.csv" -NoTypeInformation -Encoding UTF8

突破导出数量限制的方法

PowerShell的AD模块cmdlet(如Get-ADGroupMember、Get-ADUser)默认只返回1000条结果,解决方法如下:

  • 取消结果集大小限制:在调用AD cmdlet时添加 -ResultSetSize $null 参数,这会让命令返回所有匹配的对象,而非仅前1000条。
  • LDAP查询兜底:如果上述方法仍有问题,直接用LDAP过滤器查询成员,示例:
# 获取目标组的DN
$groupDN = (Get-ADGroup "Sales Team").DistinguishedName
# 用LDAP过滤器查询所有属于该组的用户
Get-ADUser -LDAPFilter "(memberOf=$groupDN)" -ResultSetSize $null -Properties Name, SamAccountName
  • 嵌套组成员处理:如果需要导出嵌套在组内的子组成员,在Get-ADGroupMember后添加 -Recursive 参数即可。

注意事项

  • 运行脚本需要拥有读取AD用户和组信息的权限;
  • 客户端系统需手动安装RSAT-AD-PowerShell组件(Windows Server默认自带);
  • CSV保存路径需确保当前用户有写入权限,使用-Encoding UTF8可避免中文乱码。

内容的提问来源于stack exchange,提问作者christian rondon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 11:26:20