Устранение неполадок с синхронизацией хэшированных паролей в службе синхронизации Microsoft Entra Connect

В этой статье приводятся пошаговые инструкции по устранению неполадок, связанных с синхронизацией хэшированных паролей. Неполадки синхронизации паролей могут возникать либо в подмножестве пользователей, либо у всех.

Для развертывания Microsoft Entra Подключение с версией 1.1.614.0 или после нее используйте задачу устранения неполадок в мастере для устранения неполадок синхронизации хэша паролей:

Для развертываний версии 1.1.524.0 или более поздней версии мы создали командлет диагностики, который вы можете использовать для устранения неполадок с синхронизацией хэшированных паролей.

Для более старых версий развертывания Microsoft Entra Подключение:

Пароли не синхронизируются: устранение неполадок с помощью задачи устранения неполадок

Вы можете использовать задачу устранения неполадок, чтобы выяснить, почему пароли не синхронизируются.

Примечание.

Задача устранения неполадок доступна только для Microsoft Entra Подключение версии 1.1.614.0 или более поздней.

Запуск задачи устранения неполадок

Чтобы устранить неполадки, связанные с синхронизацией паролей, сделайте следующее:

  1. Откройте новый сеанс Windows PowerShell на сервере Microsoft Entra Подключение с параметром запуска от имени Администратор istrator.

  2. Запустите Set-ExecutionPolicy RemoteSigned или Set-ExecutionPolicy Unrestricted.

  3. Запустите мастер Подключение Microsoft Entra.

  4. Перейдите к странице Дополнительные задачи, выберите Устранение неполадок и щелкните Далее.

  5. На странице "Устранение неполадок" щелкните Запуск, чтобы открыть меню устранения неполадок в PowerShell.

  6. В главном меню выберите пункт Troubleshoot password hash synchronization (Устранение неполадок с синхронизацией хэшированных паролей).

  7. В подменю выберите Password hash synchronization does not work at all (Синхронизация хэшированных паролей не выполняется).

Изучение результатов задачи устранения неполадок

Задача устранения неполадок выполняет следующие проверки.

  • Проверяет, включена ли функция синхронизации хэша паролей для клиента Microsoft Entra.

  • Проверяет, что сервер Microsoft Entra Подключение не находится в промежуточном режиме.

  • Для каждого существующего локального соединителя Active Directory (который соответствует существующему лесу Active Directory):

    • проверяет, включена ли функция синхронизации хэшированных паролей;

    • ищет события пульса для синхронизации хэшированных паролей в журналах событий приложений Windows.

    • Для каждого домена Active Directory в локальном соединителе Active Directory:

      • Проверяет, доступен ли домен с сервера Microsoft Entra Подключение.

      • Проверяет, чтобы учетные записи доменных служб Active Directory (AD DS), используемые локальным соединителем Active Directory, имели правильные имя пользователя, пароль и разрешения, необходимые для синхронизации хэшированных паролей.

На схеме ниже отображаются результаты командлета для локальной топологии Active Directory с одним доменом:

Diagnostic output for password hash synchronization

В оставшейся части этого раздела описаны возможные результаты, возвращаемые задачей, и соответствующие неполадки.

Функция синхронизации хэша паролей не включена

Если вы не включили синхронизацию хэша паролей с помощью мастера microsoft Entra Подключение, возвращается следующая ошибка:

password hash synchronization isn't enabled

Сервер Microsoft Entra Подключение находится в промежуточном режиме

Если сервер Microsoft Entra Подключение находится в промежуточном режиме, синхронизация хэша паролей временно отключена, и возвращается следующая ошибка:

Microsoft Entra Connect server is in staging mode

Отсутствуют события пульса для синхронизации паролей

У каждого локального соединителя Active Directory есть свой собственный канал синхронизации хэшированных паролей. Если установлен канал синхронизации хэшированных паролей, но нет необходимости синхронизировать изменения паролей, в журнале событий приложений Windows каждые 30 минут создается событие пульса с идентификатором EventId 654. Для каждого локального соединителя Active Directory командлет ищет соответствующие события пульса за последние три часа. Если событие пульса не найдено, возвращается следующая ошибка:

No password hash synchronization heart beat event

Учетная запись AD DS не имеет необходимых разрешений

Если учетная запись AD DS, используемая локальным соединителем Active Directory для синхронизации хэшей паролей, не содержит соответствующих разрешений, возвращается следующая ошибка:

Screenshot that shows the error that's returned when the AD DS account has an incorrect username or password.

Неправильный пароль или имя пользователя учетной записи AD DS

