如何从 CSV 导入用户到 Active Directory

在 Active Directory 中手动创建用户账户是一项耗时且容易出错的任务,尤其是在一次性入职多名员工时。更高效且可靠的方法是直接从结构化的 CSV 文件批量导入用户到 Active Directory。此方法将数小时的任务缩短为几分钟,确保所有新账户的一致性和准确性。本文将探讨如何利用 Import-Csv PowerShell 脚本从 CSV 创建 Active Directory 用户,并比较使用 ADManager Plus —— 一款 Active Directory 管理解决方案 —— 的快速性。

导入用户到 Active Directory:PowerShell 与 ADManager Plus 对比

Windows PowerShell

请仔细按照以下步骤运行 Import-Csv PowerShell 脚本以批量导入 Active Directory 用户:

  1. 准备 CSV 文件: 创建包含所有用户信息的 CSV 文件。CSV 中的列标题必须对应 Active Directory 用户属性。
  2. 这是 一个示例 CSV 文件。
  3. 安装先决条件: 确保您的计算机已安装远程服务器管理工具 (RSAT) 和 PowerShell 的 ActiveDirectory 模块。
  4. 运行脚本: Open Windows PowerShell as an administrator and execute the following script:
    Import-Module ActiveDirectory
    $users = Import-Csv-Path$csvPath
  5. 在 Active Directory 用户和计算机控制台中验证用户是否存在。
ADManager Plus

使用 ADManager Plus 导入用户:

  1. 准备包含所需属性及对应用户数据的 CSV 文件。
  2. 登录 ADManager Plus 并导航至 管理 > 用户管理 > 用户创建 > 批量创建用户
  3. 点击 导入 按钮,浏览并选择您的 CSV 文件。
  4. 点击 下一步,选择您希望创建用户的容器。
  5. 点击 创建用户

使用 ADManager Plus 中的 最近创建的用户 报告验证用户是否已创建。

CSV 模板及格式要求

您的 CSV 文件应包含这些基本用户创建的必备列。您也可以添加更多列以填充其他 Active Directory 属性。

描述 示例
名字 用户的名字 Alex
姓氏 用户的姓氏 Smith
SamAccountName 适用于 Windows 2000 之前系统的登录名 Alexsmith
密码 初始密码 pass@123!
电子邮件地址 电子邮件地址 alex.smith@company.com
部门 部门名称 IT
职称 职位 系统管理员
办公地点 办公地点 纽约
电话号码 办公电话 +2-777-0709

使用 Import-Csv PowerShell cmdlet 的示例脚本和用例

在处理 Active Directory 时,使用 PowerShell 导入 CSV 文件可以解决各种实际 IT 场景。以下是常见用例及相应的 PowerShell 脚本。

示例 1:将新员工导入 Active Directory

人力资源部门提供了一份最近入职员工的名单。您需要为所有这些用户在 Active Directory 中创建账户,无需手动输入。以下脚本会创建 CSV 文件中列出的所有用户并启用他们的账户。

