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

PowerShell合并AzureAD组成员CSV时为每行添加来源文件名

解决AzureAD组成员CSV合并时添加源文件名的问题

看起来你已经在做多个AzureAD组成员CSV的合并工作了,要给每行加上源文件名的话,用Import-Csv来处理结构化数据会比直接读文本行更可靠,避免表头处理的麻烦。这里给你调整后的完整脚本,直接就能用:

# 设置合并后的输出文件路径
$outputFilePath = "C:\Users\user\Documents\Azure\Intune\management\Combined_Group_Members.csv"

# 遍历目标目录下的所有CSV文件,逐个处理
Get-ChildItem "C:\Users\user\Documents\Azure\Intune\management\*.csv" | ForEach-Object {
    # 导入当前CSV的内容为PowerShell对象
    $groupMembers = Import-Csv -Path $_.FullName
    # 给每一行数据添加SourceFileName属性,值为当前文件的名称(如果要完整路径就用$_.FullName)
    $groupMembers | Add-Member -MemberType NoteProperty -Name "SourceFileName" -Value $_.Name -Force
    # 输出处理好的数据,供后续合并导出
    $groupMembers
} | Export-Csv -Path $outputFilePath -NoTypeInformation -Encoding UTF8

脚本说明:

  • Get-ChildItem:扫描指定目录下所有.csv文件,确保不会漏掉任何目标文件
  • Import-Csv:把CSV转换成可操作的对象,不用手动处理文本拆分和表头重复的问题
  • Add-Member:给每条组成员记录新增一个SourceFileName字段,直接关联它来自哪个原始文件
  • Export-Csv:把所有处理后的记录合并导出,-NoTypeInformation避免生成PowerShell专属的类型注释,-Encoding UTF8保证导出文件在不同系统下的兼容性

如果你的原始CSV都是AzureAD导出的组成员列表,表头应该是统一的(比如DisplayName、UserPrincipalName、ObjectId这些),这个脚本可以直接无缝运行。要是遇到表头不一致的情况,你可以先给Import-Csv加上-Header参数指定统一表头,再进行后续处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:27:08