Если учетная запись AD DS, используемая локальным соединителем Active Directory для синхронизации хэшей паролей, содержит неправильный пароль или имя пользователя, возвращается следующая ошибка:

Incorrect credential

Пароли не синхронизируются одним объектом: устранение неполадок с помощью задачи устранения неполадок

Вы можете использовать задачу устранения неполадок, чтобы определить, почему определенный объект не синхронизирует пароли.

Примечание.

Задача устранения неполадок доступна только для Microsoft Entra Подключение версии 1.1.614.0 или более поздней.

Запуск командлета диагностики

Чтобы устранить неполадки для определенного объекта пользователя, сделайте следующее:

  1. Откройте новый сеанс Windows PowerShell на сервере Microsoft Entra Подключение с параметром запуска от имени Администратор istrator.

  2. Запустите Set-ExecutionPolicy RemoteSigned или Set-ExecutionPolicy Unrestricted.

  3. Запустите мастер Подключение Microsoft Entra.

  4. Перейдите к странице Дополнительные задачи, выберите Устранение неполадок и щелкните Далее.

  5. На странице "Устранение неполадок" щелкните Запуск, чтобы открыть меню устранения неполадок в PowerShell.

  6. В главном меню выберите пункт Troubleshoot password hash synchronization (Устранение неполадок с синхронизацией хэшированных паролей).

  7. Выберите в подменю Пароль не синхронизируется для определенной учетной записи пользователя.

Изучение результатов задачи устранения неполадок

Задача устранения неполадок выполняет следующие проверки.

  • Проверяет состояние объекта Active Directory в пространстве соединителя Active Directory, Метавселенной и соединительном пространстве Microsoft Entra.

  • Проверяет, чтобы были включены и применены к объекту Active Directory правила синхронизации паролей для синхронизации хэшированных паролей.

  • Пытается извлечь и отобразить результаты последней попытки синхронизации паролей для объекта.

На схеме ниже отображаются результаты выполнения командлета для устранения неполадок синхронизации хэшированных паролей для одного объекта:

Diagnostic output for password hash synchronization - single object

В оставшейся части этого раздела описываются определенные результаты, возвращенные командлетом, и соответствующие неполадки.

Объект Active Directory не экспортируется в идентификатор Microsoft Entra

Синхронизация хэша паролей для этой учетной записи локальная служба Active Directory завершается ошибкой, так как в клиенте Microsoft Entra отсутствует соответствующий объект. Возвращается следующая ошибка:

Microsoft Entra object is missing

У пользователя временный пароль

Старые версии Microsoft Entra Подключение не поддерживали синхронизацию временных паролей с идентификатором Microsoft Entra. Пароль может рассматриваться как временный, если для локального пользователя Active Directory установлен параметр смены пароля при следующем входе в систему. Следующая ошибка возвращается с этими старыми версиями:

Temporary password is not exported

Чтобы включить синхронизацию временных паролей, необходимо установить microsoft Entra Подключение версии 2.0.3.0 или более поздней, а также включить функцию ForcePasswordChangeOnLogonLogon.

Результаты последней попытки синхронизации пароля недоступны

По умолчанию Microsoft Entra Подключение сохраняет результаты попытки синхронизации хэша паролей в течение семи дней. Если для выбранного объекта Active Directory результаты недоступны, возвращается следующее предупреждение:

Diagnostic output for single object - no password sync history

Пароли не синхронизируются: устранение неполадок с помощью командлета диагностики

Вы можете использовать командлет Invoke-ADSyncDiagnostics, чтобы выяснить, почему не происходит синхронизация паролей.

Примечание.

Командлет Invoke-ADSyncDiagnostics доступен только для Microsoft Entra Подключение версии 1.1.524.0 или более поздней.

Запуск командлета диагностики

Чтобы устранить неполадки, связанные с синхронизацией паролей, сделайте следующее:

  1. Откройте новый сеанс Windows PowerShell на сервере Microsoft Entra Подключение с параметром запуска от имени Администратор istrator.

  2. Запустите Set-ExecutionPolicy RemoteSigned или Set-ExecutionPolicy Unrestricted.

  3. Выполните Import-Module ADSyncDiagnostics.

  4. Выполните Invoke-ADSyncDiagnostics -PasswordSync.

Пароли не синхронизируются одним объектом: устранение неполадок с помощью командлета диагностики

Вы можете использовать командлет Invoke-ADSyncDiagnostics, чтобы определить, почему пароли не синхронизируются одним объектом.

Примечание.

