如何在 Microsoft Entra 租用戶中使用 BypassDirSyncOverridesEnabled 功能。
本文描述 BypassDirSyncOverridesEnabled 功能,以及如何將 Mobile 和其他Mobile 屬性的同步設定從 Microsoft Entra ID 還原至內部部署 Active Directory。
一般而言,由於使用 Microsoft Entra ID 或 Microsoft Graph PowerShell 模組,同步處理的用戶無法在 Azure 或 Microsoft 365 管理入口網站,或透過 PowerShell 進行變更。 例外狀況是,Microsoft Entra 使用者的屬性稱為 MobilePhone 和 AlternateMobilePhones。 這些屬性分別從內部部署 Active Directory 的 mobile 和 otherMobile 屬性中同步,但使用者可以透過其個人資料頁面,在 Microsoft Entra ID 中更新自己的電話號碼,MobilePhone 屬性。 系統管理員也可以使用 Microsoft Graph PowerShell 模組更新 Microsoft Entra ID 中同步使用者的 MobilePhone 和 AlternateMobilePhones 的值。
讓使用者和系統管理員能夠直接在 Microsoft Entra ID 中更新電話號碼,可讓企業減少管理本機 Active Directory 中使用者電話號碼的系統管理額外負荷,因為這些號碼可以更頻繁地變更。
不過,請注意,當同步使用者的 MobilePhone 或 AlternateMobilePhones 號碼透過管理入口網站或 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 Mobile 和 otherMobile 屬性的值重設為 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 中對 MobilePhone 或 AlternateMobilePhones 所做的任何更改,並始終遵從內部部署 Active Directory 中 Mobile 或 OtherMobile的值。
如果您不希望最終使用者更新他們自己的行動電話號碼,或者不需要系統管理員使用 PowerShell 更新行動電話號碼或替代行動電話號碼,您應該在租戶中保持此功能 BypassDirSyncOverridesEnabled 為啟用狀態。
開啟此功能後,即使終端使用者或系統管理員在 Microsoft Entra ID 中更新 MobilePhone 或 AlternateMobilePhones,從內部部署 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
注意
只有那些 MobilePhone 或 AlternateMobilePhones 在內部部署 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 中更新 MobilePhone 或 AlternateMobilePhones 時,就會建立 DirSyncOverrides,以防止來自內部部署 Active Directory 的任何未來更新影響這些屬性。 從此開始,使用者或系統管理員只能從 Microsoft Entra ID 管理這些屬性,因為來自內部部署 Mobile 或 OtherMobile 的任何新更新將會被忽略。
在 Microsoft Entra ID 和內部部署 Active Directory 中管理行動電話號碼
若要管理使用者的電話號碼,系統管理員可以使用 ADSyncTools 模組 下列一組函式來讀取、寫入和清除Microsoft Entra ID 或內部部署 Active Directory 中的值。
從內部部署 Active Directory 取得 Mobile 和 OtherMobile 屬性:
Get-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -FromAD
從 Microsoft Entra ID 取得 MobilePhone 和 AlternateMobilePhones 屬性:
Get-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -FromAzureAD
在 Microsoft Entra ID 中設定 MobilePhone 和 AlternateMobilePhones 屬性:
Set-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -MobilePhoneInAAD '999888777' -AlternateMobilePhonesInAAD '0987654','1234567'
在內部部署 Active Directory 中設定 Mobile 和 otherMobile 屬性:
Set-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -MobileInAD '999888777' -OtherMobileInAD '0987654','1234567'
清除 Microsoft Entra ID 的 MobilePhone 和 AlternateMobilePhones 屬性:
Clear-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -MobilePhoneInAAD -AlternateMobilePhonesInAAD
清除內部部署 Active Directory 中的 Mobile 和 其他Mobile 屬性:
Clear-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -MobileInAD -OtherMobileInAD