Windows local time system time

Начиная с Windows XP основной командой по управлению настройками времени и проверкой синхронизации времени является команда W32tm, вместо ранее использовавшейся командой Net time. Команда W32tm имеет достаточно большой набор параметров, которые не всегда очевидны из описания. Ниже описаны варианты ее применения для поиска проблем с синхронизацией времени.
Итак, прежде чем чинить или изменять параметры службы времени Windows необходимо понимать, на какой машине и в какой инфрастурктуре проводятся работы. Например, если у  доменная сеть, то все устройства настраиваются на синхронизацию времени с контроллером домена Active Directory c FSMO ролью PDC, а контроллер домена Active Directory c FSMO ролью PDC настраивается на синхронизацию с локальным аппаратным источником точного времени или через Интернет.

Важно понимать, что если на сетевом оборудовании закрыт протокол NTP (123/UDP) или некорректно работает служба DNS (53/UDP), то в этом случае работа службы синхронизации времени будет нарушена.

Сброс настроек службы времени на значение «по умолчанию»

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

net stop w32time
w32tm /unregister 
w32tm /register 
net start w32time

Результат выполнения команд будет выглядить примерно как на скриншоте ниже:
Start stop w32tm

Проверка доступности источника времени

Прежде чем настраивать новый источник времени, рекомендуется предварительно проверить его доступность, это можно сделать при помощи команды:

w32tm /stripchart /computer:ru.pool.ntp.org /dataonly /samples:5

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

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

Чтобы установить операционной системе новый источник точого времени, достаточно выполнить команду:

w32tm /config /manualpeerlist:ru.pool.ntp.org /syncfromflags:manual /update

 

Типовые наборы параметров команды w32tm

w32tm /query /source — выводит источник времени, на который настроена служба Windows Time
w32tm /query /status — выводит текущий статус работы службы времени
w32tm /query /peers — выводит список серверов с которых выполняется синхронизация времени и их статус
w32tm /query /configuration — выводит текущую конфигурацию службы времени
w32tm /monitor — показывает, насколько отличается время на машине от контроллеров домена и на внешнем источнике времени, на который настроены контроллеры домена
w32tm /tz — выводит текущий часовой пояс
w32tm /config /syncfromflags:manual /manualpeerlist:ru.pool.ntp.org — настройка в качестве источника времени пула ntp-серверов ru.pool.ntp.org
w32tm /config /update — применение новых параметров указанных для службы времени
w32tm /resync — выполнение синхронизации времени
w32tm /unregister — отменяет регистрацию службы и удаляет настройки из реестра
w32tm /register — регистрирует службу и восстанавливает настройки по умолчанию

Все настройки службы Windows Time можно посмотреть в ветке реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\

The previous introduced the time handler function in the C run library. This article describes the time functions provided in the Windows SDK. There is no essential difference between the two time systems (in fact, the CRT time is implemented with Windows time. Of course, this is the VC implementation), which also provides the conversion between local time and UTC time. However, the TM time in the CRT corresponds to the system time (systemTIME), and the TIME_T time in the CRT corresponds to the file time (Filetime), that «special time» also becomes the January 1st, 1601 .

Of course, you must first figure out the filetime definitions to SystemTime.

[cpp]  view plain  copy

typedef struct _FILETIME {  
                          DWORD dwLowDateTime;  
                          DWORD dwHighDateTime;  
} FILETIME, *PFILETIME;  
typedef struct _SYSTEMTIME {  
                            WORD wYear;  
                            WORD wMonth;  
                            WORD wDayOfWeek;  
                            WORD wDay;  
                            WORD wHour;  
                            WORD wMinute;  
                            WORD wSecond;  
                            WORD wMilliseconds;  
} SYSTEMTIME, *PSYSTEMTIME;  

Comparison, it is obvious that FileTime is similar to Time_T, which is 64-bit integers, but FileTime is in units of 100 nanoseconds (NS). SystemTime is similar to TM, but there is more WmilliseConds. It can be seen that the SDK time provides higher precision than the CRT time. At the same time, SDK provides a richer function to handle time.

[c-sharp]  view plain  copy

void GetSystemTime(  
                   LPSYSTEMTIME lpSystemTime);  
void GetLocalTime(  
                  LPSYSTEMTIME lpSystemTime);  

These two functions get the current time in the form of SystemTime, but the getSystemTime function gets the current UTC time, getLocalTime gains the current local time, you can imagine, there is time difference in the two times. Similar to the conversion between TM and TIME_T in CRT, the SDK also provides two functions to convert the SystemTime time and the FileTime time.

[cpp]  view plain  copy