Командлет Invoke-ADSyncDiagnostics доступен только для Microsoft Entra Подключение версии 1.1.524.0 или более поздней.

Запуск командлета диагностики

Чтобы устранить неполадки с синхронизацией паролей определенного пользователя, сделайте следующее:

  1. Откройте новый сеанс Windows PowerShell на сервере Microsoft Entra Подключение с параметром запуска от имени Администратор istrator.

  2. Запустите Set-ExecutionPolicy RemoteSigned или Set-ExecutionPolicy Unrestricted.

  3. Запустите Import-Module ADSyncDiagnostics.

  4. Выполните следующий командлет:

    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"
    

Пароли не синхронизируются: шаги по устранению неполадок вручную

Чтобы выяснить, почему не происходит синхронизация паролей, выполните следующие действия:

  1. Переведен ли сервер Connect в промежуточный режим? Сервер, находящийся в промежуточном режиме, не синхронизирует пароли.

  2. Выполните сценарий, приведенный в разделе Получение состояния параметров синхронизации паролей. В этом разделе рассматривается конфигурация синхронизации паролей.

    PowerShell script output from password sync settings

  3. Если функция не включена в идентификаторе Microsoft Entra или если состояние канала синхронизации не включено, запустите мастер установки Подключение. Выберите Настроить параметры синхронизациии снимите флажок "Синхронизация паролей". Это изменение приведет к временному отключению функции. Затем снова запустите мастер и повторно включите синхронизацию паролей. Запустите сценарий еще раз, чтобы убедиться, что конфигурация правильная.

  4. Проверьте журнал событий на наличие ошибок. Найдите следующие события, которые могут указывать на проблему:

    • Источник: "Directory synchronization" ID: 0, 611, 652, 655. Если вы видите эти события, то это свидетельствует о проблеме с подключением. Сообщение в журнале событий содержит сведения о лесе, в котором возникла проблема.
  5. Если нет пульса или не сработали другие методы, то запустите полную синхронизацию всех паролей. Этот сценарий необходимо выполнить только один раз.

  6. Ознакомьтесь с разделом "Пароли не синхронизируются одним объектом".

Проблемы с подключением

У вас есть подключение к идентификатору Microsoft Entra?

Имеет ли учетная запись необходимые разрешения для чтения хэшей паролей во всех доменах? Если при установке Connect вы использовали стандартные параметры, то у вас уже должны быть необходимые разрешения.

Если вы использовали выборочную установку, задайте разрешения вручную следующим образом:

  1. Чтобы найти учетную запись, используемую соединителем Active Directory, запустите Synchronization Service Manager.

  2. Перейдите в раздел Connectors (Соединители), а затем найдите локальный лес Active Directory, в котором устраняются неполадки.

  3. Выберите соединитель и щелкните Properties (Свойства).

  4. Выберите Подключиться к лесу Active Directory.

    Account used by Active Directory connector
    Запишите имя пользователя и домен, в котором размещена учетная запись.

  5. Запустите Пользователи и компьютеры Active Directory и проверьте, чтобы для учетной записи, найденной на предыдущем шаге, в корне всех доменов в лесу были заданы следующие разрешения:

    • Репликация изменений каталога
    • Репликация всех изменений каталога
  6. Доступны ли контроллеры домена Подключение Microsoft Entra? Если серверу Connect не удается подключиться ко всем контроллерам домена, настройте параметр Only use preferred domain controller (Использовать только предпочтительные контроллеры домена).

    Domain controller used by Active Directory connector

  7. Вернитесь в меню Synchronization Service Manager и выберите Configure Directory Partitions (Настройка разделов каталога).

  8. В списке Select directory partitions (Выбор разделов каталога) выберите свой домен, установите флажок Only use preferred domain controllers (Использовать только предпочтительные контроллеры домена), а затем щелкните Configure (Настроить).

  9. В списке введите контроллеры домена, которые должны использоваться в Connect для синхронизации паролей. Тот же список применяется при импорте и экспорте. Выполните эти действия для всех доменов.

Примечание.

Чтобы применить эти изменения, перезапустите службу синхронизации идентификаторов Microsoft Entra (ADSync).

  1. Если в сценарии отображается отсутствие пульса, тогда запустите сценарий, приведенный в разделе Запуск полной синхронизации всех паролей.

Пароли не синхронизируются одним объектом: шаги по устранению неполадок вручную

