Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

使用 PowerShell 和 AD 工具在 Active Directory 中创建批量用户

使用 PowerShell 和 AD 工具在 Active Directory 中创建批量用户

Dec 17, 2024

如今的组织变化非常频繁,员工、承包商以及其他用户不断加入。因此,IT 管理员通常需要在 Active Directory(AD)或 Entra ID(原 Azure AD)中创建用户对象。手动创建单个用户很容易,但为多个用户重复这一过程则既繁琐又耗时。此外,这种方式很容易出错,从而使安全性和工作效率面临风险。

本文将说明如何使用 PowerShell 精简在 AD 中批量创建用户的流程,以及如何使用原生向导在 Entra ID 中批量创建用户。随后,还将提供一种第三方解决方案,使您可以直接在直观的界面中轻松创建 AD 或 Entra ID 用户。


通过 PowerShell 在 Active Directory 中批量创建用户

Microsoft PowerShell 是批量创建 Active Directory 用户的常用选择。你必须安装 ISE PowerShell 模块,并具备在 Active Directory 中创建用户帐户的管理员权限。

请记住,只有具备扎实脚本编写能力的 IT 专业人员才应使用 PowerShell。切勿运行你未充分理解的脚本。

  1. 创建一个包含要创建的用户详细信息的 CSV 文件。该文件必须包含以下字段:SAMAccount、FirstName、LastName、Password 和 OU。你可以根据需要添加更多字段。下面是一个在记事本(Notepad)中显示的 CSV 文件示例:
notepad screenshot

如需更清晰地查看行和列,可以在 Microsoft Excel 中打开该文件:

excel screenshot
  • 创建用户。请从 Windows PowerShell ISE 运行以下 PowerShell 脚本:
      # Import the PowerShell module for running AD cmdlets
Import-Module activedirectory

#Store the data from your CVS file in the $ADUsers variable
$ADUsers = Import-csv C:\BulkUsers.csv

#Read each row of input data and assign each user’s details to variables
foreach ($User in $ADUsers)
{
$Username = $User.name
$Password = $User.password
$Firstname = $User.firstname
$Lastname = $User.lastname
$OU = $User.OU
$email = $User.email
$streetaddress = $User.address
$city = $User.city
$state = $User.state
$country = $User.country
$zipcode = $User.zipcode
$telephone = $User.telephone
$jobtitle = $User.title
$company = $User.company
$department = $User.department

#Check whether the user already exists in the AD 
if (Get-ADUser -F {SamAccountName -eq $Username})
{
#If the user already exists, display a warning 
Write-Warning "A user account with username $Username already exists in Active Directory."
}
else
{
#Otherwise, create the new user account in the specified OU
New-ADUser  SamAccountName $Username  UserPrincipalName "$Username@milkyway.local"  Name “$Firstname $Lastname”  GivenName $Firstname  Surname $Lastname  Enabled $True  DisplayName "$Lastname, $Firstname"  Path $OU  City $city  Company $company  State $state  StreetAddress $streetaddress  OfficePhone $telephone  EmailAddress $email  Title $jobtitle  Department $department  AccountPassword (convertto-securestring $Password -AsPlainText  Force)  ChangePasswordAtLogon $True
}
}
      
  • 验证结果。你可以在 Active Directory Users and Computers (ADUC) 中查看用户对象。

在 Entra ID 中批量创建用户

Entra ID 让你无需编写脚本即可批量创建用户。请按以下步骤操作:

  1. 打开批量创建用户向导。以“用户管理员”或“全局管理员”身份登录到门户。导航到 Users。单击 Bulk operations 选项,然后选择 Bulk create,如下面所示。
users screenshot
  • 创建 CSV 文件  用户信息。 向导将提供一个模板 CSV 文件。将示例行替换为每个要创建的用户对应的一行,并指定所有必需属性以及任何你喜欢的可选属性。保存该文件。
  • 上传该文件。 点击 Upload your File 并选择你创建的文件。系统将开始创建用户。
create users screenshot
  • 查看结果。 你可以从顶部的通知栏中查看成功与失败的结果,以及已创建的用户账户摘要。要查看用户账户,请转到 Users 选项卡。


使用 Netwrix Directory Manager 进行批量用户创建

Netwrix Directory Manager 借助 Synchronize 模块,轻松批量创建用户。只需创建一个新任务,然后按照向导中的步骤操作:

  • 指定数据源和目标  identity store。 支持的数据源包括 CSV 文件以及 Oracle 和 SQL Server 等常用数据库。支持的 identity store 提供程序包括 Active Directory 和 Entra ID,以及通用 LDAP 和 Google Workspace。我们先选择 HR(其中包含一个 CSV 文件)作为源数据提供程序,然后在 NBC 中创建用户,即在 AD identity provider Milkyway 的容器中:
screenshot select your source and destination
  • 选择要创建的对象类型。 在本例中,我们将选择创建用户对象:
screenshot objects fields and maping
  • 映射用户属性 从源到目标。 单击 +添加/编辑字段,选择 创建 单选按钮,并选择要包含在每个正在创建的用户对象中的属性。单击 保存。
screenshot map user attributes
  • 在对话框下半部分中,指定从源到目标的属性映射:
screenshot destination mapfieldields
  • 转换源数据 (可选)。 你可以选择在将源数据用于在目标端创建用户之前,先对其进行处理。例如,你可以将两个源字段的值合并到一个目标字段,或为某个字段分配字符串常量。如果需要,你还可以使用 Visual Basic .NET 编辑器编写转换脚本。
screenshot of scroll destination
  • 设置 任务通知。 为任务通知指定一个或多个电子邮件地址。您还可以指定发送通知的条件。
screenshot notifications
  • 预览并运行任务。 向导会先为您的任务提供预览,并让您可以轻松修改任何不符合需求的内容。确认任务无误后运行它,以批量创建用户,并查看生成的统计结果。
preview job

批量更新用户

有时,管理员需要的是对现有的一组用户对象进行操作,而不是创建新用户。就像手动创建用户一样,手动更新用户也非常耗时且容易出错。为此,Netwrix Directory Manager 允许您将用于创建用户的任务保存为模板;如果之后需要更新这些用户,只需编辑该任务并运行即可。您甚至可以安排任务定期运行,并在任务执行完成后通知您。

申请 Netwrix Directory Manager 免费试用

分享到

了解更多

关于作者

Asset Not Found

Jonathan Blackwell

软件开发负责人

自 2012 年以来,工程师兼创新者 Jonathan Blackwell 一直提供工程领导力,使 Netwrix GroupID 成为 Active Directory 和 Azure AD 环境中群组与用户管理领域的领先者。他在研发、市场与销售方面的经验,使 Jonathan 能够全面理解 Identity 市场以及买家如何思考。