BOOL SystemTimeToFileTime(  
                          const SYSTEMTIME* lpSystemTime,  
                          LPFILETIME lpFileTime);  
BOOL FileTimeToSystemTime(  
                          const FILETIME* lpFileTime,  
                          LPSYSTEMTIME lpSystemTime);  

The function is named very self-evlantory, don’t say more.

SDK also provides two very interesting functions.

[cpp]  view plain  copy

BOOL LocalFileTimeToFileTime(  
                             const FILETIME* lpLocalFileTime,  
                             LPFILETIME lpFileTime);  
BOOL FileTimeToLocalFileTime(  
                             const FILETIME* lpFileTime,  
                             LPFILETIME lpLocalFileTime);  

The localfiletimetofiletime function converts the local Filetime time to the corresponding UTC’s filetime time. I think this function is only converted by minus local time to minus the time difference between the UTC time. For example, in the local time of the Eastern District, only the UTC time is converted to the corresponding UTC time, just minus local time to lose 8 * 60 * 60 * 1000. * 1000 * 10 (unit 100ns). Similarly, the FILETIMETOLOCALFILETIME function is converted to the UTC time to local time, which only will subtract time differences into a time difference.

Learn these features, let us speak with the code.

[cpp]  view plain  copy

#include <stdlib.h>  
#include <stdio.h>  
#include <time.h>  
#include <windows.h>  
  
  
int main()  
{  
    SYSTEMTIME      stLocal, stUTC, stUTC2;  
    FILETIME        ftLocal, ftUTC, ft;  
    ULARGE_INTEGER  uli;  
  
    GetLocalTime(&stLocal);  
    GetSystemTime(&stUTC);  
    printf("Local System Time(YYYY-MM-DD HH:MM:SS): %d-%d-%d %d:%d:%d/n", stLocal.wYear, stLocal.wMonth,  
        stLocal.wDay, stLocal.wHour, stLocal.wMinute, stLocal.wSecond);  
    printf("UTC System Time  (YYYY-MM-DD HH:MM:SS): %d-%d-%d %d:%d:%d/n", stUTC.wYear, stUTC.wMonth,  
        stUTC.wDay, stUTC.wHour, stUTC.wMinute, stUTC.wSecond);  
  
    SystemTimeToFileTime(&stLocal, &ftLocal);  
    uli.LowPart = ftLocal.dwLowDateTime;  
    uli.HighPart = ftLocal.dwHighDateTime;  
    printf("Local File Time: %llu/n", uli.QuadPart);  
  
    LocalFileTimeToFileTime(&ftLocal, &ftUTC);  
    uli.LowPart = ftUTC.dwLowDateTime;  
    uli.HighPart = ftUTC.dwHighDateTime;  
    printf("UTC File Time: %llu/n", uli.QuadPart);  
  
    FileTimeToSystemTime(&ftUTC, &stUTC2);  
    printf("UTC System Time2 (YYYY-MM-DD HH:MM:SS): %d-%d-%d %d:%d:%d/n", stUTC2.wYear, stUTC2.wMonth,  
        stUTC2.wDay, stUTC2.wHour, stUTC2.wMinute, stUTC2.wSecond);  
  
    return EXIT_SUCCESS;  
}  

The program output is as follows:

    

The code 13 line getLocalTime function Get the current local SystemTime time, 14 rows to get the corresponding UTC’s SystemTime time, such as the first two lines of the output result, the two differ than 8 hours (still written blog in the morning, to praise yourself …) .

The 20-line SystemTimetOfileTime function converts the local SystemTime time to the convenient calculated local FileTime form time, such as the third line of the output result.

25 rows LocalFileTimetOfileTime function converts local FileTime Time to the corresponding UTC’s filetime time, such as displayed in the fourth line of the output result. As mentioned earlier, if you subtract the number displayed in the third and four lines of the output, and divide 10 * 1000 * 1000 * 60 * 60, you will get 8, you can try it out Remember that FileTime is in 100 nanoseconds.

The last 30 line FileTimetosystemTime converts the filetime time to SystemTime time. It can be seen that the fifth line in the output is the same as the second line, which is necessary because both are the UTC time corresponding to the current local time.

In Windows, the base of all time is a function called GetSystemTimeAsFiletime.

  • It returns a structure that is capable of holding a time with 100ns resoution.
  • It is kept in UTC

The FILETIME structure records the number of 100ns intervals since January 1, 1600; meaning its resolution is limited to 100ns.

This forms our first function:

enter image description here

A 64-bit number of 100ns ticks since January 1, 1600 is somewhat unwieldy. Windows provides a handy helper function, FileTimeToSystemTime that can decode this 64-bit integer into useful parts:

