如何使用 Microsoft Entra 租用戶的 BypassDirSyncOverridesEnabled 功能。
本文描述 BypassDirsyncOverridesEnabled 功能,以及如何將 Mobile 和 otherMobile 屬性從 Microsoft Entra ID 同步還原至內部部署的 Active Directory。
一般而言,同步處理的使用者無法從 Azure 或 Microsoft 365 系統管理入口網站進行變更,無論是使用 Microsoft Entra ID 或 Microsoft Graph PowerShell 模組。 例外狀況是名為 MobilePhone 和 AlternateMobilePhones 的 Microsoft Entra 使用者屬性。 這些屬性會分別從內部部署 Active Directory 屬性 Mobile 和 otherMobile 同步,但使用者可以透過其設定檔頁面在 Microsoft Entra ID 中更新自己的 MobilePhone 屬性。 系統管理員也可以使用 Microsoft Graph PowerShell 模組,更新同步處理的使用者在 Microsoft Entra ID 中的 MobilePhone 和 AlternateMobilePhones 值。
讓使用者和管理員能夠直接在 Microsoft Entra ID 中更新電話號碼,讓企業能夠減少在本機 Active Directory 中管理使用者電話號碼的額外系統管理負荷,因為這些變更可能更頻繁。
不過,請注意,一旦同步的使用者的 MobilePhone 或 AlternateMobilePhones 號碼是透過管理入口網站或 PowerShell 更新,當它們源自內部部署 Active Directory 時,同步 API 將不再接受對這些屬性的更新。 這通常稱為 “DirSyncOverrides” 功能。 在 Active Directory 中更新 Mobile 或 otherMobile 屬性時,系統管理員會注意到此行為,請勿據此在 Microsoft Entra ID 中更新對應使用者的 MobilePhone 或 AlternateMobilePhones,即使該物件已成功透過 Microsoft Entra Connect 的引擎進行同步處理。
識別具有不同 Mobile 和 otherMobile 值的使用者
您可以使用 ADSyncTools PowerShell 模組的 ‘Compare-ADSyncToolsDirSyncOverrides’,匯出 Active Directory 與 Microsoft Entra ID 之間具有不同 Mobile 和 otherMobile 值的使用者清單。 這可讓您判斷內部部署的 Active Directory 與 Microsoft Entra ID 之間彼此不同的使用者和個別的值。 這很重要,因為啟用 BypassDirSyncOverridesEnabled 功能會以來自內部部署 Active Directory 的值覆寫 Microsoft Entra ID 中所有不同的值。
使用 Compare-ADSyncToolsDirSyncOverrides
做為必要條件,您必須執行 Microsoft Entra Connect 版本 2 或更新版本,並使用下列命令從 PowerShell 資源庫安裝最新的 ADSyncTools 模組:
Install-Module ADSyncTools
若要比較所有已同步使用者的 Mobile 和 OtherMobile 值,請執行下列命令:
Compare-ADSyncToolsDirSyncOverrides -Credential $(Get-Credential)
注意
此功能所使用的目標 API 不會處理驗證使用者互動。 MFA 或條件式原則將封鎖驗證。 當系統提示您輸入登入資訊時,請使用未啟用 MFA 或套用任何條件式存取原則的全域管理員帳戶。 最後,請建立不含 MFA 或條件式存取的暫時全域管理員使用者帳戶,完成所需的作業之後可使用 BypassDirSyncOverrides 功能來加以刪除。
此函式會導出 CSV 檔案,,並附有一份使用者清單,其中內部部署 Active Directory 中的 Mobile 或 OtherMobile 值與 Microsoft Entra ID 中的個別 MobilePhone 或 AlternateMobilePhones 不同。
在此階段,您可以使用此資料,將內部部署 Active Directory 的 Mobile 和 otherMobile 屬性值重設為 Microsoft Entra ID 中現有的值。 如此一來,您就可以從 Microsoft Entra ID 擷取更新的電話號碼,並在內部部署 Active Directory 中保存此資料,再啟用 BypassDirSyncOverridesEnabled 功能。 若要這樣做,請從產生的 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,*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 值的物件會被更新。
確認 BypassDirSyncOverridesEnabled 功能的狀態:
(Get-MgDirectoryOnPremiseSynchronization).Features.BypassDirSyncOverridesEnabled
停用 BypassDirSyncOverridesEnabled 功能
如果您想要從入口網站或 PowerShell 還原更新行動電話的功能,您可以使用下列 Microsoft Graph PowerShell 模組命令停用 BypassDirSyncOverridesEnabled 功能:
$directorySynchronization = Get-MgDirectoryOnPremiseSynchronization
$features = @{BypassDirSyncOverridesEnabled=$false}
Update-MgDirectoryOnPremiseSynchronization -OnPremisesDirectorySynchronizationId $directorySynchronization.Id -Features $features
當此功能關閉時,每當使用者或管理員直接在 Entra ID 中更新 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 和 otherMobile 屬性:
Clear-ADSyncToolsDirSyncOverridesUser 'User1@Contoso.com' -MobileInAD -OtherMobileInAD