当外部用户使用其他帐户接受 SharePoint Online 邀请时出错
问题
尝试访问外部共享资源时,会收到以下错误消息之一:
- 访问被拒绝
- 请告诉我们你需要访问此网站的原因。
- 在目录中找不到用户
- 你需要访问此网站的权限。
解决方案
若要解决此问题,请按照下列步骤操作:
- 确定哪个帐户接受了邀请。
- 删除不正确的帐户和正确的帐户。
- 将用户重新邀请到资源。
注意
本文中的许多示例都使用 <contoso> 作为占位符。 在你的方案中,请将 contoso> 替换为<用于组织的域。
确定哪个帐户作为外部用户具有访问权限
如果以不正确的外部用户身份访问站点,请执行以下步骤:
以用于接受邀请的外部用户帐户身份登录。
单击右上角的个人资料图像,然后单击“我的设置”。
在帐户字段中,查看电子邮件地址。 例如, i:0#.f|membership|JonDoe@contoso.com。
注意
本示例中,JonDoe@contoso.com 是接受用户邀请的电子邮件帐户。
如果地址不正确,请转到“删除不正确的外部用户帐户”部分。
如果无法以不正确的外部用户身份访问站点,请执行以下步骤:
作为 SharePoint Online 管理员,登录到与外部用户共享的网站集。
单击 “设置” 菜单的齿轮图标,然后单击“ 网站设置”。
在“用户和权限”部分,单击“人员和组”。
在浏览器窗口中 URL 的末尾,在 URL 的 people.aspx? 部分之后,将 MembershipGroupId=<number> 替换为 MembershipGroupId=0,然后按 Enter。
在用户列表中,找到外部用户的名称。 右键单击用户名,然后复制快捷方式。
在新的浏览器窗口或选项卡中,将上一步中复制的 URL 粘贴到地址框中。 将 &force=1 添加到 URL 末尾,然后按 Enter。
在帐户字段中,查看电子邮件地址。 例如,i:0#.f|membership|JonDoe@contoso.com。
注意
本示例中,JonDoe@contoso.com 是接受用户邀请的电子邮件帐户。
如果地址不正确,请转到“删除不正确的外部用户帐户”部分。
删除不正确的外部用户帐户
外部用户是在网站集的基础上进行管理的。 必须从向其授予帐户访问权限的每个网站集中删除外部用户帐户。 可以从 SharePoint Online 用户界面或通过 SharePoint Online 命令行管理程序执行此操作,具体取决于你的 Microsoft 365 版本。
对于 Microsoft 365 for Business 订阅,请使用 SharePoint Online UI:
浏览到 位于 的https://portal.office.comMicrosoft 365 管理中心。
在 服务设置中,单击“ 管理组织范围的设置”。
单击左侧菜单中 的“网站和文档共享 ”,然后单击“ 删除单个外部用户”。
选择必须删除的外部用户,然后单击“ 删除 ”图标。
所有其他订阅必须按照以下步骤使用 SharePoint Online 命令行管理程序:
注意
此选项不适用于 Office 小型企业 (P) 组织。
下载并安装 SharePoint Online 命令行管理程序。 有关详细信息,请转到 SharePoint Online 命令行管理程序简介。
启动 SharePoint Online 命令行管理程序。
键入以下 cmdlet:
$cred = Get-Credential
在“需要Windows PowerShell凭据”对话框中,键入管理员帐户和密码,然后单击“确定”。
连接到 SharePoint Online,然后键入以下 cmdlet:
Connect-SPOService -Url https://-admin.sharepoint.com -Credential $cred
从每个网站集中删除用户。 键入以下 cmdlet,然后按 Enter:
$ExtUser = Get-SPOExternalUser -filter <account@contoso.com>
注意
在此 cmdlet 中,将 account@contoso.com 替换为受影响的帐户。 然后,若要删除用户,请键入以下 cmdlet,然后按 Enter:
Remove-SPOExternalUser -UniqueIDs @($ExtUser.UniqueId)
以下步骤将删除外部用户访问 SharePoint Online 的功能。 但是,用户仍将出现在任何人员搜索和 SharePoint Online 命令行管理程序 Get-SPOUser cmdlet 中。 若要从 SharePoint Online 中完全删除用户,必须从 UserInfo 列表中删除该用户。 有两种方法。
使用 SharePoint Online UI。 为此,请浏览到用户以前有权访问的每个网站集,然后执行以下步骤:
在网站集,通过将以下字符串添加到 URL 的末尾来编辑 URL:
_layouts/15/people.aspx/membershipGroupId=0
例如,完整 URL 如下所示:
https://<contoso>.sharepoint.com/_layouts/15/people.aspx/membershipGroupId=0
从列表中选择用户。
单击功能区中的“ 删除用户权限 ”。
使用 SharePoint Online 命令行管理程序。 有关如何使用 SharePoint Online 命令行管理程序的详细信息,请转到 SharePoint Online 命令行管理程序简介。
注意
此选项不适用于小型企业版订阅。
启动 SharePoint Online 命令行管理程序。
键入以下 cmdlet:
$cred = Get-Credential
在“需要凭据Windows PowerShell”窗口中,键入管理员帐户和密码,然后单击“确定”。
连接到 SharePoint Online,然后键入以下 cmdlet:
Connect-SPOService -Url https://<contoso>-admin.sharepoint.com -Credential $cred
通过键入以下 cmdlet 从每个网站集中删除用户:
Get-SPOUser -Site https://<contoso>.sharepoint.com | FT –a
请注意返回结果中外部用户的登录名。 作为外部用户,如果它是 Microsoft 帐户,则其前缀可能为 "live.com#"。
键入以下 cmdlet:
Remove-SPOUser -Site https://<contoso>.sharepoint.com -LoginName live.com#jondoe@company.com
注意
将 live.com#jondoe@company.com 替换为方案中的用户。
接下来,必须从 Microsoft Entra ID 中删除帐户:
下载并安装 Azure Active Directory PowerShell 模块及其必备组件。 为此,请转到使用Windows PowerShell管理Microsoft Entra ID。
打开 Azure Active Directory PowerShell 模块,然后运行以下命令:
Connect-MSOLService
在对话框中输入管理员凭据:
Get-MsolUser -ReturnDeletedUsers -UnlicensedUsersOnly | ft -a
找到刚刚删除的外部用户,然后确认他们已列出。
Remove-MsolUser -RemoveFromRecycleBin -UserPrincipalName 'jondoe_contoso.com#EXT#@yourdomaint.onmicrosoft.com'
注意
将 jondoe_contoso.com#EXT#@yourdomain.onmicrosoft.com 替换为方案中的特定用户。
清除浏览器缓存
SharePoint Online 在多种方案中使用浏览器缓存,包括人员选取器。 即使用户已从系统完全删除,该用户仍可能保留在浏览器缓存中。 清除浏览器缓存可解决此问题。 若要为 Internet Explorer 执行此操作,请按照 查看和删除浏览历史记录中提供的步骤操作。
清除缓存时,请确保还选择“Cookie 和网站数据”选项。
重新邀请外部用户
执行这些步骤后,使用所需的电子邮件地址重新邀请外部用户访问网站。 为了确保最终用户使用适当的电子邮件地址接受,最佳做法是复制邀请中的链接,然后将其粘贴到 InPrivate 浏览会话中。 这样做可确保不使用缓存凭据来接受邀请。
更多信息
外部用户邀请不需要由第一次向其发送的电子邮件地址接受。 这是一次性邀请。 如果另一个用户接受邀请,或者如果接受邀请的用户使用发送邀请的电子邮件地址外的帐户进行注册,则可能会遇到拒绝访问邮件。
例如,用户使用 Microsoft 帐户通过浏览器登录,并且用户在用户的电子邮件应用程序中收到用户的外部用户帐户的电子邮件邀请。 然后,用户选择链接以接受邀请。 但是,根据用户的浏览器 Cookie,用户使用不正确的标识意外接受邀请。
当用户使用用户的外部用户帐户登录资源时,用户会收到在目录中未找到该用户的错误。
仍然需要帮助? 请转到 SharePoint 社区。