record SYSTEMTIME {
   wYear: Word;
   wMonth: Word;
   wDayOfWeek: Word;
   wDay: Word;
   wHour: Word;
   wMinute: Word;
   wSecond: Word;
   wMilliseconds: Word;
}

Notice that SYSTEMTIME has a built-in resolution limitation of 1ms

Now we have a way to go from FILETIME to SYSTEMTIME:

enter image description here

We could write the function to get the current system time as a SYSTEIMTIME structure:

SYSTEMTIME GetSystemTime()
{
    //Get the current system time utc in it's native 100ns FILETIME structure
    FILETIME ftNow;
    GetSytemTimeAsFileTime(ref ft);

    //Decode the 100ns intervals into a 1ms resolution SYSTEMTIME for us
    SYSTEMTIME stNow;
    FileTimeToSystemTime(ref stNow);

    return stNow;
}

Except Windows already wrote such a function for you: GetSystemTime

enter image description here

Local, rather than UTC

Now what if you don’t want the current time in UTC. What if you want it in your local time? Windows provides a function to convert a FILETIME that is in UTC into your local time: FileTimeToLocalFileTime

enter image description here

You could write a function that returns you a FILETIME in local time already:

FILETIME GetLocalTimeAsFileTime()
{
   FILETIME ftNow;
   GetSystemTimeAsFileTime(ref ftNow);

   //convert to local
   FILETIME ftNowLocal
   FileTimeToLocalFileTime(ftNow, ref ftNowLocal);

   return ftNowLocal;
}

enter image description here

And lets say you want to decode the local FILETIME into a SYSTEMTIME. That’s no problem, you can use FileTimeToSystemTime again:

enter image description here

Fortunately, Windows already provides you a function that returns you the value:

enter image description here

Precise

There is another consideration. Before Windows 8, the clock had a resolution of around 15ms. In Windows 8 they improved the clock to 100ns (matching the resolution of FILETIME).

  • GetSystemTimeAsFileTime (legacy, 15ms resolution)
  • GetSystemTimeAsPreciseFileTime (Windows 8, 100ns resolution)

This means we should always prefer the new value:

enter image description here

You asked for the time

You asked for the time; but you have some choices.

The timezone:

  • UTC (system native)
  • Local timezone

The format:

  • FILETIME (system native, 100ns resolution)
  • SYTEMTIME (decoded, 1ms resolution)

Summary

  • 100ns resolution: FILETIME
    • UTC: GetSytemTimeAsPreciseFileTime (or GetSystemTimeAsFileTime)
    • Local: (roll your own)
  • 1ms resolution: SYSTEMTIME
    • UTC: GetSystemTime
    • Local: GetLocalTime

Для управлением службой времени в Windows используется команда win32tm.exe.

Посмотреть текущие настройки службы времени (выполнять из консоли с правами администратора):

w32tm /query /configuration

Screenshot_1

Посмотреть текущее состояние службы времени можно командой:

w32tm /query /status

Screenshot_2

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

Возможные две ситуации:

  • компьютер (сервер) входит в состав рабочей группы, т.е. это домашний компьютер или компьютер в небольшом офисе;
  • компьютер (сервер) входит в состав домена Active Directory.

Компьютер входит в состав рабочей группы.

В этом случае централизованного управления компьютером нет, он сам заботиться о синхронизации времени. На нем вывод команды
w32tm /query /configuration будет следующим.

time1

Обратите внимание на параметры:
SpecialPollInterval — интервал синхронизации в секундах, 604800 секунд — это неделя, т.е. синхронизация будет проводиться раз в неделю.
Type — 
определяет источник синхронизации времени. Возможные значени параметра Type:
          NoSync. Служба времени вообще не синхронизируется ни с чем.
          NTP. Служба времени синхронизируется с серверами указынными в параметре NtpServer. Типично для домашних компьютеров. Как на скриншоте вверху.
          NT5DS. Служба времени синхронизируется используя доменную иерархию (только для компьютеров — членов домена Active Directory). Как на самом первом скриншоте.
          AllSync. Служба времени использует все возможные механизмы для синхронизации.
NtpServer — указывает сервреры, с которым может синхроинизировать время компьютер.

Как можно видеть, по умолчанию интервал синхронизации 1 неделя, сервер time.windows.com, значение Type NTP.

Компьютер входит в состав домена Active Directory.

Домен AD —  иерархичная централизованная структура. Время на всех компьютерах в домене синхронизируется с контроллерами домена, а те в свою очередь синхронизируются с одним контроллером,  выполняющим FSMO роль PDC-Emulator. Синхронизация времени происходит раз в 1 час.

