PowerShell を使用して Microsoft 365 ユーザー アカウントを作成する

この記事は、Microsoft 365 Enterprise および Office 365 Enterprise の両方に適用されます。

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 日です。
Password
いいえ
パスワードを指定しない場合、ランダムなパスワードがユーザー アカウントに割り当てられ、パスワードはコマンドの結果に表示されます。 パスワードを指定する場合は、小文字、大文字、数字、および記号の ASCII テキスト文字を 8 から 16 文字にする必要があります。
UsageLocation
いいえ
これは有効な ISO 3166-1 alpha-2 国コードです。 たとえば、米国の場合は 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 管理者Cloud Application 管理、またはグローバル管理者アカウントを使用して、Microsoft 365 テナントに接続します。 この記事のコマンドレットには、アクセス許可スコープ User.ReadWrite.All、または参照ページの [サブスクライブ済みSkus の一覧表示] に一覧表示されているその他のアクセス許可のいずれかが必要Graph 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. 出力ファイルで結果を確認します。

関連項目

Microsoft 365 ユーザー アカウント、ライセンス、PowerShell を使用したグループを管理する

PowerShell で Microsoft 365を管理する

Microsoft 365 用 PowerShell の使用を開始する