針對使用 Microsoft Entra Connect 同步執行的密碼雜湊同步處理進行疑難排解
本主題提供如何針對密碼雜湊同步處理問題進行疑難排解的步驟。 如果密碼未如預期同步,可能是因部分使用者或所有用戶的密碼造成。
對於 1.1.614.0 版或更新版本的 Microsoft Entra Connect 部署,請使用精靈中的疑難排解工作,針對密碼雜湊同步處理問題進行疑難排解:
如果是未同步任何密碼的問題,請參閱未同步任何密碼:使用疑難排解工作進行疑難排解一節。
如果是個別物件的問題,請參閱一個物件未同步密碼:使用疑難排解工作進行疑難排解一節。
對於部署版本為 1.1.524.0 或更新版本的情況,您可以使用診斷命令來排除密碼雜湊同步問題。
如果是未同步任何密碼的問題,請參閱未同步任何密碼:使用診斷 Cmdlet 進行疑難排解一節。
如果是個別物件的問題,請參閱一個物件未同步密碼:使用診斷 Cmdlet 進行疑難排解一節。
舊版的 Microsoft Entra Connect 部署:
如果是未同步任何密碼的問題,請參閱未同步任何密碼:手動疑難排解步驟一節。
如果是個別物件的問題,請參閱一個物件未同步密碼:手動疑難排解步驟一節。
未同步任何密碼:使用疑難排解工作進行疑難排解
您可以使用疑難排解工作來查明未同步任何密碼的原因。
注意
疑難排解工作僅適用於 Microsoft Entra Connect 1.1.614.0 版或更新版本。
執行疑難排解工作
針對未同步任何密碼的問題進行疑難排解:
使用 [以系統管理員身分執行] 選項,在您的 Microsoft Entra Connect 伺服器上開啟新的 Windows PowerShell 工作階段。
執行
Set-ExecutionPolicy RemoteSigned
或Set-ExecutionPolicy Unrestricted
。啟動 Microsoft Entra Connect 精靈。
流覽至 [其他工作] 頁面,選取 [疑難解答],然後選取 [下一步]。
在 [疑難解答] 頁面上,選取 [啟動],以在 PowerShell 中啟動疑難解答功能表。
在主功能表中,選取 [針對密碼雜湊同步處理進行疑難排解]。
在子功能表中,選取 [密碼雜湊同步處理完全無法運作]。
了解疑難排解工作的結果
疑難排解工作會執行下列檢查:
確認已針對您的 Microsoft Entra 租用戶啟用密碼雜湊同步處理功能。
驗證Microsoft Entra Connect 伺服器不在預備模式中。
針對每個現有的內部部署 Active Directory 連接器 (對應至現有的 Active Directory 樹系):
確認已啟用密碼雜湊同步處理功能。
在「Windows 應用程式事件記錄」中搜尋密碼雜湊同步處理活動訊號事件。
針對內部部署 Active Directory 連接器下的每個 Active Directory 網域:
確認可從 Microsoft Entra Connect 伺服器存取網域。
確認內部部署 Active Directory 連接器所使用的 Active Directory Domain Services (AD DS) 帳戶具有密碼雜湊同步處理所需的正確使用者名稱、密碼及權限。
下圖說明在單一網域、內部部署 Active Directory 拓撲上,執行此 Cmdlet 的結果:
本節的其餘部分說明工作所傳回的特定結果和對應的問題。
密碼雜湊同步處理功能未啟用
如果您尚未使用 Microsoft Entra Connect 精靈來啟用密碼雜湊同步處理,就會傳回下列錯誤:
Microsoft Entra Connect 伺服器處於預備模式
如果 Microsoft Entra Connect 伺服器處於預備模式,就會暫時停用密碼雜湊同步處理,而會傳回下列錯誤:
沒有密碼雜湊同步處理活動訊號事件
每個內部部署 Active Directory 連接器都有自己的密碼雜湊同步處理通道。 當密碼雜湊同步處理通道已建立,而且沒有任何密碼變更需要同步時,在「Windows 應用程式事件記錄檔」下每隔 30 分鐘會產生一次活動訊號事件 (EventId 654)。 對於每個內部部署 Active Directory 連接器,此 Cmdlet 會搜尋過去三小時內對應的活動訊號事件。 如果找不到活動訊號事件,則會傳回下列錯誤:
AD DS 帳戶沒有正確的權限
如果內部部署 Active Directory 連接器用來同步密碼雜湊的 AD DS 帳戶沒有適當的權限,則會傳回下列錯誤:
不正確的 AD DS 帳戶使用者名稱或密碼
如果內部部署 Active Directory 連接器用來同步密碼雜湊的 AD DS 帳戶有不正確的使用者名稱或密碼,則會傳回下列錯誤:
有一個物件未同步密碼:使用疑難排解工具進行檢查
您可以使用疑難解答工作來判斷為何一個物件未同步處理密碼。
注意
疑難排解工作僅適用於 Microsoft Entra Connect 1.1.614.0 版或更新版本。
執行診斷 Cmdlet
若要針對特定使用者物件的問題進行疑難排解:
使用 [以系統管理員身分執行] 選項,在您的 Microsoft Entra Connect 伺服器上開啟新的 Windows PowerShell 工作階段。
執行
Set-ExecutionPolicy RemoteSigned
或Set-ExecutionPolicy Unrestricted
。啟動 Microsoft Entra Connect 精靈。
流覽至 [其他工作] 頁面,選取 [疑難解答],然後選取 [下一步]。
在 [疑難解答] 頁面上,選取 [啟動],以在 PowerShell 中啟動疑難解答功能表。
在主功能表中,選取 [針對密碼雜湊同步處理進行疑難排解]。
在子選單中,選取 密碼未同步至特定使用者帳戶。
了解疑難排解工作的結果
疑難排解工作會執行下列檢查:
在 Active Directory 連接器空間、Metaverse 和 Microsoft Entra 連接器空間中,檢查 Active Directory 物件的狀態。
確認有已啟用密碼雜湊同步處理的同步處理規則,且已套用至 Active Directory 物件。
試著擷取並顯示上次嘗試同步物件密碼的結果。
下圖說明針對單一物件的密碼雜湊同步處理進行疑難排解時,執行此 Cmdlet 的結果:
本節的其餘部分說明 Cmdlet 所傳回的特定結果和對應的問題。
Active Directory 物件未匯出至 Microsoft Entra ID
內部部署的 Active Directory 帳戶的密碼哈希同步失敗,因為 Microsoft Entra 租戶中沒有對應的物件。 系統會傳回下列錯誤:
使用者有暫時密碼
舊版的 Microsoft Entra Connect 不支援使用 Microsoft Entra ID 同步處理暫時密碼。 如果對內部部署 Active Directory 使用者設定 [在下次登入時變更密碼] 選項,密碼就視為暫時。 使用這些過時版本會傳回下列錯誤:
若要啟用暫存密碼的同步處理,您必須安裝 Microsoft Entra Connect 2.0.3.0 版或更高版本,而且必須啟用 ForcePasswordChangeOnLogon
上次嘗試同步密碼沒有結果
根據預設,Microsoft Entra Connect 會將密碼雜湊同步處理嘗試的結果儲存達七天。 如果選取的 Active Directory 物件沒有可用的結果,則會傳回下列警告:
未同步任何密碼:使用診斷 Cmdlet 進行疑難排解
您可以使用 Invoke-ADSyncDiagnostics
Cmdlet 來查明未同步任何密碼的原因。
注意
Invoke-ADSyncDiagnostics
Cmdlet 僅適用於 Microsoft Entra Connect 1.1.524.0 版或更新版本。
執行診斷 Cmdlet
針對未同步任何密碼的問題進行疑難排解:
使用 [以系統管理員身分執行] 選項,在您的 Microsoft Entra Connect 伺服器上開啟新的 Windows PowerShell 工作階段。
執行
Set-ExecutionPolicy RemoteSigned
或Set-ExecutionPolicy Unrestricted
。執行
Import-Module ADSyncDiagnostics
。執行
Invoke-ADSyncDiagnostics -PasswordSync
。
一個對象未同步處理密碼:使用診斷 cmdlet 指令進行故障排除
您可以使用 Invoke-ADSyncDiagnostics
Cmdlet 來判斷為何一個物件未同步處理密碼。
注意
Invoke-ADSyncDiagnostics
Cmdlet 僅適用於 Microsoft Entra Connect 1.1.524.0 版或更新版本。
執行診斷 Cmdlet
針對未同步任何使用者密碼的問題進行疑難排解:
使用 [以系統管理員身分執行] 選項,在您的 Microsoft Entra Connect 伺服器上開啟新的 Windows PowerShell 工作階段。
執行
Set-ExecutionPolicy RemoteSigned
或Set-ExecutionPolicy Unrestricted
。執行
Import-Module ADSyncDiagnostics
。執行下列 Cmdlet:
Invoke-ADSyncDiagnostics -PasswordSync -ADConnectorName <Name-of-AD-Connector> -DistinguishedName <DistinguishedName-of-AD-object>
例如:
Invoke-ADSyncDiagnostics -PasswordSync -ADConnectorName "contoso.com" -DistinguishedName "CN=TestUserCN=Users,DC=contoso,DC=com"
未同步任何密碼:手動疑難排解步驟
請依照下列步驟來判斷未同步任何密碼的原因:
Connect 伺服器是否是處於預備模式? 處於預備模式的伺服器不會同步處理任何密碼。
執行取得密碼同步設定的狀態一節中的指令碼。 它可讓您大致了解密碼同步設定作業。
如果在 Microsoft Entra ID 中未啟用此功能或同步通道狀態未啟用,請執行「連接安裝精靈」。 選取 [自訂同步處理選項] 並取消選取密碼同步。這項變更會暫時停用此功能。 然後再次執行精靈並重新啟用密碼同步處理。再次執行指令碼,確認組態正確無誤。
查看事件記錄中是否有錯誤。 尋找下列事件,這些事件會指出問題所在︰
來源:「目錄同步作業」
識別碼:0、611、652、655如果您看到這些事件,即表示有連線問題。 事件記錄訊息包含發生問題的樹系資訊。
如果您沒有看到任何活動訊號,或任何其他操作都沒有作用,請執行觸發所有密碼的完整同步。 只執行一次指令碼。
請參閱「無法同步密碼的單一物件疑難解答」一節。
連線問題
您是否能夠與 Microsoft Entra ID 連線?
帳戶是否具備可讀取所有網域中密碼雜湊的必要權限? 如果您使用 [快速設定] 來安裝 Connect,權限應該已經正確。
如果您使用自訂安裝,請執行下列動作來手動設定權限:
若要尋找 Active Directory 連接器所使用的帳戶,請啟動 Synchronization Service Manager。
移至 [連接器],然後尋找您要進行疑難排解的內部部署 Active Directory 樹系。
選取連接器,然後選擇 屬性。
前往 [連線至 Active Directory 樹系] 。
記下使用者名稱和帳戶所在的網域。啟動 Active Directory 使用者和電腦工具,然後確認您稍早找到的帳戶具有樹系中所有網域根目錄設定的下列權限:
- 複寫目錄變更
- 複寫目錄變更 (全部)
Microsoft Entra Connect 是否可以連線到網域控制站? 如果 Connect 伺服器無法連線到所有網域控制站,請設定 [只使用慣用的網域控制站]。
返回 Synchronization Service Manager,並設定目錄磁碟分割。
在 選取目錄分割區中的網域,選取 [[僅使用慣用的域控制器] 複選框,然後選取 [設定]。
在清單中,輸入 Connect 應該用來進行密碼同步的網域控制站。此相同清單也用於匯入和匯出。 針對您的所有網域執行這些步驟。
注意
若要套用這些變更,請重新啟動「Microsoft Entra ID 同步」(ADSync) 服務。
- 如果文稿顯示沒有活動訊號,請在 觸發所有密碼的完整同步處理中執行腳本。
有一個物件未同步密碼:手動疑難排解步驟
您可以藉由檢閱物件的狀態,輕鬆地針對密碼雜湊同步處理問題進行疑難排解。
在 Active Directory 使用者和電腦中,搜尋使用者,然後確認已清除 [使用者必須在下次登入時變更密碼] 核取方塊。
如果選取此核取方塊,請要求使用者登入並變更密碼。 暫時密碼不會與 Microsoft Entra ID 同步。
如果 Active Directory 中的密碼看起來正確,請在同步處理引擎中追蹤使用者。 若您追蹤使用者從內部部署 Active Directory 移轉到 Microsoft Entra ID,可查看物件上是否存在描述性錯誤。
a. 啟動 Synchronization Service Manager。
b. 選擇 連線器。
c. 選取使用者所在的 Active Directory 連接器。
d. 選取 [搜尋連接器空間] 。
e. 在 [範圍] 方塊中,選取 [DN 或錨點],然後輸入您要進行疑難排解之使用者的完整 DN。
f. 找出您要尋找的使用者,然後選取 [[屬性] 以查看所有屬性。 如果使用者不在搜尋結果中,請確認您的 篩選規則,並確定您執行 套用並確認變更,讓使用者出現在 Connect 中。
.g 若要檢視過去一周物件的密碼同步詳細資料,請選擇 記錄檔。
如果物件記錄是空的,則表示 Microsoft Entra Connect 無法從 Active Directory 讀取密碼雜湊。 請繼續進行連線錯誤疑難排解。 如果您看到 [成功] 以外的任何其他值,請參考密碼同步記錄中的表格。
h. 選取 [歷程] 索引標籤,並確認至少有一個同步規則的 [PasswordSync] 資料行是 True。 在預設組態中,同步規則的名稱是 In from AD - User AccountEnabled。
i. 選取 [Metaverse 物件屬性] 以顯示使用者屬性清單。
請確認不存在 cloudFiltered 屬性。 確定網域屬性 (domainFQDN 和 domainNetBios) 具有預期的值。
j. 選取 [連接器] 索引標籤。請確認您能看到連接至本機 Active Directory 和 Microsoft Entra ID 的連接器。
k. 選取代表Microsoft Entra ID 的數據列、選取 [屬性],然後選取 [歷程] 索引卷標。連接器空間物件在 PasswordSync 資料行中應有輸出規則設定為 True。 在預設組態中,同步規則的名稱是 Out to Microsoft Entra ID - User Join。
密碼同步記錄
[狀態] 欄可以有下列值︰
狀態 | 名描述 |
---|---|
成功 | 已成功同步處理密碼。 |
FilteredByTarget | 密碼會設為 [使用者必須在下次登入時變更密碼] 。 密碼尚未同步處理。 |
NoTargetConnection | Metaverse 或 Microsoft Entra 連接器空間中沒有任何物件。 |
SourceConnectorNotPresent | 在內部部署 Active Directory 連接器空間中找不到任何物件。 |
TargetNotExportedToDirectory | Microsoft Entra 連接器空間中的物件尚未匯出。 |
MigratedCheckDetailsForMoreInfo | 記錄項目建立於組建 1.0.9125.0 之前,並且以其舊版的狀態顯示。 |
錯誤 | 服務傳回未知的錯誤。 |
未知 | 嘗試處理密碼雜湊的批次時發生錯誤。 |
MissingAttribute | Microsoft Entra Domain Services 所需的特定屬性(例如 Kerberos 哈希)不可用。 |
RetryRequestedByTarget | Microsoft Entra Domain Services 所需的特定屬性(例如 Kerberos 哈希)之前無法取得。 會嘗試重新同步處理使用者的密碼雜湊。 |
協助疑難排解的指令碼
取得密碼同步設定的狀態
Import-Module ADSync
$connectors = Get-ADSyncConnector
$aadConnectors = $connectors | Where-Object {$_.SubType -eq "Windows Azure Active Directory (Microsoft)"}
$adConnectors = $connectors | Where-Object {$_.ConnectorTypeName -eq "AD"}
if ($aadConnectors -ne $null -and $adConnectors -ne $null)
{
if ($aadConnectors.Count -eq 1)
{
$features = Get-ADSyncAADCompanyFeature
Write-Host
Write-Host "Password sync feature enabled in your Azure AD directory: " $features.PasswordHashSync
foreach ($adConnector in $adConnectors)
{
Write-Host
Write-Host "Password sync channel status BEGIN ------------------------------------------------------- "
Write-Host
Get-ADSyncAADPasswordSyncConfiguration -SourceConnector $adConnector.Name
Write-Host
$pingEvents =
Get-EventLog -LogName "Application" -Source "Directory Synchronization" -InstanceId 654 -After (Get-Date).AddHours(-3) |
Where-Object { $_.Message.ToUpperInvariant().Contains($adConnector.Identifier.ToString("D").ToUpperInvariant()) } |
Sort-Object { $_.Time } -Descending
if ($pingEvents -ne $null)
{
Write-Host "Latest heart beat event (within last 3 hours). Time " $pingEvents[0].TimeWritten
}
else
{
Write-Warning "No ping event found within last 3 hours."
}
Write-Host
Write-Host "Password sync channel status END ------------------------------------------------------- "
Write-Host
}
}
else
{
Write-Warning "More than one Azure AD Connectors found. Please update the script to use the appropriate Connector."
}
}
Write-Host
if ($aadConnectors -eq $null)
{
Write-Warning "No Azure AD Connector was found."
}
if ($adConnectors -eq $null)
{
Write-Warning "No AD DS Connector was found."
}
Write-Host
觸發所有密碼的完整同步處理
注意
只執行一次這個指令碼。 如果需要執行多次,則表示問題出在其他地方。 若要針對問題進行疑難排解,請連絡 Microsoft 支援服務。
您可以使用下列指令碼來觸發所有密碼的完整同步︰
$adConnector = "<CASE SENSITIVE AD CONNECTOR NAME>"
$aadConnector = "<CASE SENSITIVE AAD CONNECTOR NAME>"
Import-Module adsync
$c = Get-ADSyncConnector -Name $adConnector
$p = New-Object Microsoft.IdentityManagement.PowerShell.ObjectModel.ConfigurationParameter "Microsoft.Synchronize.ForceFullPasswordSync", String, ConnectorGlobal, $null, $null, $null
$p.Value = 1
$c.GlobalParameters.Remove($p.Name)
$c.GlobalParameters.Add($p)
$c = Add-ADSyncConnector -Connector $c
Set-ADSyncAADPasswordSyncConfiguration -SourceConnector $adConnector -TargetConnector $aadConnector -Enable $false
Set-ADSyncAADPasswordSyncConfiguration -SourceConnector $adConnector -TargetConnector $aadConnector -Enable $true