Как узнать какой контроллер — PDC-Emulator? Простейший способ — это выполнить команду из командной строки:

netdom /query fsmo

Windows_Server_2008_R2_SP1_How_to_Sync_Time_to_External_Time_Source_1

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

Делается это из командной строки с адмнистративными правами следующим образом (один из способов):

  1. Останавливаем службу времени W32Time:  C:\>net stop w32time
  2. Конфигурируем внешние источники синхронизации:
    C:\> w32tm /config /syncfromflags:manual /manualpeerlist:”0.ru.pool.ntp.org, 1.ru.pool.ntp.org, 2.ru.pool.ntp.org
  3. Делаем PDC-Emulator надежным источником для клиентов: C:\>w32tm /config /reliable:yes
  4. Запускаем службу времени w32time : C:\>net start w32time
  5. Служба должна начать синхронизироваться. Можно проверить как применились настройки уже знакомой командой: C:\>w32tm /query /configuration
  6. Проверяем Event Viewer на наличие ошибок, относящихся к службе времени.

На остальных компьютерах домена вывод команды C:\>w32tm /query /configuration будет следующим:

Screenshot_1

Если вы по какой-то причине поменяли конфигурацию службы времени на доменном компьютере, то чтобы вернуть настройки по-умолчанию выполните команду:
w32tm /config /syncfromflags:domhier  /update

Иногда при переносе роли PDC-Emulator на другой контроллер домена, старый продолжает считает считать себя сервером времени для всего домена, что может стать причиной ошибок в Системном логе, например таких:
«The time provider NtpClient was unable to find a domain controller to use as a time source. NtpClient will try again in 15 minutes.»
и других веселых глюков. «Успокоить» его можно такой-же командой с небольшим дополнением:

w32tm /config /syncfromflags:domhier /reliable:no /update

Несколько комментариев:

  1. В примере настройки контроллера домена мы останавливали службу времени, меняли настройки, потом запускали опять. Можно этого не делать, а использовать ключ /update, который принуждает службу времени считать конфигурацию заново.
  2. Для работы протокола NTP необходимо открыть порт UDP 123 на вход и на выход, на файерволе сервера и внешнем файерволе.
  3. Существует еще одна старая команда конфигурации времени net time, оставленная для совместимости, с меньшим количеством опций, которую все еще можно использовать.

В этой статье показано, как настроить службу времени Windows (NTP) в Windows Server 2016, чтобы она действовала как NTP-сервер для клиентских компьютеров домена.

Немного теории

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

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

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

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

Работа PDC эмулятора

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

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

Проверяем откуда сервер берет время

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

netdom query fsmo

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

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

w32tm /query /source

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

Local CMOS Clock
Free-Running System Clock

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

VM IC Time Synchronization Provider

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

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider

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

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

net stop w32time
net start w32time

Далее будет показана быстрая настройка NTP клиента на сервере и более расширенная.

Быстрая настройка NTP на Windows Server 2016

На вашем Windows Server 2016 нажмите кнопку Windows и введите: PowerShell, щелкните правой кнопкой мыши и выберите «Запуск от имени администратора».

Введите следующие команды

w32tm /config /manualpeerlist:ntp1.stratum2.ru /syncfromflags:manual /reliable:yes /update

reliable:(YES|NO) — определяет, является ли этот компьютер надежным источником времени


Stop-Service w32time
Start-Service w32time

Конечно, вы можете взять любой NTP-сервер, какой захотите. Я брал отсюда

Теперь проверьте, правильно ли настроен сервер времени на вашем сервере Server 2016, набрав:

w32tm /query /status

Расширенная настройка NTP на Windows Server 2016

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

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

ntp1.stratum2.ru,0x1 ntp2.stratum2.ru,0x1 ntp4.stratum2.ru,0x1

После чего в

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer

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

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

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

Значение «AnnounceFlags» может составлять сумму его флагов, например:

10=2+8 — NTP-сервер заявляет о себе как о надежном источнике времени при условии, что сам получает время из надежного источника либо является PDC корневого домена. Флаг 10 задается по умолчанию как для членов домена, так и для отдельно стоящих серверов.

5=1+4 — NTP-сервер всегда заявляет о себе как о надежном источнике времени. Например, чтобы заявить рядовой сервер (не контроллер домена) как надежный источник времени, нужен флаг 5;

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient

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

Вернемся в

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config

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

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

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

net stop w32time
net start w32time

После чего еще раз выполним команду чтобы показать источники времени и их состояние

w32tm /query /peers

выполняем еще команду

w32tm /query /source

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

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

