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 。 它會顯示類似此圖片的內容:

GetSyncScheduler

如果您在執行此 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

Disable the scheduler

當您進行變更時,別忘了使用 再次 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

停止排程器

如果排程器目前正在執行同步處理週期,您可能需要停止它。 例如,如果您啟動安裝精靈,並收到此錯誤:

Screenshot shows Cannot change configuration error message.

同步處理週期執行時,您無法進行設定變更。 您可以等到排程器完成程式,但您也可以停止它,以便立即進行變更。 停止目前的週期並不有害,而且會隨著下一次執行處理擱置的變更。

  1. 首先,告知排程器使用 PowerShell Cmdlet Stop-ADSyncSyncCycle 停止其目前迴圈。

  2. 如果您使用 1.1.281 之前的組建,則停止排程器並不會停止目前的工作連線or。 若要強制連線或停止,請採取下列動作:

    Screenshot shows Synchronization Service Manager with Connectors selected and a running connector highlighted with the Stop action selected.

    • 從 [開始] 功能表啟動 同步處理服務 。 移至 連線器 ,反白顯示狀態為 [正在執行 ] 的連線or ,然後從 [動作] 中選取 [ 停止 ]。

排程器仍在使用中,並在下一次商機時重新開始。

自訂排程器

本節所述的 Cmdlet 僅適用于組建 1.1.130.0 和更新版本。

如果內建排程器不符合您的需求,您可以使用 PowerShell 排程連線器。

Invoke-ADSyncRunProfile

您可以透過下列方式啟動連線器的設定檔:

Invoke-ADSyncRunProfile -ConnectorName "name of connector" -RunProfileName "name of profile"

您可以在 Synchronization Service Manager UI 中找到要用於 連線或執行設定檔名稱 的名稱

Invoke Run Profile

Cmdlet 是同步的 Invoke-ADSyncRunProfile ,也就是說,在連線or 完成作業之前,它不會傳回控制權,無論是成功還是發生錯誤。

當您排程連線器時,建議依下列順序排程它們:

  1. (完整/三角洲)從內部部署目錄匯入,例如 Active Directory
  2. (完整/三角洲)從 Microsoft Entra 識別碼匯入
  3. (完整/三角洲)從內部部署目錄進行同步處理,例如 Active Directory
  4. (完整/三角洲)來自 Microsoft Entra 識別碼的同步處理
  5. 匯出至 Microsoft Entra 識別碼
  6. 匯出至內部部署目錄,例如 Active Directory

此順序是內建排程器執行連線器的方式。

Get-ADSync連線orRunStatus

您也可以監視同步處理引擎,以查看它是否忙碌或閒置。 如果同步處理引擎閒置且未執行連線or,此 Cmdlet 會傳回空的結果。 如果連線器正在執行,則會傳回連線器的名稱。

Get-ADSyncConnectorRunStatus

Connector Run Status
在上圖中,第一行來自同步處理引擎閒置的狀態。 執行 Microsoft Entra 連線or 時的第二行。

排程器和安裝精靈

如果您啟動安裝精靈,則排程器會暫時暫停。 此行為是因為假設您進行組態變更,而且如果同步處理引擎正在主動執行,則無法套用這些設定。 基於這個理由,請勿讓安裝精靈保持開啟狀態,因為它會停止同步處理引擎執行任何同步處理動作。

下一步

深入瞭解 Microsoft Entra 連線 Sync 設定。

深入瞭解 整合內部部署身分識別與 Microsoft Entra ID