針對使用 Microsoft Entra Connect 同步執行的密碼雜湊同步處理進行疑難排解
本主題提供如何針對密碼雜湊同步處理問題進行疑難排解的步驟。 如果密碼未如預期般同步,可能會影響一部分使用者或所有使用者。
對於 1.1.614.0 版或更新版本的 Microsoft Entra Connect 部署,請使用精靈中的疑難排解工作,針對密碼雜湊同步處理問題進行疑難排解:
如果是未同步任何密碼的問題,請參閱未同步任何密碼:使用疑難排解工作進行疑難排解一節。
如果是個別物件的問題,請參閱一個物件未同步密碼:使用疑難排解工作進行疑難排解一節。
對於 1.1.524.0 版或更新版本的部署,有一個診斷 Cmdlet 可讓您針對密碼雜湊同步處理問題進行疑難排解:
如果是未同步任何密碼的問題,請參閱未同步任何密碼:使用診斷 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
因為 Microsoft Entra 租用戶中沒有對應的物件,所以這個內部部署 Active Directory 帳戶的密碼雜湊同步處理失敗。 系統會傳回下列錯誤:
使用者有暫時密碼
舊版的 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 中未啟用此功能,或未啟用同步通道狀態,請執行 Connect 安裝精靈。 選取 [自訂同步處理選項] 並取消選取密碼同步。這項變更會暫時停用此功能。 然後再次執行精靈並重新啟用密碼同步處理。再次執行指令碼,確認組態正確無誤。
查看事件記錄中是否有錯誤。 尋找下列事件,這些事件會指出問題所在︰
來源:「目錄同步作業」
識別碼: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