Проверка работы NTP сервера (Живой ли внешний NTP сервер с которого мы берем время)

В Windows, нужно открыть командную строку и выполнить команду w32tm со специальными параметрами. Где ntp1.stratum2.ru — это NTP сервер

w32tm /stripchart /computer:ntp1.stratum2.ru /dataonly /samples:3

Ответ будет содержать локальное время, и разницу со временем на указанном NTP сервере. Например:

w32tm /stripchart /computer:ntp1.stratum2.ru /dataonly /samples:3
Tracking ntp1.stratum2.ru [88.147.254.230:123].
Collecting 3 samples.
The current time is 8/1/2022 3:48:56 PM.
15:48:56, +00.0098812s
15:48:58, -00.0036452s
15:49:00, +00.0005137s
PS C:\Users\Administrator>

На данном выводе видно что погрешность синхронизации составяляет +00.0098812s

Список команд w32tm

Основные команды конфигурации w32tm

  • w32tm /register — Регистрация и включение службы со стандартными параметрами.
  • w32tm /unregister — Отключение службы и удаление параметров конфигурации.
  • w32tm /monitor — Просмотр информации по домену.
  • w32tm /resync — Команда принудительной синхронизации с заданным в конфигурации источником.
  • w32tm /config /update — Применить и сохранить конфигурацию.
  • w32tm /config /syncfromflags:domhier /update – Задаем настройку синхронизации с контроллером домена.
  • w32tm /config /syncfromflags:manual /manualpeerlist:time.windows.com – задать конкретные источники синхронизации времени по протоколу NTP.

Просмотр параметров (/query)

  • w32tm /query /computer:<target>  — Информация о стутусе синхронизации определенной станции (если имя не указано — используется локальный компьютер).
  • w32tm /query /Source – Показать источник времени.
  • w32tm /query /Configuration — Вывод всех настроек службы времени Windows.
  • w32tm /query /Peers – Показать источники времени и их состояние.
  • w32tm /query /Status – Статус службы времени.
  • w32tm /query /Verbose – Подробный вывод всей информации о работе службы.

Также хотел бы поделится комментарием найденным на форуме

За настройку NTP через политики надо больно бить по рукам.
1. В доменной среде ничего не надо делать, контроллеры берут время с PDC, клиенты с контроллера.
2. Точности времени секунда в секунду не добьетесь.
Больная тема для меня. Предыдущие админы нахреначили синхронизацию чуть ли не в 10 разных политиках, до сих пор натыкаюсь и с матами удаляю.
Есть проблема с синхронизацией времени?
На всех контроллерах:
1. Убиваем службу w32time
2. Грохаем ветку реестра HKLM\System\CurrentControlSet\services\W32Time\
3. Регистрируем службу заново
4. Проверяем, что параметр TYPE в HKLM\System\CurrentControlSet\services\W32Time\Parameters равен NT5DS

Конфигурация NTP-сервера
Задаем тип синхронизации внутренних часов, на использование внешнего источника. 
NoSync — NTP-сервер не синхронизируется с каким либо внешним источником времени. Используются системные часы, встроенные в микросхему CMOS самого сервера.
NTP — NTP-сервер синхронизируется с внешними серверами времени, которые указаны в параметре реестра NtpServer.
NT5DS — NTP-сервер производит синхронизацию согласно доменной иерархии.
AllSync — NTP-сервер использует для синхронизации все доступные источники.

На PDC настраиваем синхронизацию с внешним поставщиком времени
5. И ничего б*ть не трогаем!=) Через какое-то время время стабилизируется.
Для понимания — время не импортируется, оно сверяется и подгоняется под эталон.
Не забываем, что для керберос разница в 5 минут не критична.
Хитрожопых кадровиков и безопасников, желающих снихронить свои убогие СКУДы с виндовыми тачками слать надолго и подальше.
Всё, я кончил =)
===
Полностью согласен. Время домена — не повод для торговли. Оно должно быть правильным, но в разумных пределах, плюс-минус несколько минут не являются критичными для общения. Хотя встречал домен, где для хождения кербероса админы сделали максимальную погрешность часов сутки. Всякое бывает, но «правильный» админ всегда найдет решение… или костыль…
===
ПК не знает и никак не узнает, что PDC сменился. Так что политика обязательно должна быть!
===
А ему не надо знать. Он кричит в сеть «PDC!!!», а те сами знают, кому из них отозваться. У них DNS для этого есть.




  • Windows loader пишет unsupported partition table
  • Windows loner xp sp3 2010
  • Windows loader что это за программа
  • Windows longhorn sounds for windows 10
  • Windows loader windows 7 ultimate