Ошибка службы времени «w32tm /resync Access is denied. (0x80070005)»

9
8

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

Получаю:

System error 1290 has occurred. The service start failed since one or more services in the same process have an incompatible service SID type setting. A service with restricted service SID type can only coexist in the same process with other services with a restricted SID type. If the service SID type for this service was just configured, the hosting process must be restarted in order to start this service.

Выносим службу в отдельный процесс:

Должны получить [SC] ChangeServiceConfig SUCCESS

После чего служба запускается, но при этом начинает ругается dcdiag.

При попытке выполнить любой запрос, например w32tm /query /status вываливается ошибка закрытого доступа.

Решение оказалось нетривиальным:

Перезапускаем сервер и регистрируем службу:

После убедимся, что сервис снова установлен в расшаренном режиме, наберем:

В ответ должны получить WIN32_OWN_PROCESS:

После чего, снова перезапускаем сервер, и запускаем команду

Убедимся что служба запущена:

Затем как обычно, настраиваем контроллер на получение времени из внешних источников:

Внесем изменения в конфигурацию:

Выполним синхронизацию командой:

Отобразить текущие источники синхронизации и их статус можно следующей командой:

Статус синхронизации контроллеров домена в домене:

  • Nikita

    Спасибо, 3 дня не мог понять, почему у меня время в домене мистическим образом откатывается на час назад, наткнулся на эту статью, перерегистрация службы решила проблему. Гранмерси автору.

  • Sergei

    А у меня строго 10 минутная разница поддерживалась. Нашел 3-4 статьи на эту тему. Эта оказалась наиболее детальная, несмотря на краткость. Спасибо.

    • admin

      Спасибо и вам за отзыв!

  • malcev

    Вы написали — «После чего, снова перезапускаем сервер, и запускаем команду, проверяем что служба работает»
    А какими командами это сделать?
    Если я повторно запускаю «regsvr32 /u w32time.dll» у меня выходит ошибка: The module «w32time.dll» was loaded but the call to DllUnregisterServer failed with error code 0x80070005.

    • admin

      Имелось ввиду снова запускаем команду ‘sc query w32time’ что бы оценить в каком режиме работает служба w32time. Повторно выгружать dll не надо.

      • Obrigan

        Эмм… Что означают слова «Снова перезапускаем сервер»? Что надо сделать? Если я снова введу команду «sc query w32time», то я, очевидно, получу тот же самый ответ
        «SERVICE_NAME: w32time
        TYPE : 20 WIN32_SHARE_PROCESS
        STATE : 1 STOPPED
        (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE : 0 (0x0)
        SERVICE_EXIT_CODE : 0 (0x0)
        CHECKPOINT : 0x0
        WAIT_HINT : 0x0»

        • admin

          Это значит физически перезапускаем сервер или вводим эквивалентную этой операции команду в консоли: shutdown.exe /r /t 0

  • Obrigan

    «Решение оказалось нетривиальным:
    net stop w32time
    w32tm /unregister»
    И тут я тоже ловлю ошибку доступа. Даже от имени администратора… Ооййй Господи… Венда ты моя, венда. Венданутая. Как можно вообще априори получать ошибку доступа заходя в консоль от имени администратора?

    • admin

      Потому что в венде, системные службы и сервисы работают не из под учетной записи администратора, а из под более высоких привилегий таких как: system, local service (w32time), network service :)