Windows 10 отключить синхронизацию времени с доменом

Обновлено: 03.07.2024

Отключение синхронизации времени в Windows

По умолчанию, компьютеры под управлением операционной системы Windows постоянно синхронизируют время с NTP серверами, с целью поддержания верных настроек времени на компьютере. На компьютерах входящих в домен Active Directory, в роли NTP серверов выступают контроллеры домена. За синхронизацию времени отвечает служба времени Windows, она же W32Time.

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

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

Отключение синхронизации времени через командную строку

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

А вот команда на включение синхронизации времени зависит от того, входит ли Ваш компьютер в домен Active Directory, или нет.
Если компьютер не входит в домен, то команда на включение синхронизации времени выглядит следующим образом:

Если же компьютер находится в домене Active Directory, то команда уже имеет такой вид:

Отключение синхронизации времени через редактор реестра

За параметры работы службы времени Windows, отвечает раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters , а за режим синхронизации времени отвечает параметр Type. Для того, чтобы отключить синхронизацию времени, необходимо задать ему значение NoSync .

Для включения синхронизации для компьютера с NTP серверами, не входящего в домен Active Directory, нужно задать значение параметра NTP . Для компьютеров в домене Active Directory, включение синхронизации времени с контроллером домена задается значением NT5DS .

Поскольку командная строка и PowerShell имеют свои удобные способы редактирования реестра, то приведем их ниже

Сегодня мы поговорим о некоторых особенностях настройки службы времени на виртуализированных контроллерах домена. Как правило, схема синхронизации времени в домене Active Directory выглядит следующим образом:

  • Контроллер домена с FSMO ролью эмулятора PDC является основным источником времени в домене AD и синхронизируется с внешним поставщиком точного времени.
  • Все остальные контроллеры домена синхронизированы с контроллером, содержащим роль эмулятора PDC
  • Все рядовые сервера домена и рабочие станции синхронизируют время с ближайшим контроллером домена.

Однако, если попытаться вывести текущего поставщика времени , неожиданно можно увидеть странный источник времени с именем VM IC Time Synchronization Provider.

w32tm / query / source

VM IC Time Synchronization Provider

Дело в том, что по умолчанию виртуальные машины Hyper-V / VMWare синхронизируют свое время с хостовым гипервизором, в не зависимости от настроек службы времени внутри ВМ. В результате этого может оказаться довольно странная ситуация, когда хост Hyper-V является членом домена AD и синхронизирует время с контроллером домена, который, в свою очередь, является виртуальной машиной и синхронизирован с хостом (рекурсия?!).
Чтобы этого избежать, для контроллеров виртуальных доменов вы должны отключить синхронизацию времени с хостом. Есть два способа сделать это.

hyper-v Time synchronization

То же самое на сервере Hyper-V можно сделать с помощью консоли PowerShell. Например, с помощью этой команды можно получить статус службы синхронизации времени для виртуальной машины:

Get-VMIntegrationService -VMName dc1 -Name ‘Time synchronization’

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

Get-VMIntegrationService -VMName dc1 -Name ‘Time synchronization’ | Disable-VMIntegrationService

Disable-VMIntegrationService

Если в качестве хоста \виртуализации вы используете VMWare ESXi, вы можете отключить синхронизацию времени с хостом в настройках виртуальной машины.

ВМ->Edit Settings -> вкладка VM Options -> Снимите галку “Synchronize guest time with host”

Synchronize guest time with host

VMICTimeProvider enabled

Либо то же самое действие, но из командной строки:

reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0

VMICTimeProvider

Кроме того, рекомендуется выполнить следующие настройки

  1. Изменить период опроса сервера NTP reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t reg_dword /d 900
  2. Настроить правильный ответ службы времени на нестандартное изменение времени более чем на 52 часа reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config /v MaxNegPhaseCorrection /t reg_dword 0xFFFFFFFF

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

net stop w32time
net start w32time
w32tm /resync /force

w32tm /resync /force

На всех остальных DC в AD вы должны дополнительно выполнить команду:

w32tm/config /syncfromflags:DOMHIER /update

Это заставит службу времени выбрать PDC-эмулятор в качестве источника в соответствии с иерархией домена. Таким образом, мы настроим правильную схему синхронизации времени в домене при использовании виртуальных DC.

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

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

настройки службы времени

Однако если проверить текущий источник времени, то можно довольно сильно удивиться, т.к. в качестве источника выступает непонятная сущность с названием VM IC Time Synchronization Provider.

вывод текущего источника времени

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

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

отключение синхронизации с помощью Hyper-V manager

Или то же самое с помощью PowerShell. Например такой командой выведем состояние службы для ВМ:

Get-VMIntegrationService -VMName SRV1 -Name ″Time synchronization″

