KDB

We share knowledge and experiences with our clients. In order that they can save more time
focusing on their main business. We make IT simple!

将访客用户显示在全局地址列表(GAL)中

发布日期: 2020/07/17

首先需要明确:什么是 Guest Users(访客用户)?
当你为外部用户开启对 SharePoint 网站的外部访问权限时,这些外部用户就会自动成为组织中的 Guest Users(访客用户)

 

默认情况下,Guest Users 会被隐藏在 GAL(全局地址列表)中。
目前微软尚未提供一个直接、简单的方式让这些 Guest Users 在 GAL 中显示出来。如果你正准备进行账号创建和权限配置,我会建议你先删除已有的访客用户,先将他们作为联系人(Contacts)创建,然后再向他们发送 SharePoint 的访问邀请,这样操作会更顺畅、也更容易管理。

 

如果用户已经开始访问你的 SharePoint 站点,重新创建账号可能会导致他们无法继续访问。
因此,在这种情况下,使用 PowerShell 来让现有的访问用户在 GAL 中可见,会是更稳妥、也更高效的方法。

让我们开始吧!

我的电脑运行的是 Windows 10 系统。

1. 以管理员权限运行 PowerShell

KDB-GAL-install PowerShell

2. 在连接 AzureAD 之前,先通过 Install-Module -Name AzureAD 安装 AzureAD 模块

KDB-GAL-install module

3. 在 PowerShell 中连接到 Azure AD

KDB-GAL-connect-AzureAD

4. 在 PowerShell 中连接到 Exchange Online

$UserCredential = Get-Credential

KDB-GAL-Get-Credential

Windows PowerShell 凭据请求对话框  (Credential Request) ,输入你的工作账号和密码,然后点击“确定 OK”。

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
KDB-GAL-New-PSSession

Once connected, enter the following cmdlet to verify.

KDB-GAL-Get-PSSession

5. 在 GAL(全局地址列表)中显示 Guest Users(访客用户)

现在会话已经可用,但当我尝试运行 Get-User 命令时,总是出现以下错误信息。

KDB-GAL-Error-Message

接下来,请执行以下命令,将 Exchange Online 命令导入本地 Windows PowerShell 会话。

KDB-GAL-Import-PSSession

完成此步骤后,Exchange Online 的 cmdlet 会被导入到本地的 Windows PowerShell 会话中,并通过进度条进行跟踪。
如果没有收到任何错误提示,说明你已经成功连接到 Exchange Online。此时,你可以运行 Exchange Online指令,例如Get-User,并查看返回结果。

连接成功后,我们将使用 Get-User 命令。
这个 Exchange 命令 用于识别可用的目录用户,就像在本地 Exchange 中一样。这里,我们将搜索特定的收件人类型(Recipient Type),本例中为 GuestMailUser(访客邮件用户)

Get-User -RecipientTypeDetails GuestMailUser

KDB-GAL-Get-User

“GuestMailUser” 收件人类型表明该用户确实已启用邮箱(因为它具有邮箱地址)。
最后一步,就是将其从地址簿中显示出来。

使用以下命令,让 Guest User(访客用户)在地址簿中可见:

Get-User -RecipientTypeDetails GuestMailUser | Set-MailUser -HiddenFromAddressListsEnabled $false
KDB-GAL-guest-visible

现在,你可以打开 Outlook 的全局地址列表(在线地址簿)查看这些 访客用户。
你也可以通过 Office 365 在线访问来检查:进入人员 > 目录,即可看到这些访客用户。

6. 断开当前的 PowerShell 会话

操作完成后,请务必断开远程 PowerShell 会话。
如果在没有断开会话的情况下直接关闭 Windows PowerShell 窗口,可能会占用你所有可用的远程 PowerShell 会话,届时需要等待会话过期才能继续使用。
要断开远程 PowerShell 会话,请运行以下命令:

Remove-PSSession $Session
KDB-GAL-disconnect-Azure

参考文献列表:

https://www.undocumented-features.com/2018/06/15/mail-enabling-guest-users-or-how-i-made-everyone-show-up-in-the-address-book/

https://docs.microsoft.com/en-us/schooldatasync/hide-office-365-groups-from-the-gal

https://docs.microsoft.com/en-us/powershell/exchange/exchange-online/connect-to-exchange-online-powershell/connect-to-exchange-online-powershell?view=exchange-ps

在现代企业 IT 运营中,身份管理、访问控制安全以及高效运维对于保障业务稳定至关重要。作为专业的 IT 服务提供商,Sinokap 拥有 ISO27001 信息安全管理体系认证,致力于提供安全、智能且高效的 IT 解决方案,帮助企业提升 IT 运营效率

EN