共用方式為

如何使用 Microsoft Entra 租户的 BypassDirSyncOverridesEnabled 功能。

本文介绍 BypassDirSyncOverridesEnabled 功能,以及如何还原 Mobile 和 otherMobile 属性从 Microsoft Entra ID 到本地 Active Directory 的同步

无法从 Microsoft Entra ID 或 Microsoft 365 管理门户更改已同步的用户属性,也无法通过任何可用的 PowerShell 模块进行更改。 直到最近,Microsoft Entra 用户的名为 MobilePhone 和 AlternateMobilePhones 的属性才成为例外。 这些属性分别从本地 Active Directory 属性mobileotherMobile 同步,但通常最终用户可以通过他们的配置文件页面在 Microsoft Entra ID 中更新 MobilePhone 属性中的电话号码。 同步用户无法再更改 MobilePhoneAlternateMobilePhones 属性,除非使用 Microsoft Entra Connect。

以前,管理员和同步用户能够更新Microsoft Entra ID 中的 MobilePhoneAlternateMobilePhones 属性的值。 同步用户无法再执行此操作。 当这种情况可能发生时,如果这些属性来自本地 Active Directory,同步 API 不会遵循其更新。 这通常称为“DirSyncOverrides”功能。 在 Active Directory 中的移动其他Mobile属性进行更新后,管理员注意到这些更新并未相应更新 Microsoft Entra ID 中用户的MobilePhoneAlternateMobilePhones,即使通过 Microsoft Entra Connect 引擎成功同步对象。

识别使用不同 Mobile 值的用户

可以使用 ADSyncTools PowerShell 模块中的“Compare-ADSyncToolsDirSyncOverrides”导出 Active Directory 和 Microsoft Entra ID 之间具有不同移动值的用户列表。 这样就可以确定在本地 Active Directory 与 Microsoft Entra ID 之间不同的用户和相应值。 知道这一点很重要,因为启用 BypassDirSyncOverridesEnabled 功能会将 Microsoft Entra ID 中的所有不同值覆盖为本地 Active Directory 中的值。

使用 Compare-ADSyncToolsDirSyncOverrides

作为先决条件,需要运行 Microsoft Entra Connect 版本 2 或更高版本,并使用以下命令从 PowerShell 库安装最新的 ADSyncTools 模块:

Install-Module ADSyncTools 

若要比较所有同步用户的 Mobile 值,请运行以下命令:

Compare-ADSyncToolsDirSyncOverrides

此函数将导出包含用户列表的 CSV 文件,其中本地 Active Directory 中的移动值不同于 Microsoft Entra ID 中的相应 MobilePhone

在此阶段,可以使用此数据将本地 Active Directory 移动 属性的值重置为Microsoft Entra ID 中存在的值。 这样,便可以从 Microsoft Entra ID 捕获更新的电话号码,并在启用 BypassDirSyncOverridesEnabled 功能之前将此数据保存在本地 Active Directory 中。 为此,请从生成的 CSV 文件导入数据,然后使用 ADSyncTools 模块中的“Set-ADSyncToolsDirSyncOverrides”将值保存在本地 Active Directory 中。

例如,若要从 CSV 文件导入数据并在 Microsoft Entra ID 中提取给定 UserPrincipalName 的值,请使用以下命令:

$upn = '<UserPrincipalName>' 
$user = Import-Csv 'ADSyncTools-DirSyncOverrides_yyyyMMMdd-HHmmss.csv' | where UserPrincipalName -eq $upn | select UserPrincipalName,MobileInEntra  
Set-ADSyncToolsDirSyncOverridesUser -Identity $upn -MobileInAD $user.MobileInEntra

启用 BypassDirSyncOverridesEnabled 功能

默认情况下, BypassDirSyncOverridesEnabled 功能处于关闭状态。 启用 BypassDirSyncOverridesEnabled 能让租户绕过用户或管理员先前直接在 Microsoft Entra ID 中对 MobilePhone 或 AlternateMobilePhones 所做的任何更改,并遵循本地 Active Directory 的 Mobile 或 OtherMobile 中的值

启用 BypassDirSyncOverridesEnabled 功能:

若要启用 BypassDirSyncOverridesEnabled 功能,请使用 Microsoft Graph PowerShell 模块。

$directorySynchronization = Get-MgDirectoryOnPremiseSynchronization
$directorySynchronization.Features.BypassDirSyncOverridesEnabled = $true
Update-MgDirectoryOnPremiseSynchronization -OnPremisesDirectorySynchronizationId $directorySynchronization.Id -Features $directorySynchronization.Features

验证 BypassDirSyncOverridesEnabled 功能的状态:

(Get-MgDirectoryOnPremiseSynchronization).Features.BypassDirSyncOverridesEnabled

启用该功能后,使用以下命令在 Microsoft Entra Connect 中启动完整同步周期:

Start-ADSyncSyncCycle -PolicyType Initial

注释

仅将更新具有不同 MobilePhoneAlternateMobilePhones 值的对象(来自本地 Active Directory)。

在 Microsoft Entra ID 和本地 Active Directory 中管理手机号码

若要管理用户的电话号码,管理员可以使用 ADSyncTools 模块中的以下一组函数读取、写入和清除本地 Active Directory 中的值,以及从 Microsoft Entra ID 读取 mobilePhone

从本地 Active Directory 获取 Mobile 属性:

Get-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -FromAD

从 Microsoft Entra ID 获取 MobilePhone 属性:

Get-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -FromEntraID

在本地 Active Directory 中设置 Mobile 属性:

Set-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -MobileInAD '999888777'

清除本地 Active Directory 中的 Mobile 属性

Clear-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com'

后续步骤

详细了解 Microsoft Entra Connect:ADSyncToolsPowerShell 模块