Windows 10 отключить синхронизацию времени с доменом
По умолчанию, компьютеры под управлением операционной системы 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
Дело в том, что по умолчанию виртуальные машины Hyper-V / VMWare синхронизируют свое время с хостовым гипервизором, в не зависимости от настроек службы времени внутри ВМ. В результате этого может оказаться довольно странная ситуация, когда хост Hyper-V является членом домена AD и синхронизирует время с контроллером домена, который, в свою очередь, является виртуальной машиной и синхронизирован с хостом (рекурсия?!).
Чтобы этого избежать, для контроллеров виртуальных доменов вы должны отключить синхронизацию времени с хостом. Есть два способа сделать это.
То же самое на сервере Hyper-V можно сделать с помощью консоли PowerShell. Например, с помощью этой команды можно получить статус службы синхронизации времени для виртуальной машины:
Get-VMIntegrationService -VMName dc1 -Name ‘Time synchronization’
А следующей командой можно отключить синхронизацию:
Get-VMIntegrationService -VMName dc1 -Name ‘Time synchronization’ | Disable-VMIntegrationService
Если в качестве хоста \виртуализации вы используете VMWare ESXi, вы можете отключить синхронизацию времени с хостом в настройках виртуальной машины.
ВМ->Edit Settings -> вкладка VM Options -> Снимите галку “Synchronize guest time with host”
Либо то же самое действие, но из командной строки:
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0
Кроме того, рекомендуется выполнить следующие настройки
- Изменить период опроса сервера NTP reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient /v SpecialPollInterval /t reg_dword /d 900
- Настроить правильный ответ службы времени на нестандартное изменение времени более чем на 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
На всех остальных DC в AD вы должны дополнительно выполнить команду:
w32tm/config /syncfromflags:DOMHIER /update
Это заставит службу времени выбрать PDC-эмулятор в качестве источника в соответствии с иерархией домена. Таким образом, мы настроим правильную схему синхронизации времени в домене при использовании виртуальных DC.
Сегодня речь пойдет о некоторых особенностях настройки службы времени на виртуальных контроллерах домена. Обычно схема синхронизации времени в домене Active Directory выглядит следующим образом:
• Все рядовые сервера и рабочие станции синхронизируют свое время с ближайшим доступным контроллером домена;
• Все контроллеры домена синхронизируются с контроллером, которому принадлежит роль PDC-эмулятор;
• PDC-эмулятор является главным источником времени в домене и поэтому должен быть настроен на синхронизацию с надежным внешним источником времени.
Однако если проверить текущий источник времени, то можно довольно сильно удивиться, т.к. в качестве источника выступает непонятная сущность с названием VM IC Time Synchronization Provider.
Дело в том, что по умолчанию виртуальные машины Hyper-V синхронизируют свое время с хостом, причем вне зависимости от настроек службы времени внутри машины. В результате может получиться довольно странная ситуация, когда хост является членом домена и синхронизируется с контроллером, который в свою очередь является виртуальной машиной и синхронизируется с хостом.
Для того, чтобы избежать подобной ситуации, для виртуальных контроллерах домена необходимо отключить синхронизацию времени с хостом. Сделать это можно двумя способами.
Или то же самое с помощью PowerShell. Например такой командой выведем состояние службы для ВМ:
Get-VMIntegrationService -VMName SRV1 -Name ″Time synchronization″
А такой отключим синхронизацию:
Get-VMIntegrationService -VMName SRV1 -Name ″Time synchronization″ | Disable-VMIntegrationService
Эту настройку можно произвести из командной строки, выполнив команду:
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 может являться только один контроллер в каждом домене. С ним синхронизируют время остальные контроллеры домена. Доменные ПК и рядовые серверы сверяют часы с ближайшим контроллером домена.
Сам эмулятор PDC в качестве источника точного времени может использовать либо аппаратные часы материнской платы, либо внешний источник точного времени, при нахождении в виртуальной среде также может быть использовано время хоста виртуализации.
О последней поговорим более подробно. Раньше все было довольно просто, источником времени в домене обычно служили аппаратные часы эмулятора PDC, ну отстали или убежали на пару минут, в конце концов можно и подвести. Когда добавилось требование взаимодействия с внешними системами критичными к точному времени (например, использующих криптографию), то в качестве источника времени стал выступать внешний сервер. От него получал время эмулятор PDC, с ним синхронизировались контроллеры, а от них точное время расходилось на остальных участников домена.
С приходом виртуализации все изменилось, появился еще один источник времени - время хоста виртуализации. Многие гипервизоры по умолчанию имеют включенной настройку синхронизации времени гостевых систем и при попадании в виртуальную среду контроллера может возникнуть следующая коллизия: контроллер синхронизирует время с хостом, но сам хост, являясь членом домена, в свою очередь синхронизируется с контроллером.
Еще хуже, если в виртуальную среду попадает эмулятор PDC, в силу особенностей таймера виртуальных машин, время внутри может достаточно сильно плавать, поэтому виртуальный эмулятор PDC всегда должен синхронизировать время с внешним источником, а синхронизация времени с хостом должна быть отключена, последнее касается и всех остальных виртуальных членов домена.
Давайте перейдем от теории к практике. Начнем с того, что выясним кто из контроллеров является эмулятором PDC и эталоном времени для домена. Это можно сделать на любом контроллере домена командой:
В выводе будут показаны все хозяева операций, нас интересует только эмулятор PDC.
Затем перейдем на указанный контроллер и узнаем источник времени для него, для этого выполните команду:
Если в выводе вы увидите:
то источником времени являются аппаратные часы. А если там будет:
то вы имеете дело с виртуальной машиной, которая синхронизирует время с хостом.
и установите для параметра Enabled значение 0.
После данного изменения следует перезапустить Службу времени Windows или перезагрузить компьютер.
Следующим шагом будет настройка нашего эмулятора PDC на работу с внешними источниками точного времени. Все изменения также будут вноситься через реестр. Прежде всего изменим тип сервера на NTP, для этого откроем ветку
и для параметра Type укажем строковое значение NTP. А для параметра NtpServer зададим адреса серверов точного времени, после каждого из которых, через запятую укажем 0x8, если мы хотим работать как стандартный NTP-клиент или 0x1 если будем использовать собственные параметры, например:
Параметр Enabled установим в значение 1.
Затем перейдем в
и установим для параметра AnnounceFlags значение A.
Следующие параметры будут работать, только если мы при указании серверов добавили 0x1, иначе будут использоваться настройки, предлагаемые сервером. Чтобы задать период синхронизации откройте ветку
и для параметра SpecialPollInterval укажите десятичное значение в секундах.
и зададим максимальное время опережения и отставания часов, после которых синхронизация производиться не будет. Для этого используются параметры MaxPosPhaseCorrection (опережение) и MaxNegPhaseCorrection (отставание) для которых также следует задать десятичное значение в секундах. По умолчанию стоит 48 часов. Это значит, что если время на эмуляторе PDC уйдет от точного источника более чем на 48 часов в любую сторону, то синхронизация производиться не будет.
Если вы хотите, чтобы время синхронизировалось всегда, то установите в оба параметра шестнадцатеричное значение FFFFFFFF.
Выполнив настройки перезапустите Службу времени Windows, это также можно сделать в командной строке:
После чего еще раз выполним
и убедимся, что источником времени для эмулятора PDC является внешний сервер.
Затем выполним данную команду на рядовых контроллерах домена, в качестве источника времени там должен быть указан эмулятор PDC, и на обычных ПК, где в выводе будет присутствовать любой из контроллеров домена. Обязательно выполните контроль для виртуальных машин, чтобы быть уверенным, что они используют время домена, а не хоста виртуализации.
Читайте также: