針對使用 Microsoft Entra Connect 同步執行的密碼雜湊同步處理進行疑難排解
本主題提供如何針對密碼雜湊同步處理問題進行疑難排解的步驟。 如果密碼未如預期般同步處理,可能是使用者子集或所有使用者。
針對具有 1.1.614.0 版或更新版本的 Microsoft Entra 連線部署,請使用精靈中的疑難排解工作,針對密碼雜湊同步處理問題進行疑難排解:
如果您有未同步密碼的問題,請參閱 未同步處理密碼:使用疑難排解工作 一節進行疑難排解。
如果您有個別物件的問題,請參閱 One 物件未同步處理密碼:使用疑難排解工作 一節進行疑難排解。
針對 1.1.524.0 版或更新版本的部署,有一個診斷 Cmdlet 可用來針對密碼雜湊同步處理問題進行疑難排解:
如果您有未同步密碼的問題,請參閱 未同步處理密碼:使用診斷 Cmdlet 進行疑難排解一節。
如果您有個別物件的問題,請參閱 One 物件未同步處理密碼:使用診斷 Cmdlet 一節進行疑難排解。
針對舊版的 Microsoft Entra 連線部署:
如果您有未同步密碼的問題,請參閱 未同步處理密碼:手動疑難排解步驟 一節。
如果您有個別物件的問題,請參閱 One 物件未同步處理密碼:手動疑難排解步驟 一節。
未同步密碼:使用疑難排解工作進行疑難排解
您可以使用疑難排解工作來找出沒有同步處理密碼的原因。
注意
疑難排解工作僅適用于 Microsoft Entra 連線 1.1.614.0 版或更新版本。
執行疑難排解工作
針對未同步任何密碼的問題進行疑難排解:
使用 [ 以管理員istrator 執行] 選項,在您的 Microsoft Entra 連線 伺服器上開啟新的 Windows PowerShell 會話。
執行
Set-ExecutionPolicy RemoteSigned
或Set-ExecutionPolicy Unrestricted
。啟動 Microsoft Entra Connect 精靈。
流覽至 [ 其他工作] 頁面,選取 [疑難排解 ],然後按 [下一步 ]。
在 [疑難排解] 頁面上,按一下 [啟動 ] 以在 PowerShell 中啟動疑難排解功能表。
在主功能表中,選取 [針對密碼雜湊同步處理 進行疑難排解]。
在子功能表中,選取 [密碼雜湊同步處理完全 無法運作]。
瞭解疑難排解工作的結果
疑難排解工作會執行下列檢查:
驗證是否已為您的 Microsoft Entra 租使用者啟用密碼雜湊同步處理功能。
驗證 Microsoft Entra 連線 伺服器不在預備模式中。
針對每個現有的內部部署的 Active Directory連接器(對應至現有的 Active Directory 樹系):
驗證是否已啟用密碼雜湊同步處理功能。
在 Windows 應用程式事件記錄檔中搜尋密碼雜湊同步處理活動訊號事件。
針對內部部署的 Active Directory連接器下的每個 Active Directory 網域:
驗證網域是否可從 Microsoft Entra 連線 伺服器連線。
驗證內部部署的 Active Directory連接器所使用的Active Directory 網域服務 (AD DS) 帳戶具有密碼雜湊同步處理所需的正確使用者名稱、密碼和許可權。
下圖說明單一網域的 Cmdlet 結果,內部部署的 Active Directory拓撲:
本節的其餘部分說明工作和對應問題所傳回的特定結果。
未啟用密碼雜湊同步處理功能
如果您尚未使用 Microsoft Entra 連線 精靈啟用密碼雜湊同步處理,則會傳回下列錯誤:
Microsoft Entra 連線伺服器處於預備模式
如果 Microsoft Entra 連線伺服器處於預備模式,則暫時停用密碼雜湊同步處理,並傳回下列錯誤:
沒有密碼雜湊同步處理活動訊號事件
每個內部部署的 Active Directory連接器都有自己的密碼雜湊同步處理通道。 建立密碼雜湊同步處理通道且沒有任何要同步處理的密碼變更時,會在 Windows 應用程式事件記錄檔下每隔 30 分鐘產生一次活動訊號事件(EventId 654)。 針對每個內部部署的 Active Directory連接器,Cmdlet 會在過去三小時內搜尋對應的活動訊號事件。 如果找不到活動訊號事件,則會傳回下列錯誤:
AD DS 帳戶沒有正確的許可權
如果內部部署的 Active Directory連接器用來同步處理密碼雜湊的 AD DS 帳戶沒有適當的許可權,則會傳回下列錯誤:
不正確的 AD DS 帳戶使用者名稱或密碼
如果內部部署的 Active Directory連接器用來同步處理密碼雜湊的 AD DS 帳戶的使用者名稱或密碼不正確,則會傳回下列錯誤:
一個物件未同步處理密碼:使用疑難排解工作進行疑難排解
您可以使用疑難排解工作來判斷為何某個物件未同步處理密碼。
注意
疑難排解工作僅適用于 Microsoft Entra 連線 1.1.614.0 版或更新版本。
執行診斷 Cmdlet
若要針對特定使用者物件的問題進行疑難排解:
使用 [ 以管理員istrator 執行] 選項,在您的 Microsoft Entra 連線 伺服器上開啟新的 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 連線不支援同步處理暫存密碼與 Microsoft Entra ID。 如果在 內部部署的 Active Directory使用者上設定 [下次登入 時變更密碼] 選項,則密碼會被視為暫時的。 下列錯誤會傳回這些舊版:
若要啟用暫時密碼同步處理,您必須安裝 Microsoft Entra 連線 2.0.3.0 版或更高版本,且必須啟用 ForcePasswordChangeOnLogon 功能 。
無法取得上次同步處理密碼嘗試的結果
根據預設,Microsoft Entra 連線會儲存密碼雜湊同步處理嘗試的結果七天。 如果選取的 Active Directory 物件沒有可用的結果,則會傳回下列警告:
未同步任何密碼:使用診斷 Cmdlet 進行疑難排解
您可以使用 Invoke-ADSyncDiagnostics
Cmdlet 來找出沒有同步處理密碼的原因。
注意
Cmdlet Invoke-ADSyncDiagnostics
僅適用于 Microsoft Entra 連線 1.1.524.0 版或更新版本。
執行診斷 Cmdlet
針對未同步任何密碼的問題進行疑難排解:
使用 [ 以管理員istrator 執行] 選項,在您的 Microsoft Entra 連線 伺服器上開啟新的 Windows PowerShell 會話。
執行
Set-ExecutionPolicy RemoteSigned
或Set-ExecutionPolicy Unrestricted
。執行
Import-Module ADSyncDiagnostics
。執行
Invoke-ADSyncDiagnostics -PasswordSync
。
一個物件未同步密碼:使用診斷 Cmdlet 進行疑難排解
您可以使用 Invoke-ADSyncDiagnostics
Cmdlet 來判斷為何一個物件未同步處理密碼。
注意
Cmdlet Invoke-ADSyncDiagnostics
僅適用于 Microsoft Entra 連線 1.1.524.0 版或更新版本。
執行診斷 Cmdlet
若要針對使用者未同步密碼的問題進行疑難排解:
使用 [ 以管理員istrator 執行] 選項,在您的 Microsoft Entra 連線 伺服器上開啟新的 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"
未同步任何密碼:手動疑難排解步驟
請遵循下列步驟來判斷為何沒有同步處理密碼:
連線伺服器處於 預備模式 嗎? 預備模式中的伺服器不會同步處理任何密碼。
在 取得密碼同步設定 的狀態欄段中執行腳本。 它提供密碼同步設定的概觀。
如果未在 Microsoft Entra ID 中啟用此功能,或未啟用同步通道狀態,請執行連線安裝精靈。 選取 [自訂同步處理選項 ],然後取消選取密碼同步處理。這項變更會暫時停用此功能。 然後再次執行精靈,然後重新啟用密碼同步處理。再次執行腳本,以確認組態正確無誤。
查看事件記錄檔中是否有錯誤。 尋找下列事件,指出問題:
- 來源:「目錄同步處理」識別碼:0、611、652、655 如果您看到這些事件,則發生連線問題。 事件記錄檔訊息包含您有問題的樹系資訊。
如果您沒有看到活動訊號或沒有其他任何作用,請執行 [觸發所有密碼 的完整同步處理]。 只執行腳本一次。
請參閱針對未同步處理密碼的一個物件進行疑難排解一節。
連線性問題
您是否具有 Microsoft Entra 識別碼的連線能力?
帳戶是否有讀取所有網域中密碼雜湊的必要許可權? 如果您使用快速設定安裝連線,許可權應該已經正確。
如果您使用自訂安裝,請執行下列動作來手動設定許可權:
若要尋找 Active Directory 連接器所使用的帳戶,請啟動 Synchronization Service Manager 。
移至 連線ors ,然後搜尋您要疑難排解內部部署的 Active Directory樹系。
選取連接器,然後按一下 [ 屬性 ]。
移至 [連線至 Active Directory 樹系 ]。
記下帳戶所在的使用者名稱和網域。開始 Active Directory 消費者和電腦 ,然後確認您稍早找到的帳戶具有樹系中所有網域根目錄設定的下列許可權:
- 複寫目錄變更
- 複寫目錄變更 (全部)
Microsoft Entra 連線可連線網域控制站嗎? 如果連線伺服器無法連線到所有網域控制站,請設定 [僅使用慣用的網域控制站 ]。
返回 同步處理 Service Manager 並 設定目錄分割 區。
在 [選取目錄分割區] 中 選取您的網域,選取 [ 僅使用慣用的網域控制站 ] 核取方塊,然後按一下 [ 設定 ]。
在清單中,輸入連線應該用於密碼同步處理的網域控制站。相同的清單也用於匯入和匯出。 針對所有網域執行這些步驟。
注意
若要套用這些變更,請重新開機 Microsoft Entra ID Sync (ADSync) 服務。
- 如果腳本顯示沒有活動訊號,請在觸發所有密碼 的完整同步處理中 執行腳本。
一個物件未同步密碼:手動疑難排解步驟
您可以檢閱物件的狀態,輕鬆地針對密碼雜湊同步處理問題進行疑難排解。
在 Active Directory 消費者和電腦 中,搜尋使用者,然後確認 [使用者必須在下次登入 時變更密碼] 核取方塊已清除。
如果選取核取方塊,請要求使用者登入並變更密碼。 暫存密碼不會與 Microsoft Entra ID 同步。
如果 Active Directory 中的密碼看起來正確,請遵循同步處理引擎中的使用者。 依照使用者從 內部部署的 Active Directory 到 Microsoft Entra ID,您可以看到物件上是否有描述性錯誤。
a. 啟動 Synchronization Service Manager 。
b. 按一下 [連線ors ]。
c. 選取使用者所在的 Active Directory 連線或 。
d. 選取 [搜尋連線或空間 ]。
e. 在 [ 範圍] 方塊中,選取 [ DN] 或 [錨點 ],然後輸入您要疑難排解之使用者的完整 DN。
f. 找出您要尋找的使用者,然後按一下 [ 屬性 ] 以查看所有屬性。 如果使用者不在搜尋結果中,請確認您的 篩選規則 ,並確定您執行 [套用] 並確認使用者的變更 出現在連線中。
.g 若要查看過去一周物件的密碼同步詳細資料,請按一下 [ 記錄 ]。
如果物件記錄檔是空的,Microsoft Entra 連線就無法從 Active Directory 讀取密碼雜湊。 使用連線錯誤繼續進行疑難排解。 如果您看到成功 以外的 任何其他值,請參閱密碼同步記錄 中的 資料表。
h. 選取歷程索引 標籤 ,並確定 PasswordSync 資料行中 至少有一個同步處理規則為 True 。 在預設組態中,同步規則的名稱是 In from AD - User AccountEnabled 。
i. 按一下 [Metaverse 物件屬性 ] 以顯示使用者屬性的清單。
確認沒有任何 cloudFiltered 屬性存在。 請確定定義域屬性 (domainFQDN 和 domainNetBios) 具有預期的值。
j. 按一下 [連線ors] 索引 標籤。請確定您看到內部部署的 Active Directory和 Microsoft Entra 識別碼的連接器。
k. 選取代表 Microsoft Entra ID 的資料列,按一下 [屬性 ],然後按一下 [ 譜系] 索引標籤 。連接器空間物件應該在 PasswordSync 資料行中 將輸出規則設定為 True 。 在預設組態中,同步規則的名稱是 Out to Microsoft Entra ID - User Join 。
密碼同步記錄
狀態資料行可以有下列值:
狀態 | 名描述 |
---|---|
成功 | 已成功同步處理密碼。 |
FilteredByTarget | 密碼設定為 [使用者必須在下次登入 時變更密碼]。 密碼尚未同步處理。 |
NoTarget連線ion | Metaverse 或 Microsoft Entra 連接器空間中沒有物件。 |
Source連線orNotPresent | 內部部署的 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