チュートリアル:PowerShell を使用して Microsoft Entra B2B コラボレーション ユーザーを一括で招待する

Microsoft Entra B2B コラボレーションを使用して外部パートナーと協力する場合は、ポータルまたは PowerWhell を使って複数のゲスト ユーザーを組織に同時に招待できます。 このチュートリアルでは、PowerShell を使用して、外部ユーザーに招待状を一括送信する方法について説明します。 具体的には、以下を実行します。

  • ユーザー情報を含むコンマ区切り値 (.csv) ファイルを準備する
  • PowerShell スクリプトを実行して招待状を送信する
  • ユーザーがディレクトリに追加されたことを確認する

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

前提条件

最新の Microsoft Graph PowerShell モジュールをインストールする

必ず最新バージョンの Microsoft Graph PowerShell モジュールをインストールしてください。

最初に、インストールされているモジュールを調べます。 管理者特権で PowerShell を開き (管理者として実行)、次のコマンドを実行します。

Get-InstalledModule Microsoft.Graph

SDK の v1 モジュールを PowerShell Core または Windows PowerShell にインストールするには、次のコマンドを実行します。

Install-Module Microsoft.Graph -Scope CurrentUser

必要に応じて、-Scope パラメーターを使ってインストールのスコープを変更できます。 これには管理者のアクセス許可が必要です。

Install-Module Microsoft.Graph -Scope AllUsers

ベータ モジュールをインストールするには、次のコマンドを実行します。

Install-Module Microsoft.Graph.Beta

信頼されていないリポジトリからモジュールをインストールしていることを示すメッセージが表示される場合があります。 これは、PSGallery リポジトリを信頼されたリポジトリとして事前に設定していない場合に発生します。 Y を押してモジュールをインストールします。

テスト用の電子メール アカウントを取得する

招待状の送信先となる、複数のテスト用の電子メール アカウントが必要です。 このアカウントは、組織外にある必要があります。 gmail.comoutlook.com のアドレスなどのソーシャル アカウントを含む任意の種類のアカウントを使用できます。

CSV ファイルを準備する

Microsoft Excel で、被招待者のユーザー名と電子メール アドレスの一覧を含む CSV ファイルを作成します。 列見出しとして NameInvitedUserEmailAddress を必ず含めてください。

たとえば、次の形式のワークシートを作成します。

Screenshot that shows the csv file columns of Name and InvitedUserEmailAddress.

ファイルを C:\BulkInvite\Invitations.csv として保存します。

Excel をお持ちでない場合は、メモ帳などの任意のテキスト エディターで CSV ファイルを作成できます。 行ごとに値をコンマで区切って入力します。

テナントにサインインする

次のコマンドを実行してテナントに接続します。

Connect-MgGraph -TenantId "<YOUR_TENANT_ID>"

たとえば、Connect-MgGraph -TenantId "11111111-aaaa-2222-bbbb-33333333" のようにします。 テナント ドメインも使用できますが、パラメーターは -TenantId のままです。 たとえば、Connect-MgGraph -TenantId "contoso.onmicrosoft.com" のようにします。

メッセージが表示されたら、資格情報を入力します。

招待状を一括送信する

招待メールを送信するには、次の PowerShell スクリプトを実行します (c:\bulkinvite\invitations.csv は CSV ファイルのパスです)。

$invitations = import-csv c:\bulkinvite\invitations.csv

$messageInfo = New-Object Microsoft.Open.MSGraph.Model.InvitedUserMessageInfo

$messageInfo.customizedMessageBody = "Hello. You are invited to the Contoso organization."

foreach ($email in $invitations)
   {New-MgInvitation `
      -InvitedUserEmailAddress $email.InvitedUserEmailAddress `
      -InvitedUserDisplayName $email.Name `
      -InviteRedirectUrl https://myapps.microsoft.com `
      -InvitedUserMessageInfo $messageInfo `
      -SendInvitationMessage $true
   }

このスクリプトは、invitations.csv ファイル内の電子メール アドレスに招待状を送信します。 次の例のようなユーザーごとの出力が表示されます。

Screenshot that shows PowerShell output that includes pending user acceptance.

ユーザーがディレクトリに存在することを確認する

招待されたユーザーが Microsoft Entra ID に追加されたことを確認するには、次のコマンドを実行します。

 Get-MgUser -Filter "UserType eq 'Guest'"

招待したユーザーが表示されていることを確認します。emailaddress#EXT#@domain 形式のユーザー プリンシパル名 (UPN) になっています。 たとえば、msullivan_fabrikam.com#EXT#@contoso.onmicrosoft.com では、contoso.onmicrosoft.com が招待状を送信した組織になります。

リソースをクリーンアップする

不要になったら、ディレクトリ内のテスト用のユーザー アカウントを削除できます。 ユーザー アカウントを削除するには、次のコマンドを使用します。

 Remove-MgUser -UserId "<String>"

例: Remove-MgUser -UserId "11111111-aaaa-2222-bbbb-33333333"

次のステップ

このチュートリアルでは、組織の外部のゲスト ユーザーに招待状を一括送信しました。 次に、ポータルでゲスト ユーザーを一括招待する方法と、そのユーザーに MFA を適用する方法について説明します。