Включение синхронизации внутренних часов с внешним источником:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
"Type"="NTP"

или:

w32tm /config /syncfromflags:manual



Объявление NTP-сервера в качестве надежного:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]
"AnnounceFlags"=dword:0000000a

или:

w32tm /config /reliable:yes

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

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer]
"Enabled"=dword:00000001

Задание списка внешних источников для синхронизации:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters]
"NtpServer"="time.nist.gov,0x1 time.windows.com,0x1 ru.pool.ntp.org,0x1"

или:

w32tm /config /manualpeerlist:"time.nist.gov,0x1 time.windows.com,0x1 ru.pool.ntp.org,0x1"

Флаг 0×8 на конце означает, что синхронизация должна происходить в режиме клиента NTP, через предложенные этим сервером интервалы времени. Для того, чтобы задать свой интервал синхронизации, необходимо использовать флаг 0×1.

Остальные флаги:

  • 0x1 - Instead of following the NTP specification, wait for the interval specified in the SpecialPollInterval entry before attempting to recontact this time source. Setting this flag decreases network usage, but it also decreases accuracy.
  • 0x2 - Use this time source only as a fallback. If all time sources that are not fallbacks have failed, then the system selects one fallback time source at random and uses it.
  • 0x4 - Set the local computer to operate in symmetric active mode in the association with this source.
  • 0x8 - Set the local computer to operate in client mode in the association with this source.

Время в секундах между опросами источника синхронизации, по умолчанию 900с = 15мин. Работает только для источников, помеченных флагом 0×1. Задание интервала синхронизации с внешним источником:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient]
"SpecialPollInterval"=dword:00000384

Максимальная положительная и отрицательная коррекция времени (разница между внутренними часами и источником синхронизации) в секундах, при превышении которой синхронизация не происходит. Рекомендую значение 0xFFFFFFFF, при котором коррекция сможет производиться всегда. Установка минимальной положительной и отрицательной коррекции:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]
"MaxPosPhaseCorrection"=dword:FFFFFFFF
"MaxNegPhaseCorrection"=dword:FFFFFFFF

Все необходимое одной строкой:

w32tm.exe /config /manualpeerlist:"time.nist.gov,0x1 time.windows.com,0x1 pool.ntp.org,0x1" /syncfromflags:manual /reliable:yes /update
Готовый скрипт настройки синхронизации времени с внешними источниками
```powershell
<#
set-ntp_sync.ps1

Переделан: Павел Сатин <pslater.ru@gmail.com>
11.01.2017
Description: Настройка синхронизации времени на контролере домена
#>


$registryPathConfig = "HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\Config"

$NameAnnounceFlags = "AnnounceFlags"
$ValueAnnounceFlags = "10"

New-ItemProperty -Path $registryPathConfig -Name $NameAnnounceFlags -Value $ValueAnnounceFlags `
    -PropertyType DWORD -Force | Out-Null

$NamePosPhase = "MaxPosPhaseCorrection"
$ValuePosPhase = "4294967295"

New-ItemProperty -Path $registryPathConfig -Name $NamePosPhase -Value $ValuePosPhase `
    -PropertyType DWORD -Force | Out-Null

$NameNegPhase = "MaxNegPhaseCorrection"
$ValueNegPhase = "4294967295"

New-ItemProperty -Path $registryPathConfig -Name $NameNegPhase -Value $ValueNegPhase `
    -PropertyType DWORD -Force | Out-Null

$registryPathParameters = "HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\Parameters"

$NameNtpServer = "NtpServer"
$ValueNtpServer = "time.nist.gov,0x1 time.windows.com,0x1 ru.pool.ntp.org,0x1"

New-ItemProperty -Path $registryPathParameters -Name $NameNtpServer -Value $ValueNtpServer `
    -PropertyType String -Force | Out-Null

$NameType = "Type"
$ValueType = "NTP"

New-ItemProperty -Path $registryPathParameters -Name $NameType -Value $ValueType `
    -PropertyType String -Force | Out-Null

$registryPathNtpClient = "HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient"

$NamePollInterval = "SpecialPollInterval"
$ValuePollInterval = "900"

New-ItemProperty -Path $registryPathNtpClient -Name $NamePollInterval -Value $ValuePollInterval `
    -PropertyType DWORD -Force | Out-Null


Restart-Service W32Time


$w32tmOutput = & 'w32tm' '/resync'

$w32tmOutput

```

Для синхронизации клиентов на Windows сервере должен быть открыт UDP порт 123.

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

Синхронизацию времени необходимо настроить на всех контролерах домена. Либо синхронизировать один контролер с внешним источниками, а остальные с первым.

Полезные команды

  • Применение внесенных в конфигурацию службы времени изменений - w32tm /config /update
  • Принудительная синхронизация от источника - w32tm /resync /rediscover
  • Отображение состояния синхронизации контроллеров домена в домене - w32tm /monitor
  • Отображение текущих источников синхронизации и их статуса - w32tm /query /peers