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

如何修改PowerShell脚本实现AD用户组CSV单用户单行导出

修改PowerShell脚本实现AD用户所属组单行导出

原脚本会为每个用户的每个组生成一行记录,要实现每个用户一行、所有组放在同一单元格(换行分隔),可以按以下方式修改脚本:

修改后的完整脚本

Get-Content "C:\Automation Scripts\users.txt" | Get-ADUser | ForEach-Object {
    $user = $_
    # 获取用户所有所属组的名称,用换行符拼接成单个字符串
    $groupList = (Get-ADPrincipalGroupMembership $user).SamAccountName -join "`r`n"
    # 为每个用户创建唯一的输出对象
    [PSCustomObject]@{
        User  = $user.SamAccountName
        Group = $groupList
    }
} | Export-Csv "C:\Automation Scripts\User_Groups.csv" -NoTypeInformation -Encoding UTF8

关键修改说明

  1. 替换多对象生成为单对象:
    原脚本通过$groups | %{ New-Object ... }为每个组生成一个独立对象,导致一个用户对应多行。现在改为直接将所有组名用-join "rn"拼接成带换行的字符串,每个用户仅生成一个输出对象。
  2. 简化对象创建语法:
    用[PSCustomObject]替代New-Object PSObject,语法更简洁易读,是PowerShell 3.0+推荐的写法。
  3. 添加编码参数(可选但推荐):
    增加-Encoding UTF8参数,避免导出CSV时因编码问题出现乱码,确保换行符在Excel等工具中能正常显示。

执行修改后的脚本后,导出的CSV会符合你要求的格式:每个用户占一行,Group单元格内的所有组以换行分隔。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:45:31