Проблемы, связанные с синхронизацией паролей, можно легко диагностировать по состоянию объекта.

  1. В средстве Пользователи и компьютеры Active Directory найдите пользователя, а затем убедитесь в отсутствии флажка для параметра Требовать смены пароля при следующем входе в систему.

    Active Directory productive passwords

    Если флажок установлен, пользователь должен войти в систему и сменить пароль. Временные пароли не синхронизируются с идентификатором Microsoft Entra.

  2. Если с паролем в Active Directory все в порядке, отследите пользователя в модуле синхронизации. Следуя за пользователем из локальная служба Active Directory в идентификатор Microsoft Entra, вы можете увидеть, существует ли описательная ошибка в объекте.

    a. Запустите Synchronization Service Manager.

    b. Щелкните Соединители.

    c. Выберите соединитель Active Directory, к которому относится пользователь.

    d. Выберите Search Connector Space(Поиск пространства соединителя).

    д) В поле Scope (Область) выберите DN or Anchor (Различающееся имя или привязка), а затем введите полное различающееся имя пользователя, для которого требуется устранить неполадки.

    Search for user in connector space with DN

    е) Найдите нужного пользователя и нажмите кнопку Properties (Свойства), чтобы просмотреть все атрибуты. Если в результатах поиска нет нужного пользователя, то проверьте правила фильтрации и выполните действия, описанные в разделе Примените и проверьте изменения. После этого пользователь должен отобразиться в Connect.

    ж. Чтобы просмотреть сведения о синхронизации паролей объекта за прошедшую неделю, щелкните Log (Журнал).

    Object log details

    Если журнал объектов пуст, Microsoft Entra Подключение не удалось прочитать хэш паролей из Active Directory. Перейдите к устранению неполадок, описанных в разделе "Проблема подключения". Если состояние имеет значение, отличное от успешного, то воспользуйтесь таблицей в разделе Журнал синхронизации паролей.

    h. Выберите вкладку Lineage (Журнал обращений и преобразований) и убедитесь, что по крайней мере для одного правила синхронизации в колонке PasswordSync задано значение True. В конфигурации по умолчанию правило синхронизации имеет имя In from AD - User AccountEnabled.

    Lineage information about a user

    i. Щелкните Metaverse Object Properties (Свойства объекта метавселенной), чтобы показать список атрибутов пользователя.

    Screenshot that shows the list of user attributes for the Metaverse Object Properties.

    Атрибут cloudFiltered должен отсутствовать. Убедитесь, что атрибуты домена (domainFQDN и domainNetBios) имеют ожидаемые значения.

    j. Перейдите на вкладку Подключение orors. Убедитесь, что соединители отображаются как для локальная служба Active Directory, так и идентификатора Microsoft Entra.

    Metaverse information

    k. Выберите строку, представляющую идентификатор Microsoft Entra, щелкните "Свойства" и перейдите на вкладку "Происхождение". Объект пространства соединителя должен иметь правило для исходящего трафика в столбце PasswordSync с значением True. В конфигурации по умолчанию имя правила синхронизации — Out to Microsoft Entra ID — User Join.

    Connector Space Object Properties dialog box

Журнал синхронизации паролей

В столбце "Состояние" могут содержаться перечисленные ниже значения.

Состояние Description
Удачное завершение Пароль успешно синхронизирован
FilteredByTarget Для пароля установлено значение Пользователь должен изменить пароль при следующем входе. Пароль не синхронизирован.
NoTargetConnection Нет объекта в метавселенной или в пространстве соединителя Microsoft Entra.
SourceConnectorNotPresent Объект не найден в локальном пространстве соединителя Active Directory.
TargetNotExportedToDirectory Объект в пространстве соединителя Microsoft Entra еще не экспортирован.
MigratedCheckDetailsForMoreInfo Запись журнала создана до выхода версии 1.0.9125.0 и отображается в исходном состоянии.
Ошибка Служба вернула неизвестную ошибку.
Неизвестно Произошла ошибка при попытке обработать пакет хэшей паролей.
MissingAttribute Определенные атрибуты (например, хэш Kerberos), необходимые доменным службам Microsoft Entra, недоступны.
RetryRequestedByTarget Определенные атрибуты (например, хэш Kerberos), необходимые доменным службам Microsoft Entra, были недоступны ранее. Предпринята попытка повторно синхронизировать хэш пароля пользователя.

Сценарии, помогающие при устранении неполадок

Получение состояния параметров синхронизации паролей

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

Запуск полной синхронизации всех паролей

Примечание.

Запустите этот сценарий только один раз. Если одного раза мало, то это значит, что проблема в чем-то другом. Для устранения этой проблемы обратитесь в службу поддержки Майкрософт.

Полную синхронизацию всех паролей можно активировать с помощью следующего сценария:

$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

Следующие шаги