教程:使用 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 以安装模块。

获取测试电子邮件帐户

需要两个或更多可向其发送邀请的测试电子邮件帐户。 这些帐户必须来自组织外部。

准备 CSV 文件

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

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

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

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

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

登录租户

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

Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId "<YOUR_TENANT_ID>"

例如 Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId "aaaabbbb-0000-cccc-1111-dddd2222eeee"。 也可以使用租户域,但参数仍为 -TenantId。 例如 Connect-MgGraph -Environment China -ClientId 'YOUR_CLIENT_ID' -TenantId "contoso.partner.onmschina.cn"

在系统提示时输入凭据。

批量发送邀请

要发送邀请,请运行以下 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.windowsazure.cn/?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.partner.onmschina.cn,其中 contoso.partner.onmschina.cn 是你从中发送邀请的组织。

清理资源

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

 Remove-MgUser -UserId "<String>"

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

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