此文章适用于 Microsoft 365 企业版和 Office 365 企业版。

可以使用 Microsoft Graph PowerShell 有效地创建用户帐户,包括多个帐户。

在 PowerShell 中创建用户帐户时,始终需要某些帐户属性。 其他属性不是必需的,但很重要。 请参阅下表。

展开表

属性名称

是否必需?

说明

DisplayName

这是 Microsoft 365 服务中使用的显示名称。 例如 ,Caleb Sills

UserPrincipalName

这是用于登录 Microsoft 365 服务的帐户名称。 例如,CalebS@contoso.onmicrosoft.com

FirstName

LastName

LicenseAssignment

这是许可计划 (也称为 许可证计划或 SKU) ,从中将可用许可证分配给用户帐户。 许可证定义帐户可用的 Microsoft 365 服务。 创建帐户时,无需向用户分配许可证,但该帐户必须具有访问 Microsoft 365 服务的许可证。 创建用户帐户后,您有 30 天的时间可以对该用户帐户授权。

密码

如果您没有指定密码,将向用户帐户分配一个随机密码,且该密码将显示在命令结果中。 如果指定密码,则密码必须是以下类型的 8 到 16 个 ASCII 文本字符:小写字母、大写字母、数字和符号。

UsageLocation

这是一个由两位字母组成的有效 ISO 3166-1 国家/地区代码。 例如,US 用于美国,FR 用于法国。 提供此值非常重要,因为某些 Microsoft 365 服务在某些国家/地区不可用。 除非该帐户配置了此值,否则无法将许可证分配给用户帐户。 有关详细信息,请参阅关于许可证限制

使用 Microsoft Graph PowerShell 创建 Microsoft 365 用户帐户

Azure Active Directory 模块将替换为 Microsoft Graph PowerShell SDK。 可以使用 Microsoft Graph PowerShell SDK 访问所有 Microsoft Graph API。

首先,使用 Microsoft Entra DC 管理员云应用程序管理员全局管理员帐户连接到 Microsoft 365 租户。

Connect-MgGraph -Scopes "User.ReadWrite.All"

创建单个用户帐户

若要创建单个帐户,请使用下面的语法:

"
New-MgUser -DisplayName "" -GivenName "" -Surname "" -UserPrincipalName  -UsageLocation  -MailNickname  -PasswordProfile $PasswordProfile -AccountEnabled $true
" style="box-sizing: inherit; outline-color: inherit; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 1em; direction: ltr; border: 0px; padding: 0px; line-height: 1.3571; display: block; position: relative;">$PasswordProfile = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphPasswordProfile
$PasswordProfile.Password = "<user account password>"
New-MgUser -DisplayName "<display name>" -GivenName "<first name>" -Surname "<last name>" -UserPrincipalName <sign-in name> -UsageLocation <ISO 3166-1 alpha-2 country code> -MailNickname <mailbox name> -PasswordProfile $PasswordProfile -AccountEnabled $true

此示例为美国用户 John Doe 创建一个帐户。

$PasswordProfile = New-Object -TypeName Microsoft.Graph.PowerShell.Models.MicrosoftGraphPasswordProfile
$PasswordProfile.Password = "3Rv0y1q39/chsy"
New-MgUser -DisplayName "John Doe" -GivenName "John" -Surname "Doe" -UserPrincipalName johnd@contoso.onmicrosoft.com -UsageLocation "US" -MailNickname "johnd" -PasswordProfile $PasswordProfile -AccountEnabled $true

创建多个用户帐户

  1. 创建包含所需用户帐户信息的以逗号分隔值 (CSV) 文件。 例如:
UserPrincipalName,FirstName,LastName,DisplayName,UsageLocation,MailNickname
ClaudeL@contoso.onmicrosoft.com,Claude,Loiselle,Claude Loiselle,US,claudel
LynneB@contoso.onmicrosoft.com,Lynne,Baxter,Lynne Baxter,US,lynneb
ShawnM@contoso.onmicrosoft.com,Shawn,Melendez,Shawn Melendez,US,shawnm

CSV 文件第一行中的列名及其顺序是任意的。 但请确保文件其余部分中的数据顺序与列名称的顺序匹配。 并在 PowerShell for Microsoft 365 命令中使用参数值的列名称。

  1. 本示例从 文件 C:\temp\NewAccounts.csv 创建用户帐户,并将结果记录在名为 C:\temp\NewAccountResults.csv的文件中。
# Import the CSV file
$users = Import-Csv -Path "C:\temp\NewAccounts.csv"

# Create a password profile
$PasswordProfile = @{
    Password = 'Password123'
    }

# Loop through each user in the CSV file
foreach ($user in $users) {
    # Create a new user
    $newUser = New-MgUser -DisplayName $user.DisplayName -GivenName $user.FirstName -Surname $user.LastName -UserPrincipalName $user.UserPrincipalName -UsageLocation $user.UsageLocation -MailNickname $user.MailNickname -PasswordProfile $passwordProfile -AccountEnabled

    # Assign a license to the new user
    $e5Sku = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'SPE_E5'
    Set-MgUserLicense -UserId $newUser.Id -AddLicenses @{SkuId = $e5Sku.SkuId} -RemoveLicenses @()
}

# Export the results to a CSV file
$users | Export-Csv -Path "C:\temp\NewAccountResults.csv" -NoTypeInformation

原文:https://learn.microsoft.com/zh-cn/microsoft-365/enterprise/create-user-accounts-with-microsoft-365-powershell?view=o365-worldwide