共用方式為


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

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

一般而言,同步處理的使用者無法從 Azure 或 Microsoft 365 系統管理入口網站進行變更,無論是使用 Microsoft Entra ID 或 Microsoft Graph PowerShell 模組。 例外狀況是名為 MobilePhoneAlternateMobilePhones 的 Microsoft Entra 使用者屬性。 這些屬性會分別從內部部署 Active Directory 屬性 Mobile 和 otherMobile 同步,但使用者可以透過其設定檔頁面在 Microsoft Entra ID 中更新自己的 MobilePhone 屬性。 系統管理員也可以使用 Microsoft Graph PowerShell 模組,更新同步處理的使用者在 Microsoft Entra ID 中的 MobilePhoneAlternateMobilePhones 值。

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

不過,請注意,一旦同步的使用者的 MobilePhoneAlternateMobilePhones 號碼是透過管理入口網站或 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 的 MobileotherMobile 屬性值重設為 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 中對 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 值的物件會被更新。

確認 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 中的 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 中的 MobileotherMobile 屬性:

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

後續步驟

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