在 Active Directory 中手动创建用户账户是一项耗时且容易出错的任务,尤其是在一次性入职多名员工时。更高效且可靠的方法是直接从结构化的 CSV 文件批量导入用户到 Active Directory。此方法将数小时的任务缩短为几分钟,确保所有新账户的一致性和准确性。本文将探讨如何利用 Import-Csv PowerShell 脚本从 CSV 创建 Active Directory 用户,并比较使用 ADManager Plus —— 一款 Active Directory 管理解决方案 —— 的快速性。
请仔细按照以下步骤运行 Import-Csv PowerShell 脚本以批量导入 Active Directory 用户:
Import-Module ActiveDirectory
$users = Import-Csv-Path$csvPath
您的 CSV 文件应包含这些基本用户创建的必备列。您也可以添加更多列以填充其他 Active Directory 属性。
| 列 | 描述 | 示例 |
|---|---|---|
| 名字 | 用户的名字 | Alex |
| 姓氏 | 用户的姓氏 | Smith |
| SamAccountName | 适用于 Windows 2000 之前系统的登录名 | Alexsmith |
| 密码 | 初始密码 | pass@123! |
| 电子邮件地址 | 电子邮件地址 | alex.smith@company.com |
| 部门 | 部门名称 | IT |
| 职称 | 职位 | 系统管理员 |
| 办公地点 | 办公地点 | 纽约 |
| 电话号码 | 办公电话 | +2-777-0709 |
在处理 Active Directory 时,使用 PowerShell 导入 CSV 文件可以解决各种实际 IT 场景。以下是常见用例及相应的 PowerShell 脚本。
人力资源部门提供了一份最近入职员工的名单。您需要为所有这些用户在 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 中配置用户。
您需要为实习生创建新账户,并自动将他们添加到 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。 |
虽然 PowerShell 帮助管理员执行批量操作,但依赖它进行关键且常规的任务(如批量创建用户)存在重大风险和限制,且常被忽视。
ADManager Plus 是专为解决使用 PowerShell 脚本相关挑战而设计的 Active Directory 管理解决方案,帮助管理员轻松几次点击即可导入用户到 Active Directory。
最常用的方法是使用 Import-Csv PowerShell cmdlet 读取文件中的用户数据,并通过 New-ADUser cmdlet 循环创建每行对应的账户,如上方脚本所示。或者,您也可以使用 ADManager Plus 几次点击即可导入 Active Directory 用户。
按以下步骤查找 OU 路径:
可以。您可以在 CSV 文件中添加更多列,并在脚本的 $userParams 部分将其作为参数添加。例如,若要添加 Department 属性,请在 CSV 文件中添加该标题,并在脚本的 $userParams 部分添加 -Department $user.Department。
可以,此脚本使用 ActiveDirectory 模块,兼容 PowerShell 7,前提是您已安装 RSAT。