А такой отключим синхронизацию:

Get-VMIntegrationService -VMName SRV1 -Name ″Time synchronization″ | Disable-VMIntegrationService

отключение синхронизации с помощью powershell

отключение синхронизации времени с помощью правки реестра

Эту настройку можно произвести из командной строки, выполнив команду:

reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0

добавление параметра реестра

После отключения синхронизации любым из описанных способов необходимо хорошенько пнуть службу времени, чтобы она перестроилась на новый источник. На контроллере домена с ролью PDC-emulator необходимо рестартовать службу и запустить синхронизацию:

net stop w32time & net start w32time
w32tm /resync /force

рестарт службы времени

На остальных контроллерах дополнительно надо выполнить команду:

w32tm/config /syncfromflags:DOMHIER /update

Это заставит службу времени выбрать в качестве источника PDC-emulator согласно доменной иерархии. Таким образом мы получим правильную схему синхронизации времени в домене.

Синхронизация времени Active Directory с внешним источником

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

Прежде всего вспомним, как происходит синхронизация времени в Active Directory. В качестве эталона времени выступает контроллер, владеющий ролью эмулятора PDC. Это FSMO-роль и эмулятором PDC может являться только один контроллер в каждом домене. С ним синхронизируют время остальные контроллеры домена. Доменные ПК и рядовые серверы сверяют часы с ближайшим контроллером домена.

ad-pdc-ntp-001.jpg

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

О последней поговорим более подробно. Раньше все было довольно просто, источником времени в домене обычно служили аппаратные часы эмулятора PDC, ну отстали или убежали на пару минут, в конце концов можно и подвести. Когда добавилось требование взаимодействия с внешними системами критичными к точному времени (например, использующих криптографию), то в качестве источника времени стал выступать внешний сервер. От него получал время эмулятор PDC, с ним синхронизировались контроллеры, а от них точное время расходилось на остальных участников домена.

С приходом виртуализации все изменилось, появился еще один источник времени - время хоста виртуализации. Многие гипервизоры по умолчанию имеют включенной настройку синхронизации времени гостевых систем и при попадании в виртуальную среду контроллера может возникнуть следующая коллизия: контроллер синхронизирует время с хостом, но сам хост, являясь членом домена, в свою очередь синхронизируется с контроллером.

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

Давайте перейдем от теории к практике. Начнем с того, что выясним кто из контроллеров является эмулятором PDC и эталоном времени для домена. Это можно сделать на любом контроллере домена командой:

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

ad-pdc-ntp-002.jpg

Затем перейдем на указанный контроллер и узнаем источник времени для него, для этого выполните команду:

Если в выводе вы увидите:

то источником времени являются аппаратные часы. А если там будет:

то вы имеете дело с виртуальной машиной, которая синхронизирует время с хостом.

и установите для параметра Enabled значение 0.

ad-pdc-ntp-003.jpg

После данного изменения следует перезапустить Службу времени Windows или перезагрузить компьютер.

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

и для параметра Type укажем строковое значение NTP. А для параметра NtpServer зададим адреса серверов точного времени, после каждого из которых, через запятую укажем 0x8, если мы хотим работать как стандартный NTP-клиент или 0x1 если будем использовать собственные параметры, например:

Параметр Enabled установим в значение 1.

Затем перейдем в

и установим для параметра AnnounceFlags значение A.

Следующие параметры будут работать, только если мы при указании серверов добавили 0x1, иначе будут использоваться настройки, предлагаемые сервером. Чтобы задать период синхронизации откройте ветку

и для параметра SpecialPollInterval укажите десятичное значение в секундах.

и зададим максимальное время опережения и отставания часов, после которых синхронизация производиться не будет. Для этого используются параметры MaxPosPhaseCorrection (опережение) и MaxNegPhaseCorrection (отставание) для которых также следует задать десятичное значение в секундах. По умолчанию стоит 48 часов. Это значит, что если время на эмуляторе PDC уйдет от точного источника более чем на 48 часов в любую сторону, то синхронизация производиться не будет.

Если вы хотите, чтобы время синхронизировалось всегда, то установите в оба параметра шестнадцатеричное значение FFFFFFFF.

Выполнив настройки перезапустите Службу времени Windows, это также можно сделать в командной строке:

После чего еще раз выполним

и убедимся, что источником времени для эмулятора PDC является внешний сервер.

ad-pdc-ntp-004.jpg

Затем выполним данную команду на рядовых контроллерах домена, в качестве источника времени там должен быть указан эмулятор PDC, и на обычных ПК, где в выводе будет присутствовать любой из контроллеров домена. Обязательно выполните контроль для виртуальных машин, чтобы быть уверенным, что они используют время домена, а не хоста виртуализации.

Читайте также: