共用方式為


如何在 Microsoft Entra 租用戶中使用 BypassDirSyncOverridesEnabled 功能。

本文描述 BypassDirSyncOverridesEnabled 功能,以及如何將 Mobile 和其他Mobile 屬性的同步設定從 Microsoft Entra ID 還原至內部部署 Active Directory。

一般而言,由於使用 Microsoft Entra ID 或 Microsoft Graph PowerShell 模組,同步處理的用戶無法在 Azure 或 Microsoft 365 管理入口網站,或透過 PowerShell 進行變更。 例外狀況是,Microsoft Entra 使用者的屬性稱為 MobilePhoneAlternateMobilePhones。 這些屬性分別從內部部署 Active Directory 的 mobile 和 otherMobile 屬性中同步,但使用者可以透過其個人資料頁面,在 Microsoft Entra ID 中更新自己的電話號碼,MobilePhone 屬性。 系統管理員也可以使用 Microsoft Graph PowerShell 模組更新 Microsoft Entra ID 中同步使用者的 MobilePhoneAlternateMobilePhones 的值。

讓使用者和系統管理員能夠直接在 Microsoft Entra ID 中更新電話號碼,可讓企業減少管理本機 Active Directory 中使用者電話號碼的系統管理額外負荷,因為這些號碼可以更頻繁地變更。

不過,請注意,當同步使用者的 MobilePhoneAlternateMobilePhones 號碼透過管理入口網站或 PowerShell 更新後,同步處理 API 將不再受理來自內部部署 Active Directory 的屬性更新。 這通常稱為 「DirSyncOverrides」 功能。 系統管理員會在 Active Directory 中更新 Mobile 或其他Mobile 屬性時注意到此行為,即便透過 Microsoft Entra Connect 的引擎成功同步處理,對應的使用者 MobilePhone 或 AlternateMobilePhones 在 Microsoft Entra ID 中不會相應更新。

識別擁有不同Mobile及其他Mobile值的使用者

您可以從 ADSyncTools PowerShell 模組,使用 'Compare-ADSyncToolsDirSyncOverrides',在 Active Directory 與 Microsoft Entra ID 之間導出具有不同 Mobile 和其他Mobile 值的用戶清單。 這可讓您判斷內部部署 Active Directory 與 Microsoft Entra ID 之間不同的使用者和個別值。 請務必了解這一點,因為啟用 BypassDirSyncOverridesEnabled 功能會將 Microsoft Entra ID 中所有不同的值,全部覆寫為來自內部部署 Active Directory 的值。

使用 Compare-ADSyncToolsDirSyncOverrides

您必須執行 Microsoft Entra Connect 第 2 版或更新版本,並使用下列命令從 PowerShell 資源庫安裝最新的 ADSyncTools 模組:

Install-Module ADSyncTools 

若要比較所有同步處理的使用者的行動電話與其他行動電話的值,請執行下列命令:

Compare-ADSyncToolsDirSyncOverrides -Credential $(Get-Credential) 

注意

此功能所使用的目標 API 不會處理驗證用戶互動。 MFA 或條件式原則將會封鎖驗證。 當系統提示您輸入認證時,請使用未啟用 MFA 或未套用任何條件式存取原則的全域管理員帳戶。 作為最後手段,請建立一個沒有 MFA 或條件式存取的暫時全域管理員用戶帳戶,利用 BypassDirSyncOverridees 功能完成所需作業後即可刪除。

此函式會匯出一個 CSV 檔案,列出內部部署 Active Directory 中 Mobile 或 OtherMobile 值與 Microsoft Entra ID 中的 MobilePhone 或 AlternateMobilePhone 不同的用戶。

在此階段,您可以使用此資料,將內部部署 Active Directory MobileotherMobile 屬性的值重設為 Microsoft Entra ID 中存在的值。 如此一來,您就可以從 Microsoft Entra ID 擷取更新的電話號碼,並在內部部署 Active Directory 中保存此數據,再啟用 BypassDirSyncOverridesEnabled 功能。 若要這樣做,請從產生的 CSV 檔案匯入數據,然後使用 'Set-ADSyncToolsDirSyncOverrides'ADSyncTools 模組來保存內部部署 Active Directory 中的值。

例如,若要從 CSV 檔案匯入數據,並擷取指定 UserPrincipalName Microsoft Entra ID 中的值,請使用下列命令:

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

