Вопрос или проблема
Кажется, что с моим основным контроллером домена что-то не так. Что бы я ни делал, я не могу заставить другие контроллеры домена создать папки sysvol и netlogon после их повышения. Мой dcdiag показывает эти ошибки на новых контроллерах домена:
Starting test: Advertising
Warning: DsGetDcName returned information for \\ds1.directory.myorg.com, when we were trying to
reach DS3.
SERVER IS NOT RESPONDING or IS NOT CONSIDERED SUITABLE.
......................... DS3 failed test Advertising
Starting test: NetLogons
Unable to connect to the NETLOGON share! (\\DS3\netlogon)
[DS3] An net use or LsaPolicy operation failed with error 67, The network name cannot be found..
......................... DS3 failed test NetLogons
dfsrmig.exe /getmigrationstate показывает это на обоих контроллерах домена:
All domain controllers have migrated successfully to the Global state ('Eliminated').
Я попытался вручную создать общий доступ к C:/Windows/SYSVOL/sysvol, чтобы он совпадал с моим основным контроллером домена, но это не помогло. Кроме создания/репликации папок SYSVOL и NETLOGON, все остальное выглядит нормально.
Мои папки SYSVOL и NETLOGON не синхронизировались, потому что мой основной контроллер домена не был установлен как авторитетный член DFSR. Он все еще пытался реплицировать на пониженный контроллер домена. Я следовал указаниям из раздела “Как выполнить авторитарную синхронизацию DFSR-реплицированного SYSVOL” в этом руководстве на моем основном контроллере домена: https://support.microsoft.com/en-us/help/2218556/how-to-force-an-authoritative-and-non-authoritative-synchronization-fo
У меня было три контроллера домена в тестовом домене, где два имели sysvol+netlogon в состоянии “Initial Sync” (синхронизация инициализации) 2, а третий не имел ни общего доступа sysvol+netlogon, ни состояния вообще. Я следовал этому блогу и сделал его в виде скрипта powershell. Возможно, это поможет и другим.
Вот моя ситуация:
- DC1 был один длительное время: Windows 2012 R2 (уровень домена + леса)
- DC2 был добавлен давно: Windows 2012 R2
- DC3 добавлен недавно: Windows 2022 core
- DC3 взял на себя роли FSMO, так как я хотел, чтобы он стал новым PDC
- Обнаружены проблемы синхронизации и другие проблемы при попытке поднять уровень домена/леса до 2016 года, поскольку контроллеры домена не были выше 2016 года
- DC2 обновление на месте до Windows 2025
- DC1 обновление на месте до Windows 2025
- Обнаружены дополнительные проблемы и не работал защищенный канал DC3
- Вернул роли FSMO на DC1
- Запустил этот скрипт для исправления, и теперь все выглядит хорошо
# https://www.checkyourlogs.net/how-to-fix-missing-sysvol-and-netlogon-share-and-replication-issues-on-new-domain-controller-at-azure
# Verify in admin cmd
# For /f %i IN ('dsquery server -o rdn') do @echo %i && @wmic /node:"%i" /namespace:\\root\microsoftdfs path dfsrreplicatedfolderinfo WHERE replicatedfoldername="SYSVOL share" get replicationgroupname,replicatedfoldername,state
#The states should translate as below and be #4 if all is ok
#0 = Uninitialized
#1 = Initialized
#2 = Initial Sync
#3 = Auto Recovery
#4 = Normal
#5 = In Error
$MyDomain = 'DC=nikdom,DC=local'
$DC1 = 'NIKLASDC01'
$DC2 = 'NIKLASDC02'
$DC3 = 'NIKLASDC03'
$DCs = $DC1,$DC2,$DC3
ICM $DCS {
Stop-Service -Name DFSR }
# $DC1, change : "msDFSR-Enabled"=$true;"msDFSR-Options"=0 to "msDFSR-Enabled"=$false;"msDFSR-Options"=1
Get-ADObject -Identity "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC1,OU=Domain Controllers,$MyDomain" -Properties msDFSR-Enabled, msDFSR-Options
Set-ADObject "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC1,OU=Domain Controllers,$MyDomain" -Replace @{"msDFSR-Enabled"=$false;"msDFSR-Options"=1}
Get-ADObject -Identity "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC1,OU=Domain Controllers,$MyDomain" -Properties msDFSR-Enabled, msDFSR-Options
# $DC2, change : "msDFSR-Enabled"=$true to "msDFSR-Enabled"=$false
Get-ADObject -Identity "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC2,OU=Domain Controllers,$MyDomain" -Properties msDFSR-Enabled, msDFSR-Options
Set-ADObject "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC2,OU=Domain Controllers,$MyDomain" -Replace @{"msDFSR-Enabled"=$false}
Get-ADObject -Identity "CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC2,OU=Domain Controllers,$MyDomain" -Properties msDFSR-Enabled, msDFSR-Options
# $DC3, change : "msDFSR-Enabled"=$true to "msDFSR-Enabled"=$false
Get-ADObject -Identity "CN=SYSвол подписка,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC3,OU=Domain Controllers,$MyDomain" -Properties msDFSR-Enabled, msDFSR-Options
Set-ADObject "CN=SYSвол подписка,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC3,OU=Domain Controllers,$MyDomain" -Replace @{"msDFSR-Enabled"=$false}
Get-ADObject -Identity "CN=SYSвол подписка,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC3,OU=Domain Controllers,$MyDomain" -Properties msDFSR-Enabled, msDFSR-Options
$DCs = $DC1,$DC2,$DC3
ICM $DCS {
repadmin /kcc
repadmin /syncall /e
repadmin /syncall /e /P
Net Stop Netlogon
Net Start Netlogon
IPconfig /registerdns }
# Start DFSR only on PDC
$DCs = $DC1
ICM $DCS {
Start-Service -Name DFSR }
# Check event log DFSR and You will see Event ID 4114 in the DFSR event log indicating SYSвол no longer replicated.
# The replicated folder at local path C:\Windows\SYSVOL\domain has been disabled. The replicated folder will not participate in replication until it is enabled. All data in the replicated folder will be treated as pre-existing data when this replicated folder is enabled.
# $DC1, change : "msDFSR-Enabled"=$false to "msDFSR-Enabled"=$true
Get-ADObject -Identity "CN=SYSвол подписка,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC1,OU=Domain Controllers,$MyDomain" -Properties msDFSR-Enabled, msDFSR-Options
Set-ADObject "CN=SYSвол подписка,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC1,OU=Domain Controllers,$MyDomain" -Replace @{"msDFSR-Enabled"=$true}
Get-ADObject -Identity "CN=SYSвол подписка,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC1,OU=Domain Controllers,$MyDomain" -Properties msDFSR-Enabled, msDFSR-Options
$DCs = $DC1,$DC2,$DC3
ICM $DCS {
repadmin /kcc
repadmin /syncall /e
repadmin /syncall /e /P
Net Stop Netlogon
Net Start Netlogon
IPconfig /registerdns }
# Run dfsrdiag.exe PollAD , Add dfsrdiag if missing with : Add-WindowsFeature RSAT-DFS-Mgmt-Con
dfsrdiag.exe PollAD
# You will see DFSR Event ID 4602 indicating SYSVOL has been initialized.
# Start DFSR on remaining servers
$DCs = $DC2,$DC3
ICM $DCS {
Start-Service -Name DFSR }
# NIKLASDC02, change : "msDFSR-Enabled"=$false to "msDFSR-Enabled"=$true
Get-ADObject -Identity "CN=SYSвол подписка,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC2,OU=Domain Controllers,$MyDomain" -Properties msDFSR-Enabled, msDFSR-Options
Set-ADObject "CN=SYSвол подписка,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC2,OU=Domain Controllers,$MyDomain" -Replace @{"msDFSR-Enabled"=$true}
Get-ADObject -Identity "CN=SYSвол подписка,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC2,OU=Domain Controllers,$MyDomain" -Properties msDFSR-Enabled, msDFSR-Options
# NIKLASDC03, change : "msDFSR-Enabled"=$false to "msDFSR-Enabled"=$true
Get-ADObject -Identity "CN=SYSвол подписка,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC3,OU=Domain Controllers,$MyDomain" -Properties msDFSR-Enabled, msDFSR-Options
Set-ADObject "CN=SYSвол подписка,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC3,OU=Domain Controllers,$MyDomain" -Replace @{"msDFSR-Enabled"=$true}
Get-ADObject -Identity "CN=SYSвол подписка,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=$DC3,OU=Domain Controllers,$MyDomain" -Properties msDFSR-Enabled, msDFSR-Options
$DCs = $DC1,$DC2,$DC3
ICM $DCS {
repadmin /kcc
repadmin /syncall /e
repadmin /syncall /e /P
Net Stop Netlogon
Net Start Netlogon
IPconfig /registerdns }
# Run dfsrdiag.exe PollAD , Add dfsrdiag if missing with : Add-WindowsFeature RSAT-DFS-Mgmt-Con, executer remotely on Core servers as RSAT is not possible to add there
$DCs = $DC2,$DC3
ICM $DCS {
$DC1 = 'NIKLASDC01'
$dfsrdiagPath = "\\$DC1\c$\windows\system32\dfsrdiag.exe"
& "$dfsrdiagPath" PollAD}
# You will see DFSR Event ID 4602 indicating SYSвол has been initialized.
# Verify in admin cmd
# For /f %i IN ('dsquery server -o rdn') do @echo %i && @wmic /node:"%i" /namespace:\\root\microsoftdfs path dfsrreplicatedfolderinfo WHERE replicatedfoldername="SYSVOL share" get replicationgroupname,replicatedfoldername,state
#The states should translate as below and be #4 if all is ok
#0 = Uninitialized
#1 = Initialized
#2 = Initial Sync
#3 = Auto Recovery
#4 = Normal
#5 = In Error
$DCs = $DC1,$DC2,$DC3
ICM $DCS {net share}
Ответ или решение
Проблема с репликацией каталогов SYSVOL и NETLOGON на новом контроллере домена является распространенной и может быть вызвана несколькими факторами. Важно отметить, что каталоги SYSVOL и NETLOGON играют критически важную роль в функционировании любого домена Active Directory, так как они содержат политики группы и сценарии входа, которые должны быть реплицированы на все контроллеры домена в сети.
Теория
Когда вы повышаете сервер до контроллера домена, часть его обязанностей заключается в реплицировании каталога SYSVOL, который является средством синхронизации данных по всей лесной структуре домена. Репликация происходит с помощью DFSR (Distributed File System Replication). Если новый контроллер не создает и не реплицирует каталоги SYSVOL и NETLOGON, это может свидетельствовать о проблемах в конфигурации репликации, например, неавторитетный источник DFSR или проблемы с безопасными каналами между контроллерами.
Пример
Из вашей ситуации понятно, что DCDIAG показывает ошибки, связанные с невозможностью создания каталога NETLOGON на новом контроллере (DS3), а также проблемы с репликацией SYSVOL. Ваша диагностика также показала, что все доменные контроллеры достигли глобального состояния "Eliminated" в процессе миграции DFSR, что обычно означает завершение миграции с FRS (File Replication Service) на DFSR, но это также может означать, что процессы репликации были неправильно завершены.
Судя по приведенной информации, ваш основной контроллер домена не был установлен в качестве авторитетного члена DFSR, и он пытался реплицировать данные с устаревшего контроллера, который уже был разжалован. В такой ситуации вам нужно выполнить авторитетную синхронизацию DFSR для SYSVOL на основном контроллере, как было сделано в вашем случае.
Применение
Для устранения данной проблемы следуйте следующим шагам:
-
Проверка текущего состояния DFSR:
- Используйте
dfsrmig.exe /getmigrationstate
для получения текущего статуса миграции миграции. Убедитесь, что все контроллеры домена в сети находятся в одном и том же состоянии.
- Используйте
-
Установите авторитетный источник синхронизации:
- Используйте
ADSIEdit
или PowerShell для установки текущего основного контроллера в качестве авторитетного источника. Это можно сделать, изменив параметры msDFSR-Enabled и msDFSR-Options как показано в вашем примере PowerShell сценария. - Перезапустите службу DFSR.
- Используйте
-
Автоматизация восстановления:
- Вы можете использовать PowerShell скрипт, приведенный вами, для автоматизации проверки и восстановления состояния репликации. Важно обеспечить, чтобы все контроллеры были в состоянии "Normal" (#4).
-
Мониторинг состояния служб и событий:
- Проверьте журналы событий DFSR на наличие ошибок и предупреждений после выполнения синхронизации, чтобы убедиться, что система работает корректно.
-
Повторная регистрация DNS-имён:
- Выполните
IPconfig /registerdns
на всех доменных контроллерах для обновления их DNS-записей.
- Выполните
-
Проверка сетевых путей и безопасных каналов:
- Используйте
nltest /sc_verify
чтобы удостовериться, что все контроллеры домена могут правильно аутентифицироваться друг с другом.
- Используйте
-
Реализация процесса обратной связи:
- Держите планы действий на случай повторения проблемы и создавайте отчеты по всем проведенным изменениям для дальнейшего анализа.
Основываясь на изложенных шагах, вы сможете убедиться в том, что все ваши контроллеры домена уже корректно участвуют в репликации и что структуры и сервисы, такие как SYSVOL и NETLOGON, функционируют ожидаемым образом. Постоянное наблюдение за производительностью и журналами событий контроллеров поможет быстро выявлять и устранять подобные проблемы в будущем.