Import-Module ActiveDirectory
$Users = Import-Csv "C:\newhires.csv"
foreach ($User in $Users) {
New-ADUser `
-SamAccountName $User.SamAccountName `
-GivenName $User.GivenName `
-Surname $User.Surname `
-DisplayName $User.DisplayName `
-UserPrincipalName "$($User.SamAccountName)@example.com" `
-Path $User.OU `
-EmailAddress $User.EmailAddress `
-Department $User.Department `
-Title $User.Title `
-AccountPassword (ConvertTo-SecureString $User.Password -AsPlainText -Force) `
-Enabled $true
}

如何实现自动化: 使用 ADManager Plus,您可以配置计划自动化任务,从指定位置自动获取 CSV 文件并 在 Active Directory 中配置用户

示例 2:导入 Active Directory 用户并将其添加到安全组

您需要为实习生创建新账户,并自动将他们添加到 Interns 安全组。您可以使用以下脚本:

$Users = Import-Csv "C:\interns.csv"
foreach ($User in $Users) {
# Create the user
New-ADUser -SamAccountName $User.SamAccountName -GivenName $User.GivenName `
-Surname $User.Surname -Path $User.OU `
-AccountPassword (ConvertTo-SecureString $User.Password -AsPlainText -Force) -Enabled $true
# Add to group
Add-ADGroupMember -Identity "Interns" -Members $User.SamAccountName
}

如何实现自动化: 使用 ADManager Plus,您只需在 CSV 文件中添加 memberOf 列,或应用 用户配置模板,即可自动将用户添加到 Interns 组。

常用参数

参数 描述
-Path 此参数指定要导入的 CSV 文件路径。您可以指定多个路径。
-LiteralPath 此参数指定 CSV 文件路径,但与 -Path 不同,它不会解析任何字符。如果文件路径包含 PowerShell 可能会特殊解析的字符(如方括号 []),请使用此参数。
-Delimiter 此参数定义文件中分隔值的字符。默认是逗号(,)。如果文件是分号分隔(;)、制表符分隔(\t)或使用其他字符,请使用此参数。
-Header 此参数为列提供自定义标题。如果导入的 CSV 文件没有标题行,此参数非常有用。值将按顺序分配给标题。
-UseCulture 此参数指示 Import-Csv 使用系统当前区域设置中的列表分隔符作为 -Delimiter。

使用 Import-Csv PowerShell cmdlet 导入 Active Directory 用户的限制

虽然 PowerShell 帮助管理员执行批量操作,但依赖它进行关键且常规的任务(如批量创建用户)存在重大风险和限制,且常被忽视。

  • 学习曲线陡峭且复杂: 编写健壮的脚本需要深入理解 cmdlet、错误处理、逻辑和 Active Directory 属性,并非每个 IT 团队成员都是 PowerShell 专家。
  • 极易出错: CSV 文件中的一个小错别字(如错误的 OU 路径)或脚本中的逻辑错误,可能导致数百个用户被创建在错误位置、权限错误或根本未被创建。清理此类错误所花费的时间远超自动化节省的时间。
  • 重大安全风险: 执行用户创建脚本的人通常需要在 Active Directory 中拥有高级权限(如 Domain Admins 组成员)以创建用户对象。这违反了最小权限原则,也使得安全地将任务委派给帮助台人员或初级管理员变得困难。
  • 缺乏审计跟踪: 原生 PowerShell 脚本不会生成清晰且易访问的审计日志。如果发生错误,难以确定是谁运行了脚本、何时运行以及对每个对象执行了哪些具体操作。

选择 ADManager Plus 而非 PowerShell 的优势

ADManager Plus 是专为解决使用 PowerShell 脚本相关挑战而设计的 Active Directory 管理解决方案,帮助管理员轻松几次点击即可导入用户到 Active Directory。

  • 无脚本用户创建 ADManager Plus 提供直观界面,无需编写脚本,消除了脚本错别字和逻辑错误的风险。
  • 安全的任务委派 在 ADManager Plus 中,您可以创建帮助台角色,并授予该角色用户仅使用特定模板执行批量用户创建的权限。这样可以安全地委派任务,而无需给予技术人员在原生 Active Directory 中的提升权限。
  • 全面的审计报告 ADManager Plus 为技术人员提供审计报告,详细记录谁创建了哪些用户、创建时间及设置的属性,帮助组织轻松满足合规标准要求。
  • 更快更高效: 借助用户创建模板等功能,您可以预配置所有必要属性,从组成员资格和 Exchange 策略到 Microsoft 365 许可证。将多步骤脚本过程转变为简单的三次点击任务,几分钟内完成,而非数小时。

使用 ADManager Plus 即刻导入 Active Directory 用户

常见问题解答

最常用的方法是使用 Import-Csv PowerShell cmdlet 读取文件中的用户数据,并通过 New-ADUser cmdlet 循环创建每行对应的账户,如上方脚本所示。或者,您也可以使用 ADManager Plus 几次点击即可导入 Active Directory 用户。

按以下步骤查找 OU 路径:

  • 打开 Active Directory Users and Computers。
  • 右键单击您想创建用户的 OU。
  • 转到 属性,选择 属性编辑器 选项卡。找到 distinguishedName 属性并复制其值。

可以。您可以在 CSV 文件中添加更多列,并在脚本的 $userParams 部分将其作为参数添加。例如,若要添加 Department 属性,请在 CSV 文件中添加该标题,并在脚本的 $userParams 部分添加 -Department $user.Department。

可以,此脚本使用 ActiveDirectory 模块,兼容 PowerShell 7,前提是您已安装 RSAT。

Active Directory管理与报告的一站式解决方案
电子邮件下载链接 Email the ADManager Plus download link