啟用 BypassDirSyncOverridesEnabled 功能

預設情況下,會關閉 BypassDirSyncOverridesEnabled 功能。 啟用 BypassDirSyncOverridesEnabled 可讓您的租用戶略過使用者或系統管理員在 Microsoft Entra ID 中對 MobilePhoneAlternateMobilePhones 所做的任何更改,並始終遵從內部部署 Active Directory 中 MobileOtherMobile的值。

如果您不希望最終使用者更新他們自己的行動電話號碼,或者不需要系統管理員使用 PowerShell 更新行動電話號碼或替代行動電話號碼,您應該在租戶中保持此功能 BypassDirSyncOverridesEnabled 為啟用狀態。

開啟此功能後,即使終端使用者或系統管理員在 Microsoft Entra ID 中更新 MobilePhoneAlternateMobilePhones,從內部部署 Active Directory 同步的值仍會在下一次同步處理週期保持不變。 這表示只有在內部部署 Active Directory 中執行更新,然後同步至 Microsoft Entra ID 時,才會保存這些值的任何更新。

啟用 BypassDirSyncOverridesEnabled 的功能:

若要啟用 BypassDirSyncOverridesEnabled 功能,請使用 Microsoft Graph PowerShell 模組。

$directorySynchronization = Get-MgDirectoryOnPremiseSynchronization
$features = @{BypassDirSyncOverridesEnabled=$true}

Update-MgDirectoryOnPremiseSynchronization -OnPremisesDirectorySynchronizationId $directorySynchronization.Id -Features $features

啟用此功能之後,請使用下列命令,在 Microsoft Entra Connect 中啟動完整同步處理週期:

Start-ADSyncSyncCycle -PolicyType Initial

注意

只有那些 MobilePhoneAlternateMobilePhones 在內部部署 Active Directory 中具有不同值的物件才會被更新。

確認 BypassDirSyncOverridesEnabled 功能的狀態:

(Get-MgDirectoryOnPremiseSynchronization).Features.BypassDirSyncOverridesEnabled

停用 BypassDirSyncOverridesEnabled 功能

如果您想要恢復從入口網站或 PowerShell 更新行動電話號碼的功能,可以使用下列 Microsoft Graph PowerShell 模組命令來停用 BypassDirSyncOverridesEnabled 功能:

$directorySynchronization = Get-MgDirectoryOnPremiseSynchronization
$features = @{BypassDirSyncOverridesEnabled=$false}

Update-MgDirectoryOnPremiseSynchronization -OnPremisesDirectorySynchronizationId $directorySynchronization.Id -Features $features

當此功能關閉時,每當使用者或系統管理員直接在 Microsoft Entra ID 中更新 MobilePhoneAlternateMobilePhones 時,就會建立 DirSyncOverrides,以防止來自內部部署 Active Directory 的任何未來更新影響這些屬性。 從此開始,使用者或系統管理員只能從 Microsoft Entra ID 管理這些屬性,因為來自內部部署 MobileOtherMobile 的任何新更新將會被忽略。

在 Microsoft Entra ID 和內部部署 Active Directory 中管理行動電話號碼

若要管理使用者的電話號碼,系統管理員可以使用 ADSyncTools 模組 下列一組函式來讀取、寫入和清除Microsoft Entra ID 或內部部署 Active Directory 中的值。

從內部部署 Active Directory 取得 MobileOtherMobile 屬性:

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

從 Microsoft Entra ID 取得 MobilePhoneAlternateMobilePhones 屬性:

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

在 Microsoft Entra ID 中設定 MobilePhoneAlternateMobilePhones 屬性:

Set-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -MobilePhoneInAAD '999888777' -AlternateMobilePhonesInAAD '0987654','1234567'

在內部部署 Active Directory 中設定 MobileotherMobile 屬性:

Set-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -MobileInAD '999888777' -OtherMobileInAD '0987654','1234567'

清除 Microsoft Entra ID 的 MobilePhoneAlternateMobilePhones 屬性:

Clear-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -MobilePhoneInAAD -AlternateMobilePhonesInAAD

清除內部部署 Active Directory 中的 Mobile其他Mobile 屬性:

Clear-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -MobileInAD -OtherMobileInAD

後續步驟

深入瞭解 Microsoft Entra Connect:ADSyncTools PowerShell 模組