DFS Replication Error 4012
Репликация DFS — штука интересная. При правильном подходе она позволяет решить множество проблем, а при неправильном может их создать. И вот одна из таких проблем.
В результате сбоя по питанию система была перезагружена, а поскольку автоматическое восстановление было отключено, то после загрузки работа репликации не возобновилась. Проблему заметили не сразу, а через достаточно большое количество времени. В результате при попытке запустить репликацию имеем ошибку с кодом 4012. Суть ошибки в том, что простой репликации превысил максимально возможный срок, поэтому возобновить ее работу невозможно.
В сообщении рекомендуется вывести сервер из группы репликации и снова добавить его. Однако в моем случае это решение почему то не сработало и ошибка осталась.
Для исправления ситуации можно пойти другим путем и просто увеличить максимально возможный срок простоя, который хранится в параметре MaxOfflineTimeInDays. Посмотреть его значение можно с помощью утилиты wmic, выполнив такую команду:
wmic.exe /namespace:\\root\microsoftdfs path DfsrMachineConfig get MaxOfflineTimeInDays
Как видите, по умолчанию этот срок составляет 60 дней. Увеличим его до 120 следующей командой:
wmic.exe /namespace:\\root\microsoftdfs path DfsrMachineConfig set MaxOfflineTimeInDays=120
То же самое можно сделать с помощью PowerShell. Для проверки текущего значения можно воспользоваться командой:
Get-WmiObject -Namespace root\microsoftdfs -Class DfsMachineConfig | fl MaxOfflineTimeInDays
А для изменения такой:
Set-WmiInstance -Namespace root\microsoftdfs -Class DfsMachineConfig -Arguments @{MaxOfflineTimeInDays=120}
После изменения параметра необходимо перезапустить службу DFSR и репликация заработает. Затем можно вернуть значение параметра MaxOfflineTimeInDays обратно, к дефолтному значению.
Обновлено 27.05.2018
На днях столкнулся с тем, что в некоторых сайтах политики не обновляются. (Контроллеры на Windows 2012 и Windows 2008.) Изменения в GPO работают сразу в центральном офисе и на одном из удаленных филиалов, а в двух филиалах просто игнорируются. При этом обычная доменная DFS работает, файлы добавляются и удалаяются довольно быстро (3…5 сек) влов всех сайтах. А системная папка SYSVOL обновляться не хочет. Для проверки можно просто бросить маленький (например текстовый) файл в папку “\\dc01\SYSVOL\mydomain.ru\Policies\” на одном из контроллеров. Он тут же должен появиться в аналогичных папках на остальных контроллерах домена.
Ручная репликация не помогла. После перезапуска службы “Репликация DFS” в логах предупреждение 2213 и ошибка 4012. В предупреждении 2213 рекомендация запустить командной строке с повышенными привилегиями команду:
wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid=»A94E67B9-D750-11E2-93E7-806E6F6E6963″ call ResumeReplication
Это не помогло. А помог такой рецепт.
- В редакторе ADSIEDIT.MSC подключаемся к “живому” контроллеру и для каждого проблемного DC редактируем параметр CN=SYSVOL Subscription по адресу:
CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=<проблемный DC>,OU=Domain Controllers,DC=<наш домен>
Ошибка 4012 репликации групповых политик (папки SYSVOL)-01
В редакторе атрибутов изменяем атрибут:
msDFSR-Enabled=FALSE
Это окно можно пока не закрывать, но не забыть нажать кнопку Apply (Применить).
- Запускаем репликацию на эти проблемные контроллеры.
Ошибка 4012 репликации групповых политик (папки SYSVOL)-02
- На тех серверах, для которых меняли атрибут, выполнить в командной строке с повышенными привилегиями:
DFSRDIAG POLLAD
- Убедиться, что вжурнале событий этих DC (Журналы приложений и служб — Репликация DFS) появилось событие c кодом 4114, сообщающее о том, что папка SYSVOL больше не реплицируется.
- На тех же DC из шага 1 возвращаем:
msDFSR-Enabled=TRUE
- Запускаем репликацию на эти проблемные контроллеры.
- На тех серверах, для которых меняли атрибут, выполнить в командной строке с повышенными привилегиями:
DFSRDIAG POLLAD
- Должны появиться события с кодами 4614 и 4604
На одном из контроллеров указанные выше операции быстро восстановили репликацию, а на другом шаг 8 не выполнился. При перезапуске службы “Репликация DFS” в логах снова появилась ошибка 4012 о превышении периода в параметре MaxOfflineTimeInDays. Тогда сделал все по старой схеме и это решило проблему с репликацией папки SYSVOL.
База знаний —
Windows Server
В имеющийся домен был добавлен новый контроллер домена на Windows Server 2012R2. Старый контроллер домена работал на Windows Server 2012. Репликация AD проходит, но папки SYSVOL и NETLOGON не появились. При выполнении dcdiag
отсутствие папки NETLOGON было единственной ошибкой. (Если это не так, то попробуйте устранить имеющиеся ошибки)
Репликация папок SYSVOL и NETLOGON в новом Windows Server 2012R2 выполняется службой dfsr.Если папки не переносятся со старого контроллера, то смотреть нужно на работу службы dfsr.
В нашем случае на старом контроллере домена были ошибки 2213 службы dfsr, которая решалась выполнением команды:
wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid="6C528A12-4321-11E2-93E7-806E6F6E6963" call ResumeReplication
текст команды есть в описании ошибки. Лучше скопировать его от туда, так как volumeGUID у вас будет свой.
После этого сервер лучше перезагрузить.
После этого возникла ошибка 4012 ” Служба репликации DFS остановила репликацию на папке со следующим локальным путем: C:\Windows\SYSVOL\domain. Этот сервер был отключен от других партнеров в течение 834 дн., что превышает период, разрешенный параметром MaxOfflineTimeInDays (60). Репликация DFS считает данные в папке устаревшими, и этот сервер не будет реплицировать данную папку до устранения ошибки.”
Нужно увеличить параметр MaxOfflineTimeInDays на большее количество дней.
wmic.exe /namespace:\\root\microsoftdfs path DfsrMachineConfig set MaxOfflineTimeInDays=850
(После успешной репликации параметр можно вернуть обратно к 60.)
Для запуска репликации перезагружаем новый контроллер домена.
После этого папка sysvol синхронизируется.
Если нет папки NETLOGON, то нужно в редакторе реестра параметр HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
Установить в 0 и перезагрузить сервер. Папка sysvol исчезнет. После этого нужно установить параметр в 1 и еще раз перезагрузиться. SYSVOL и NETLOGON будут на месте.