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

求助:导入含姓名列的CSV至Active Directory时列被忽略问题

AD用户导入问题的解决方法

问题根源

  1. 必须加name列的原因:New-ADUser命令的-Name参数是必填项,没有这个值的话命令直接报错。之前没加name列时,PowerShell找不到必填的Name参数值,所以导入失败。
  2. firstname/lastname不生效的原因:你的CSV列名是firstname、lastname,但New-ADUser对应的AD用户属性参数是-GivenName(名)和-Surname(姓),列名和参数名不匹配,PowerShell没法自动把CSV里的这两列映射到AD属性上,所以导入后姓名信息是空的。

解决办法

方法1:手动指定参数映射

直接在ForEach-Object里把CSV列的值对应到New-ADUser的正确参数上,确保每个属性都被正确设置:

Import-Csv .\New-Users.csv | ForEach-Object {
    New-ADUser -Name $_.name `
               -GivenName $_.firstname `
               -Surname $_.lastname `
               -DisplayName $_.Displayname `
               -EmployeeNumber $_.employeenumber `
               -Enabled $True `
               -AccountPassword (ConvertTo-SecureString Pass123456 -AsPlainText -Force)
}

方法2:修改CSV列名匹配AD参数

把CSV里的列名改成和New-ADUser参数一致的名称:

  • firstname → GivenName
  • lastname → Surname
  • 保留name、Displayname、employeenumber(也可以把employeenumber改成EmployeeNumber更规范)

改完后用你原来的命令就能自动映射所有属性:

Import-Csv .\New-Users.csv 
    | New-ADUser -Enabled $True -AccountPassword (ConvertTo-SecureString Pass123456 -AsPlainText -force)

方法3:用计算属性转换列名

如果不想修改CSV,可通过Select-Object添加计算属性,把CSV列名转换成AD参数名后再管道给New-ADUser:

Import-Csv .\New-Users.csv | Select-Object `
    @{Name='Name'; Expression={$_.name}},
    @{Name='GivenName'; Expression={$_.firstname}},
    @{Name='Surname'; Expression={$_.lastname}},
    @{Name='DisplayName'; Expression={$_.Displayname}},
    @{Name='EmployeeNumber'; Expression={$_.employeenumber}} |
    New-ADUser -Enabled $True -AccountPassword (ConvertTo-SecureString Pass123456 -AsPlainText -Force)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 07:05:21