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

使用PowerShell结合ADUser对象为CSV文件添加SID列

PowerShell解决方案:为CSV添加AD组SID列

这里给你一套完整的PowerShell脚本,能帮你给现有的CSV文件添加AD组的SID列,还考虑了基本的异常处理,避免找不到组的情况导致脚本中断:

# 导入ActiveDirectory模块(确保模块可用,导入失败直接报错提示)
Import-Module ActiveDirectory -ErrorAction Stop

# 替换成你实际的文件路径
$inputCsvPath = ".\original-groups.csv"
$outputCsvPath = ".\groups-with-sid.csv"

# 读取原始CSV数据
$csvRecords = Import-Csv -Path $inputCsvPath

# 遍历每条记录,查询并添加SID字段
$updatedRecords = $csvRecords | ForEach-Object {
    # 根据组名查询AD组,找不到时不抛出错误
    $targetGroup = Get-ADGroup -Filter "Name -eq '$($_.GroupName)'" -Properties SID -ErrorAction SilentlyContinue

    # 构造包含新字段的对象
    [PSCustomObject]@{
        UserName  = $_.UserName
        GroupName = $_.GroupName
        SID       = if ($targetGroup) { $targetGroup.SID.Value } else { "组未找到" }
    }
}

# 导出带SID的新CSV,去掉PowerShell默认的类型信息,用UTF8编码保证兼容性
$updatedRecords | Export-Csv -Path $outputCsvPath -NoTypeInformation -Encoding UTF8

脚本细节说明:

  • 模块导入:-ErrorAction Stop会在ActiveDirectory模块无法导入时直接报错,帮你快速排查权限或模块缺失问题
  • 路径配置:把$inputCsvPath和$outputCsvPath替换成你实际的文件路径就行
  • 异常处理:如果某个组名在AD中找不到,SID列会显示组未找到,你也可以改成空字符串或者其他自定义标记
  • 导出设置:-NoTypeInformation会去掉PowerShell自动添加的类型信息行,-Encoding UTF8确保生成的CSV在不同系统下编码兼容

示例效果验证:

原始CSV内容:

"UserName" , "GroupName"
"t123","G-Q-TAT"
"t124","G-Q-ABC"
"t234","G-Q-ABD"

执行脚本后,输出的CSV会变成:

"UserName","GroupName","SID"
"t123","G-Q-TAT","S-1-5-21-2079806555-1600217444-939750222-15100"
"t124","G-Q-ABC","S-1-5-21-2079806555-1600217444-939750222-15101"
"t234","G-Q-ABD","S-1-5-21-2079806555-1600217444-939750222-15102"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:22:10