Microsoft Entra 連線同步處理:排程器
本主題描述 Microsoft Entra 連線 Sync (sync engine) 中的內建排程器。
此功能是在組建 1.1.105.0 中引進的(2016 年 2 月發行)。
概觀
Microsoft Entra 連線同步處理使用排程器在內部部署目錄中發生的變更。 有兩個排程器程式,一個用於密碼同步處理,另一個用於物件/屬性同步和維護工作。 本主題涵蓋後者。
在舊版中,物件和屬性的排程器在同步處理引擎外部。 它使用 Windows 工作排程器或個別的 Windows 服務來觸發同步處理常式。 排程器是與同步處理引擎內建的 1.1 版,並確實允許一些自訂。 新的預設同步處理頻率為 30 分鐘。
排程器負責兩項工作:
- 同步處理週期 。 匯入、同步和匯出變更的程式。
- 維護工作 。 更新密碼重設和裝置註冊服務 (DRS) 的金鑰和憑證。 清除作業記錄檔中的舊專案。
排程器本身一律正在執行,但它可以設定為只執行其中一個或沒有這些工作。 例如,如果您需要有自己的同步處理週期程式,您可以在排程器中停用這項工作,但仍執行維護工作。
重要
根據預設,每隔 30 分鐘就會執行一次同步處理週期。 如果您已修改同步處理週期,則必須確定每 7 天至少執行一次同步處理週期。
- 差異同步必須在上次差異同步的 7 天內發生。
- 差異同步處理(在完整同步處理之後)必須在最後一次完整同步完成後的 7 天內發生。
若無法這麼做,可能會導致同步處理問題,因此您必須執行完整同步處理來解決。 這也適用于預備模式中的伺服器。
排程器設定
若要查看目前的組態設定,請移至 PowerShell 並執行 Get-ADSyncScheduler
。 它會顯示類似此圖片的內容:
如果您在執行此 Cmdlet 時看到 同步命令或 Cmdlet 無法使用 ,則不會載入 PowerShell 模組。 如果您在網域控制站或具有比預設設定更高的 PowerShell 限制層級的伺服器上執行 Microsoft Entra 連線,就可能發生此問題。 如果您看到此錯誤,請執行 Import-Module ADSync
以讓 Cmdlet 可供使用。
- AllowedSyncCycleInterval 。 Microsoft Entra ID 所允許的同步處理週期之間的最短時間間隔。 您無法比此設定更頻繁地同步處理,但仍受到支援。
- 目前EffectiveSyncCycleInterval 。 目前生效的排程。 如果其頻率不高於 AllowedSyncInterval,則其值與 CustomizedSyncInterval 相同。如果已設定,則為 。 如果您在 1.1.281 之前使用組建,並變更 CustomizedSyncCycleInterval,此變更會在下一個同步處理週期之後生效。 從組建 1.1.281,變更會立即生效。
- CustomizedSyncCycleInterval 。 如果您想要排程器以預設 30 分鐘以外的任何其他頻率執行,請設定此設定。 在上圖中,排程器已設定為每小時執行一次。 如果您將此設定設為小於 AllowedSyncInterval 的值,則會使用後者。
- NextSyncCyclePolicyType 。 Delta 或 Initial。 定義下一個執行是否應該只處理差異變更,或下一個執行應該執行完整匯入和同步處理。後者也會重新處理任何新的或變更的規則。
- NextSyncCycleStartTimeInUTC 。 下一次排程器啟動下一個同步處理週期。
- PurgeRunHistoryInterval 。 應該保留時間作業記錄。 您可以在同步處理服務管理員中檢閱這些記錄。 預設值是保留這些記錄 7 天。
- SyncCycleEnabled 。 指出排程器是否在其作業中執行匯入、同步處理和匯出進程。
- MaintenanceEnabled 。 顯示是否已啟用維護程式。 它會更新憑證/金鑰,並清除作業記錄檔。
- StagingModeEnabled 。 顯示是否 已啟用預備模式 。 如果啟用此設定,則會隱藏匯出執行,但仍執行匯入和同步處理。
- SchedulerSuspended 。 在升級期間連線設定,以暫時封鎖排程器執行。
您可以使用 來變更其中一些設定 Set-ADSyncScheduler
。 您可以修改下列參數:
- CustomizedSyncCycleInterval
- NextSyncCyclePolicyType
- PurgeRunHistoryInterval
- SyncCycleEnabled
- MaintenanceEnabled
在舊版 Microsoft Entra 連線 中, isStagingModeEnabled 已在 Set-ADSyncScheduler 中公開。 不支援 設定這個屬性。 屬性 SchedulerSuspended 只能由連線修改。 不支援 直接使用 PowerShell 來設定此專案。
排程器組態會儲存在 Microsoft Entra ID 中。 如果您有預備伺服器,主伺服器上的任何變更也會影響預備伺服器 (IsStagingModeEnabled 除外)。
CustomizedSyncCycleInterval
語法: Set-ADSyncScheduler -CustomizedSyncCycleInterval d.HH:mm:ss
d - 天,HH - 小時,mm - 分鐘,ss - 秒
範例: Set-ADSyncScheduler -CustomizedSyncCycleInterval 03:00:00
將排程器變更為每隔 3 小時執行一次。
範例: Set-ADSyncScheduler -CustomizedSyncCycleInterval 1.0:0:0
變更會將排程器變更為每日執行。
停用排程器
如果您需要進行設定變更,則想要停用排程器。 例如,當您 設定篩選 或 變更同步處理規則 時。
若要停用排程器,請執行 Set-ADSyncScheduler -SyncCycleEnabled $false
。
當您進行變更時,別忘了使用 再次 Set-ADSyncScheduler -SyncCycleEnabled $true
啟用排程器。
啟動排程器
排程器預設每隔 30 分鐘執行一次。 在某些情況下,您可能想要在排程的週期之間執行同步處理週期,或您需要執行不同類型的 。
差異同步處理週期
差異同步處理週期包含下列步驟:
- 所有連線器上的差異匯入
- 所有連線器的差異同步處理
- 在所有連線器上匯出
完整同步處理週期
完整同步處理週期包含下列步驟:
- 所有連線器的完整匯入
- 所有連線器的完整同步處理
- 在所有連線器上匯出
可能是您有必須立即同步處理的緊急變更,這就是為什麼您需要手動執行迴圈的原因。
如果您需要手動執行同步處理週期,請從 PowerShell 執行 Start-ADSyncSyncCycle -PolicyType Delta
。
若要起始完整同步處理週期,請從 PowerShell 提示字元執行 Start-ADSyncSyncCycle -PolicyType Initial
。
執行完整同步處理週期可能非常耗時,請閱讀下一節以瞭解如何優化此程式。
不同組態變更所需的同步步驟
不同的組態變更需要不同的同步步驟,以確保變更已正確套用至所有物件。
- 已新增更多要從來原始目錄匯入的物件或屬性(藉由新增/修改同步處理規則)
- 該來原始目錄的 連線or 需要完整匯入
- 對同步處理規則進行變更
- 變更的同步處理規則需要連線或完整同步處理
- 已變更 篩選 ,因此應該包含不同的物件數目
- 每個 AD 連線or 連線or 都需要完整匯入,除非您根據已匯入同步處理引擎的屬性使用以屬性為基礎的篩選
自訂同步處理週期會執行正確的差異與完整同步步驟混合
若要避免執行完整同步處理週期,您可以使用下列 Cmdlet 來標記特定連線器來執行完整步驟。
Set-ADSyncSchedulerConnectorOverride -Connector <ConnectorGuid> -FullImportRequired $true
Set-ADSyncSchedulerConnectorOverride -Connector <ConnectorGuid> -FullSyncRequired $true
Get-ADSyncSchedulerConnectorOverride -Connector <ConnectorGuid>
範例:如果您已變更連線或 「AD 樹系 A」的同步處理規則,而不需要匯入任何新屬性,您就會執行下列 Cmdlet 來執行差異同步處理週期,這也會針對該連線or 執行完整同步步驟。
Set-ADSyncSchedulerConnectorOverride -ConnectorName “AD Forest A” -FullSyncRequired $true
Start-ADSyncSyncCycle -PolicyType Delta
範例:如果您變更了連線或「AD 樹系 A」的同步處理規則,讓他們現在需要匯入新的屬性,您就會執行下列 Cmdlet 來執行差異同步處理週期,同時執行該連線or 的完整匯入、完整同步步驟。
Set-ADSyncSchedulerConnectorOverride -ConnectorName “AD Forest A” -FullImportRequired $true
Set-ADSyncSchedulerConnectorOverride -ConnectorName “AD Forest A” -FullSyncRequired $true
Start-ADSyncSyncCycle -PolicyType Delta
停止排程器
如果排程器目前正在執行同步處理週期,您可能需要停止它。 例如,如果您啟動安裝精靈,並收到此錯誤:
同步處理週期執行時,您無法進行設定變更。 您可以等到排程器完成程式,但您也可以停止它,以便立即進行變更。 停止目前的週期並不有害,而且會隨著下一次執行處理擱置的變更。
首先,告知排程器使用 PowerShell Cmdlet
Stop-ADSyncSyncCycle
停止其目前迴圈。如果您使用 1.1.281 之前的組建,則停止排程器並不會停止目前的工作連線or。 若要強制連線或停止,請採取下列動作:
- 從 [開始] 功能表啟動 同步處理服務 。 移至 連線器 ,反白顯示狀態為 [正在執行 ] 的連線or ,然後從 [動作] 中選取 [ 停止 ]。
排程器仍在使用中,並在下一次商機時重新開始。
自訂排程器
本節所述的 Cmdlet 僅適用于組建 1.1.130.0 和更新版本。
如果內建排程器不符合您的需求,您可以使用 PowerShell 排程連線器。
Invoke-ADSyncRunProfile
您可以透過下列方式啟動連線器的設定檔:
Invoke-ADSyncRunProfile -ConnectorName "name of connector" -RunProfileName "name of profile"
您可以在 Synchronization Service Manager UI 中找到要用於 連線或執行設定檔名稱 的名稱 。
Cmdlet 是同步的 Invoke-ADSyncRunProfile
,也就是說,在連線or 完成作業之前,它不會傳回控制權,無論是成功還是發生錯誤。
當您排程連線器時,建議依下列順序排程它們:
- (完整/三角洲)從內部部署目錄匯入,例如 Active Directory
- (完整/三角洲)從 Microsoft Entra 識別碼匯入
- (完整/三角洲)從內部部署目錄進行同步處理,例如 Active Directory
- (完整/三角洲)來自 Microsoft Entra 識別碼的同步處理
- 匯出至 Microsoft Entra 識別碼
- 匯出至內部部署目錄,例如 Active Directory
此順序是內建排程器執行連線器的方式。
Get-ADSync連線orRunStatus
您也可以監視同步處理引擎,以查看它是否忙碌或閒置。 如果同步處理引擎閒置且未執行連線or,此 Cmdlet 會傳回空的結果。 如果連線器正在執行,則會傳回連線器的名稱。
Get-ADSyncConnectorRunStatus
在上圖中,第一行來自同步處理引擎閒置的狀態。 執行 Microsoft Entra 連線or 時的第二行。
排程器和安裝精靈
如果您啟動安裝精靈,則排程器會暫時暫停。 此行為是因為假設您進行組態變更,而且如果同步處理引擎正在主動執行,則無法套用這些設定。 基於這個理由,請勿讓安裝精靈保持開啟狀態,因為它會停止同步處理引擎執行任何同步處理動作。
下一步
深入瞭解 Microsoft Entra 連線 Sync 設定。