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