如何利用PowerShell脚本批量导入企业员工信息并创建域账号

夏枫同学_8332

夏枫同学_8332

2026-05-11

996人浏览

原创

PowerShell批量创建域账号需用CSV提供结构化数据,含DisplayName、SamAccountName、UserPrincipalName、Password、OUPath等字段,脚本导入ActiveDirectory模块,转密码为SecureString,调用New-ADUser并加错误处理。

准备CSV格式的员工信息文件

powershell批量创建域账号依赖结构化数据源,推荐使用csv文件。字段需包含必需信息:姓名(displayname)、登录名(samaccountname)、用户主体名称(userprincipalname,如 user@contoso.com)、密码(password)、所属ou(oupath),还可选填部门、邮箱、电话等扩展属性。

示例CSV内容(注意:首行为标题行,无空格或中文逗号):

DisplayName,SamAccountName,UserPrincipalName,Password,OUPath,Department
张三,zhangsan,zhangsan@contoso.com,P@ssw0rd2024,"OU=IT,OU=Employees,DC=contoso,DC=com",IT
李四,lisi,lisi@contoso.com,P@ssw0rd2024,"OU=HR,OU=Employees,DC=contoso,DC=com",HR

确保OU路径真实存在,可提前用 Get-ADOrganizationalUnit 验证;密码需满足域策略(长度、复杂度),建议统一生成强密码并后续通知用户重置。

编写核心PowerShell脚本

脚本需导入 ActiveDirectory 模块,并逐行读取CSV,调用 New-ADUser 创建账号。关键点包括:
– 密码需转为 SecureString
– 启用账号、设置初始密码不过期(可选)
– 添加错误处理,跳过失败项并记录日志

基础脚本示例(保存为 CreateADUsers.ps1):

# 导入模块
Import-Module ActiveDirectory
<h1>CSV路径</h1><p>$csvPath = "C:\data\employees.csv"</p><div class="aritcle_card flexRow artxards">
											<div class="artcardd flexRow">
												<a class="aritcle_card_img" rel="nofollow" href="/ai/2647" title="GPTPLUS"><img
														src="https://img.php.cn/upload/ai_manual/001/246/273/697dcaf3ac22c985.png" alt="GPTPLUS" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
												<div class="aritcle_card_info flexColumn">
													<a rel="nofollow" href="/ai/2647" title="GPTPLUS" class="overflowclass">GPTPLUS</a>
													<p class="overflowclass">一款AI翻译工具,主要用于GPTPLUS, 由GPT-4和GPT-3.5支持,为您的写作、翻译、代码分析和问答需求提供最准确、有效的AI反馈,适合需要提升相关任务效率的用户。</p>
												</div>
												<a rel="nofollow" href="/ai/2647" title="GPTPLUS" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
												</a>
											</div>
										</div><h1>读取数据</h1><p>Import-Csv $csvPath | ForEach-Object {
$securePass = ConvertTo-SecureString $<em>.Password -AsPlainText -Force
$params = @{
DisplayName = $</em>.DisplayName
SamAccountName = $<em>.SamAccountName
UserPrincipalName = $</em>.UserPrincipalName
AccountPassword = $securePass
Path = $<em>.OUPath
Enabled = $true
ChangePasswordAtLogon = $true  # 强制首次登录改密
Department = $</em>.Department</p><h1>其他属性可按需添加,如: EmailAddress, TelephoneNumber</h1><pre class="brush:php;toolbar:false;">}
try {
    New-ADUser @params
    Write-Host "✅ 已创建 $($_.SamAccountName)" -ForegroundColor Green
} catch {
    Write-Warning "❌ 创建失败 $($_.SamAccountName) : $($_.Exception.Message)"
    Add-Content -Path "C:\data\import_errors.log" -Value "$($_.SamAccountName) : $($_.Exception.Message)"
}

}

执行前必做的权限与环境检查

脚本必须在具备足够权限的环境中运行:

  • 以域管理员或具有“创建用户对象”权限的账户运行 PowerShell(右键 → “以管理员身份运行”)
  • 目标域控制器网络可达,且已安装 RSAT-AD-PowerShell 功能(Windows Server 默认启用;Win10/11需手动添加)
  • 确认当前会话能正常查询AD,测试命令:Get-ADUser -Identity Administrator
  • 首次运行建议加 -WhatIf 参数预览(仅适用于支持该参数的 cmdlet;New-ADUser 不支持,可用 Write-Host 模拟输出代替)

增强实用性的小技巧

让脚本更健壮、易维护:

  • 自动OU判断:根据部门字段动态拼接OU路径,例如 "OU=$($_.Department),OU=Employees,DC=contoso,DC=com",避免CSV中硬编码长路径
  • 密码随机生成:用 [System.Web.Security.Membership]::GeneratePassword(12,2)(需先 Add-Type -AssemblyName System.Web)替代固定密码
  • 批量启用邮箱:若集成Exchange,可在创建后调用 Enable-Mailbox(需Exchange管理Shell)
  • 导出成功清单:将成功创建的账号写入新CSV,便于后续分发或审计

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

980

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3392

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1116

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

989

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

514

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

3116

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5892

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

907

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
尚观shell视频教程
尚观shell视频教程

共8课时 | 1.9万人学习

Linux开发视频教程
Linux开发视频教程

共18课时 | 4.7万人学习

Perl 入门教程
Perl 入门教程

共29课时 | 31.5万人学习