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

使用PowerShell脚本导入CSV用户至Active Directory的问题与解决

解决PowerShell导入CSV至Active Directory的语法错误问题

之前我尝试用PowerShell把CSV里的用户批量导入Active Directory时,踩了语法错误的坑,现在已经解决了,分享一下完整的方案:

我的CSV格式与数据

CSV列是name,surname,ou,具体内容如下:

Steven,Boone,Management
Rodney,Fisher,Sales
Taylor,Bautista,Management
Nathan,Morris,Management

修正后的完整PowerShell代码

# 导入Active Directory模块,操作AD必须先加载这个模块
Import-Module ActiveDirectory

# 读取指定路径的CSV文件
$ADDSUsers = Import-Csv C:\0469697M_gxt.csv

# 循环处理CSV里的每一条用户数据
foreach ($user in $ADDSUsers) {
    # 拼接用户的完整姓名
    $Name = $user.name + " " + $user.surname
    # 从CSV中获取用户所属的OU名称
    $OU = $user.ou
    # 构建完整的OU LDAP路径,这里要替换成你实际的域结构哦
    $OUPath = "OU=$OU,DC=contoso,DC=com"
    
    # 生成SamAccountName(这里用小写的"名.姓"格式,你可以根据需求调整)
    $SamAccountName = ($user.name).ToLower() + "." + ($user.surname).ToLower()
    # 生成用户主体名称,格式要匹配你的域后缀
    $UserPrincipalName = $SamAccountName + "@contoso.com"

    # 创建AD用户,这里补充了创建必需的参数
    New-ADUser `
        -Name $Name `
        -GivenName $user.name `
        -Surname $user.surname `
        -SamAccountName $SamAccountName `
        -UserPrincipalName $UserPrincipalName `
        -Path $OUPath `
        -Enabled $true `
        -AccountPassword (ConvertTo-SecureString "P@ssw0rd123" -AsPlainText -Force)
}

关键注意事项

  • OU路径要准确:$OUPath必须是符合你AD域结构的完整LDAP路径,比如你的域是acme.org,那DC部分就要改成DC=acme,DC=org
  • 必填参数不能少:一开始的代码缺了SamAccountName、AccountPassword这些创建用户必需的参数,补上之后才不会报错
  • 密码安全:示例里用了明文转安全字符串,生产环境千万不要这么做,建议用随机密码生成或者从安全存储读取
  • 权限与模块:运行脚本的账号得有创建AD用户的权限,而且要确保机器上已经安装了ActiveDirectory模块(域控制器默认有,成员服务器需要安装RSAT工具)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:12:51