如何用PowerShell导出AD用户MemberOf字段仅保留CN值?
解决AD用户导出中MemberOf字段截断与组名提取问题
直接用修改后的脚本即可解决你的问题:
Get-ADUser -Filter * -Properties displayname, MemberOf -SearchBase "OU=xxx,OU=xxx,OU=xxx,DC=xx,DC=xx" | Select-Object displayname, @{ Name = 'MemberOf' Expression = { if ($_.MemberOf) { $_.MemberOf | ForEach-Object { [regex]::Match($_, 'CN=([^,]+)').Groups[1].Value } -join ';' } } } | Export-Csv -Path C:\Script\Export.csv -NoTypeInformation -Encoding UTF8
关键修改点说明:
- 精准加载属性:把
Properties *改成Properties displayname, MemberOf,只获取需要的字段,既节省资源又避免冗余数据 - 提取组名:用正则表达式
CN=([^,]+)从LDAP路径里抠出CN后面的组名,自动过滤掉后续的OU/DC信息 - 避免截断:把多个组名用分号
;拼接成单个字符串,彻底解决PowerShell数组输出截断的问题 - 优化CSV输出:加
-NoTypeInformation去掉文件开头的类型注释行,-Encoding UTF8防止中文乱码
内容的提问来源于stack exchange,提问作者Fred
相关产品推荐
相关产品推荐

