使用 PowerShell 创建 Microsoft 365 用户帐户

此文章适用于 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 365 管理中心创建用户帐户

有关其他资源的列表,请参阅 管理用户和组

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

注意

Azure Active Directory 模块将替换为 Microsoft Graph PowerShell SDK。 可以使用 Microsoft Graph PowerShell SDK 访问所有 Microsoft Graph API。 有关详细信息,请参阅 Microsoft Graph PowerShell SDK 入门

首先,使用 Microsoft Entra DC 管理员云应用程序管理员全局管理员帐户连接到 Microsoft 365 租户。 本文中的 cmdlet 需要权限范围 User.ReadWrite.All“List subscribedSkus”图形 API参考页中列出的其他权限之一。 本文中的某些命令可能需要不同的权限范围,在这种情况下,相关部分将对此进行说明。

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

创建单个用户帐户

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

$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 命令中使用参数值的列名称。

  2. 本示例从 文件 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
    
  3. 查看输出文件以查看结果。

另请参阅

使用 PowerShell 管理 Microsoft 365 用户帐户、许可证和组

使用 PowerShell 管理 Microsoft 365

PowerShell for Microsoft 365 入门