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

如何将Active Directory安全组成员数PowerShell脚本输出导出为CSV

导出Active Directory安全组成员数量至CSV文件

要实现将组名和对应成员数导出为CSV(两列分别为组名、成员数量),你需要修改原脚本,让它保留组名与成员数的对应关系,再通过Export-Csv完成导出。以下是优化后的脚本:

基础版脚本

$Groups = Get-Content D:\group1.txt
$outputResults = @()

foreach ($Group in $Groups) {
    # 获取指定组的成员属性
    $ADGroup = Get-ADGroup -Identity $Group -Properties Members
    # 创建包含组名和成员数的自定义对象
    $groupData = [PSCustomObject]@{
        "组名" = $Group
        "成员数量" = $ADGroup.Members.Count
    }
    $outputResults += $groupData
}

# 导出到CSV文件,UTF8编码避免中文乱码,-NoTypeInformation去除冗余类型信息
$outputResults | Export-Csv -Path "D:\AD_Group_Member_Count.csv" -Encoding UTF8 -NoTypeInformation

带错误处理的增强版脚本

如果要处理不存在的组或查询失败的情况,可以添加错误捕获,让结果更完整:

$Groups = Get-Content D:\group1.txt
$outputResults = @()

foreach ($Group in $Groups) {
    try {
        $ADGroup = Get-ADGroup -Identity $Group -Properties Members -ErrorAction Stop
        $groupData = [PSCustomObject]@{
            "组名" = $Group
            "成员数量" = $ADGroup.Members.Count
            "查询状态" = "成功"
        }
    }
    catch {
        $groupData = [PSCustomObject]@{
            "组名" = $Group
            "成员数量" = $null
            "查询状态" = "失败: $($_.Exception.Message)"
        }
    }
    $outputResults += $groupData
}

$outputResults | Export-Csv -Path "D:\AD_Group_Member_Count.csv" -Encoding UTF8 -NoTypeInformation

关键说明

  1. 自定义对象[PSCustomObject]:用来绑定组名和成员数,确保两者对应关系不丢失
  2. 数组收集结果:先将所有组的结果存入数组,最后统一导出,避免多次写入文件提升效率
  3. Export-Csv参数:
    • -Path指定输出文件路径
    • -Encoding UTF8防止中文组名出现乱码
    • -NoTypeInformation去除CSV文件开头的类型注释行,让文件更简洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 22:07:19