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

PowerShell导出OU及子OU用户组成员至CSV时组间无逗号问题求助

问题:导出AD用户组成员时组名未用逗号分隔

我正尝试用PowerShell将指定OU(包含子OU)下的所有用户及其组成员身份导出到CSV文件,目前已完成导出,但组名称之间没有添加逗号分隔。

现有代码

$Path = 'C:\Users\myadmin\dl_finder.csv'
Get-ADUser -Filter * -SearchBase 'OU=Routine,OU=Disabled Users,OU=Site Users,DC=nunya,DC=com' -Properties MemberOf |Select-Object SamAccountName, (@{n='memberOf';','e={$_.memberOf -replace '^CN=([^,]+).+$','$1'}}) | Export-Csv -Path $Path –notypeinformation

当前导出结果

"wakko","Group1 Group2 Group3 Group4 Group5 Group6 Group7 Group8"
"yakko","Group1 Group2 Group3 Group4 Group5 Group6 Group7 Group8 Group9 Group10"
"dot","Group1 Group2 Group3 Group4 Group5 Group6"

预期导出结果

"wacko","Group1,Group2,Group3,Group4,Group5,Group6,Group7,Group8"
"yakko","Group1,Group2,Group3,Group4,Group5,Group6,Group7,Group8,Group9,Group10"
"dot","Group1,Group2,Group3,Group4,Group5,Group6"

解决方法

问题出在计算属性的处理逻辑:$_.memberOf -replace返回的是组名数组,Export-Csv默认会用空格拼接数组元素。只需在替换后添加-join ',',把数组转成逗号分隔的字符串即可。

修正后的代码:

$Path = 'C:\Users\myadmin\dl_finder.csv'
Get-ADUser -Filter * -SearchBase 'OU=Routine,OU=Disabled Users,OU=Site Users,DC=nunya,DC=com' -Properties MemberOf |
    Select-Object SamAccountName, @{
        Name = 'memberOf'
        Expression = { ($_.memberOf -replace '^CN=([^,]+).+$','$1') -join ',' }
    } | 
    Export-Csv -Path $Path -NoTypeInformation

说明

  1. 先通过-replace从组的DN中提取纯组名,得到组名数组
  2. 用-join ','将数组元素拼接成单个字符串,元素间用逗号分隔
  3. Export-Csv会直接输出这个字符串,符合预期格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 20:45:08