如何从 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