教程:使用 PowerShell 批量邀请 Microsoft Entra B2B 协作用户

适用于:带白色勾号的绿色圆圈。 员工租户 带灰色 X 号的白色圆圈。 外部租户(了解详细信息

如果使用 Microsoft Entra B2B 协作与外部合作伙伴协作,则可以通过门户或 PowerShell 同时邀请多个来宾用户加入组织。 在本教程中,你将学习如何使用 PowerShell 向外部用户批量发送邀请。 具体操作如下:

  • 准备一个具有用户信息的逗号分隔值 (.csv) 文件
  • 运行 PowerShell 脚本以发送邀请
  • 验证用户是否已添加到目录中

如果没有 Azure 订阅,请在开始之前创建一个免费帐户

先决条件

安装最新的 Microsoft.Graph PowerShell 模块

请确保安装最新版本的 Microsoft Graph PowerShell 模块。

首先检查已安装了哪些模块。 以提升的用户身份打开 PowerShell(以管理员身份运行),并运行以下命令:

Get-InstalledModule Microsoft.Graph

若要在 PowerShell Core 或 Windows PowerShell 中安装 SDK 的 v1 模块,请运行以下命令:

Install-Module Microsoft.Graph -Scope CurrentUser

(可选)使用 -Scope 参数更改安装的范围。 这需要管理员权限。

Install-Module Microsoft.Graph -Scope AllUsers

若要安装 beta 模块,请运行以下命令。

Install-Module Microsoft.Graph.Beta

你可能会收到从不受信任的存储库安装模块的提示。 如果之前未将 PSGallery 存储库设置为受信任的存储库,则可能出现此情况。 按 Y 以安装模块。

获取测试电子邮件帐户

需要两个或多个测试电子邮件帐户才能向其发送邀请。 这些帐户必须来自组织外部。 可使用任意类型的帐户,包括社交帐户,例如 gmail.comoutlook.com 地址。

准备 CSV 文件

在 Microsoft Excel 中,创建包含被邀请者用户名和电子邮件地址列表的 CSV 文件。 请确保包含“Name”和“InvitedUserEmailAddress”列标题 。

例如,按以下格式创建一个工作表:

显示“名称”和“InvitedUserEmailAddress”的 csv 文件列的屏幕截图。

将此文件保存为 C:\BulkInvite\Invitations.csv。

如果没有 Excel,请在任何文本编辑器(如记事本)中创建 CSV 文件。 以逗号分隔每个值,以换行符分隔每一行。

登录租户

运行以下命令以连接到租户:

Connect-MgGraph -TenantId "<YOUR_TENANT_ID>"

例如 Connect-MgGraph -TenantId "aaaabbbb-0000-cccc-1111-dddd2222eeee"。 也可以使用租户域,但参数仍为 -TenantId。 例如 Connect-MgGraph -TenantId "contoso.onmicrosoft.com"

在系统提示时输入凭据。

批量发送邀请

若要发送邀请,请运行以下 PowerShell 脚本(其中 * c:\bulkinvite\invitations.csv 是 CSV 文件的路径):

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

$messageInfo = New-Object Microsoft.Graph.PowerShell.Models.MicrosoftGraphInvitedUserMessageInfo

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

foreach ($email in $invitations) {
	New-MgInvitation ` 
      -InvitedUserEmailAddress $email.InvitedUserEmailAddress `
		-InvitedUserDisplayName $email.Name `
		-InviteRedirectUrl https://myapplications.microsoft.com/?tenantid=aaaabbbb-0000-cccc-1111-dddd2222eeee `
		-InvitedUserMessageInfo $messageInfo `
		-SendInvitationMessage
}

该脚本将邀请发送到 invitations.csv 文件中的电子邮件地址。 对于每个用户,你会看到类似于以下内容的输出:

显示 PowerShell 输出的屏幕截图,其中包括挂起的用户接受。

验证目录中是否存在用户

要验证是否已向 Microsoft Entra ID 添加受邀用户,请运行以下命令:

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

应会看到已列出受邀用户,其中用户主体名称 (UPN) 采用 emailaddress#EXT#@domain 的格式。 例如 msullivan_fabrikam.com#EXT#@contoso.onmicrosoft.com,其中 contoso.onmicrosoft.com 是你从其中发送邀请的组织。

清理资源

目录中不再需要测试用户帐户时,请将其删除。 运行以下命令来删除用户帐户:

 Remove-MgUser -UserId "<String>"

例如:Remove-MgUser -UserId "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"

在本教程中,你向组织外部的来宾用户批量发送了邀请。 接下来,了解如何在门户上批量邀请来宾用户,以及如何为其强制实施 MFA。