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

如何在Active Directory中先创建指定OU再批量导入用户

批量创建AD用户并前置创建指定OU的脚本修改

你可以在现有脚本前添加OU存在性检查与创建逻辑,确保目标OU存在后再批量创建用户,完整脚本如下:

# 定义目标OU的完整路径
$OU = "OU=User,OU=Office,DC=Company,DC=com"
# 拆分出父OU路径(用于检查/创建时定位)
$parentOU = $OU -replace "^OU=[^,]+,", ""

# 检查目标OU是否已存在
if (-not (Get-ADOrganizationalUnit -Filter "Name -eq 'User'" -SearchBase $parentOU -SearchScope OneLevel -ErrorAction SilentlyContinue)) {
    # 若不存在则创建OU,可根据需求调整ProtectedFromAccidentalDeletion参数(默认true)
    New-ADOrganizationalUnit -Name "User" -Path $parentOU -ProtectedFromAccidentalDeletion $false
    Write-Host "已成功创建OU: $OU"
} else {
    Write-Host "OU $OU 已存在,跳过创建步骤"
}

# 原有的用户批量创建逻辑
$Import = Import-CSV ".\users.csv" -Delimiter ";"
$Password = ConvertTo-SecureString "Initpass" -AsPlainText -Force

foreach ($user in $Import) {
    New-ADUser -Name $user.SamAccountName -GivenName $user.GivenName -Surname $user.Surname `
        -Path $OU -AccountPassword $Password -ChangePasswordAtLogon $True -Enabled $True `
        -UserPrincipalName $user.UserPrincipalName
    Write-Host "已创建用户: $($user.SamAccountName)"
}

关键说明:

  • OU存在性检查:通过Get-ADOrganizationalUnit精准定位父OU下的目标OU,避免递归搜索带来的性能问题;-ErrorAction SilentlyContinue用于抑制OU不存在时的错误提示。
  • OU创建参数:-ProtectedFromAccidentalDeletion设置为$false是为了方便后续管理(若需防止误删可改为$true),可根据实际需求调整。
  • 用户创建逻辑:保留原有代码的-Path $OU参数,确保所有新建用户自动放入预先创建的OU中。

注意事项:

  • 运行脚本的账号需具备创建OU和AD用户的权限;
  • 确保CSV文件的列名(SamAccountName、GivenName等)与脚本中引用的字段完全匹配;
  • 硬编码初始密码存在安全风险,建议改用交互式输入(如Read-Host -AsSecureString)或从安全存储中读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 19:55:07