Windows stop system time

SYSTEMTIME structure (minwinbase.h)

Specifies a date and time, using individual members for the month, day, year, weekday, hour, minute, second, and millisecond. The time is either in coordinated universal time (UTC) or local time, depending on the function that is being called.

Syntax

Members

The year. The valid values for this member are 1601 through 30827.

The month. This member can be one of the following values.

Value Meaning
1 January
2 February
3 March
4 April
5 May
6 June
7 July
8 August
9 September
10 October
11 November
12 December

The day of the week. This member can be one of the following values.

Value Meaning
0 Sunday
1 Monday
2 Tuesday
3 Wednesday
4 Thursday
5 Friday
6 Saturday

The day of the month. The valid values for this member are 1 through 31.

The hour. The valid values for this member are 0 through 23.

The minute. The valid values for this member are 0 through 59.

The second. The valid values for this member are 0 through 59.

The millisecond. The valid values for this member are 0 through 999.

Remarks

The SYSTEMTIME does not check to see if the date represented is a real and valid date. When working with this API, you should ensure its validity, especially in leap year scenarios. See leap day readiness for more information.

It is not recommended that you add and subtract values from the SYSTEMTIME structure to obtain relative times. Instead, you should

  • Convert the SYSTEMTIME structure to a FILETIME structure.
  • Copy the resulting FILETIME structure to a ULARGE_INTEGER structure.
  • Use normal 64-bit arithmetic on the ULARGE_INTEGER value.

The system can periodically refresh the time by synchronizing with a time source. Because the system time can be adjusted either forward or backward, do not compare system time readings to determine elapsed time. Instead, use one of the methods described in Windows Time.

Examples

The following example demonstrates the difference between the time values retrieved by the GetSystemTime and GetLocalTime functions.

Команда W32TM – управление службой времени в Windows

Утилита командной строки w32tm.exe предназначена для удаления или установки службы времени Windows W32Time и управления ею на локальном или удаленном компьютере. Служба времени Windows ( W32Time ) предназначена для синхронизации даты и времени на компьютерах в локальной или глобальной сети. Если служба времени не установлена или отключена, синхронизация времени невозможна.

Служба W32Time обеспечивает функционирование как клиентской, так и серверной части программного обеспечения системы и один и тот же компьютер может быть одновременно и клиентом и сервером NTP (NTP — Network Time Protocol). Протокол NTP использует порт 123/UDP, что нужно учитывать при настройке брандмауэра системы.

Алгоритм функционирования службы времени немного отличается в зависимости от того, является ли компьютер членом домена, или нет. Компьютеры, не входящие в домен используют синхронизацию часов с внешним источником, а входящие – с внутренним NTP-сервером, которым является контроллер домена с ролью PDC-эмулятора (эмулятора первичного контроллера домена). При этом, сам сервер NTP синхронизируется с внешним источником времени. Схема с контроллером домена реализуется при развертывании домена Active Directory и не требует какого-либо ручного вмешательства, более того, такое вмешательство чревато непредвиденными проблемами с функционированием всей инфраструктуры. Для компьютеров же, не входящих в домен, некоторые изменения настроек очень даже не помешают. В частности, во всех актуальных версиях Windows (Windows 7 и старше), предусмотрено выполнение планировщиком заданий стандартной задачи синхронизации времени с внешним источником SynchronizeTime , которая настроена далеко не самым оптимальным образом. Кроме того, некоторые параметры самой службы времени, установленные по умолчанию, не обеспечивают надежную автоматическую синхронизацию часов системы с внешним сервером в Интернет.

Читайте также:  Как удалить контрольные точки восстановления windows 10

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

w32tm [/? | /register | /unregister ]

? — вывод справочной информации по использованию команды.

register — установка службы времени Windows и добавление ее стандартной конфигурации в реестр.

unregister — удаление службы времени Windows и всех параметров конфигурации из реестра.

Параметры службы времени хранятся в ключе реестра

Соответственно, параметры службы времени можно менять не только с помощью команды w32tm , но и правкой реестра. В этом случае, применение измененных параметров обеспечивается командой обновления конфигурации
w32tm /config /update
или перезапуском службы W32Time.

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

w32tm /monitor [/domain: ] [/computers: [, [, . ]]] [/threads: ] [/ipprotocol: ] [/nowarn]

domain — указывает наблюдаемый домен. Если имя домена не задано, или не заданы ни домен, ни компьютеры, используется текущее имя домена по умолчанию. Этот параметр может использоваться несколько раз.

computers — наблюдение за перечисленными в списке компьютерами. Имена компьютеров разделяются запятыми, без пробелов. Если имя имеет префикс ‘*’, оно считается именем эмулятора первичного контроллера домена в Active Directory (AD PDC). Этот параметр может использоваться несколько раз.

threads — количество одновременно наблюдаемых компьютеров. Стандартное значение по умолчанию — 3. Допустимый диапазон — от 1 до 50.

ipprotocol — версия IP-протокола (4 или 6), которая будет использоваться для наблюдения. По умолчанию будет использоваться протокол IP любой доступной версии.

nowarn — не отображать сообщения с предупреждениями.

Параметры командной строки для временных преобразований:

w32tm /ntte время_NT

— Преобразует системное время NT в интервалах (10^-7) с начиная с 00 часов 1 января 1601 г. в понятный формат.

w32tm /ntpte время NTP — Преобразует время NTP в интервалах (2^-32) с начиная с 00 часов 1 января 1900 г. в понятный формат.

Параметры для выполнения принудительной синхронизации даты и времени с внешним источником:

w32tm /resync [/computer: ] [/nowait] [/rediscover] [/soft]

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

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

nowait — не ожидать завершения повторной синхронизации, выполнять возврат немедленно. В противном случае ожидать завершения повторной синхронизации перед возвратом.

rediscover — повторно определить конфигурацию сети и повторно обнаружить сетевые источники, а затем повторно синхронизировать.

soft — повторно синхронизировать, используя существующую статистику ошибок. Данный параметр в современных ОС не используется и предоставлен для обеспечения совместимости.

В справочной информации отсутствует описание параметра /force , который предназначен для выполнения синхронизации времени даже если отклонение показаний аппаратных часов и источника превышает установленное отклонение ( по умолчанию – 15 часов).

w32tm /stripchart /computer:компьютер [/period:обновление] [/dataonly] [/samples:число] [/packetinfo] [/ipprotocol: ]

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

period:обновление — интервал между измерениями (в секундах). Значение по умолчанию — 2 с.

dataonly — отображать только данные, без диаграмм.

samples:число — собрать число показаний, затем остановиться. Если не указано, сбор данных продолжается, пока не будут нажаты клавиши CTRL+C или CTRL+Break.

packetinfo — напечатать ответное сообщение NTP-пакета. ipprotocol — задать версию протокола IP, который нужно использовать. По умолчанию применяется любой доступный протокол.

w32tm /config [/computer:компьютер] [/update] [/manualpeerlist:узлы] /syncfromflags:источник] [/LocalClockDispersion:секунды] [/reliable:(YES|NO)] [/largephaseoffset:миллисекунды]

computer:компьютер — настраивает конфигурацию указанного компьютера. Если параметр не задан, по умолчанию используется локальный компьютер.

update — уведомляет службу времени, что конфигурация изменилась, чтобы изменения вступили в силу.

manualpeerlist:узлы — задает вручную список DNS-имен и (или) IP-адресов, разделенных пробелами. При указании нескольких узлов этот параметр должен быть заключен в кавычки.

syncfromflags:источник — определяет, с какими источниками должен синхронизироваться NTP-клиент. источник должен быть списком из следующих ключевых слов, разделенных запятыми (без учета регистра):
&nbsp MANUAL — синхронизация с узлами из заданного вручную списка.
&nbsp DOMHIER — синхронизация с контроллером домена Active Directory в доменной иерархии.
&nbsp NO — без синхронизации.
&nbsp ALL — синхронизация как с узлами, заданными вручную, так и с узлами домена.

Читайте также:  Windows вывод системных переменных

LocalClockDispersion:секунды — настраивает точность внутренних часов, с которой служба w32time будет работать, если не сможет получить время из своих настроенных источников.

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

&nbsp YES — этот компьютер является надежной службой времени.
&nbsp NO — этот компьютер не является надежной службой времени.

largephaseoffset:миллисекунды — устанавливает разницу между локальным и сетевым временем, которую служба w32time будет считать максимальной.

w32tm /tz — Отображает текущие параметры часового пояса.

w32tm /dumpreg [/subkey:раздел] [/computer:компьютер] — Отображает значения, связанные с данным разделом реестра.

Раздел по умолчанию: HKLM\System\CurrentControlSet\Services\W32Time (корневой раздел службы времени).

subkey:раздел — отображает значения, связанные с подразделом раздел раздела по умолчанию.

computer:компьютер — запрашивает параметры реестра для компьютера компьютер.

w32tm /query [/computer:компьютер] [/verbose] — Отображает сведения о службе времени Windows на компьютере компьютер .

Если параметр не указан, по умолчанию используется локальный компьютер.

source — отобразить источник времени.

configuration — отобразить конфигурацию во время выполнения и происхождение параметра. В режиме подробного протоколирования отобразить также незаданные или неиспользованные параметры.

peers — отобразить список узлов и их состояние.

status — отобразить состояние службы времени Windows.

verbose — установить режим подробного протоколирования для вывода дополнительных сведений.

w32tm /debug > — Включает или отключает частный журнал службы времени Windows на локальном компьютере.

disable — отключить частный журнал.

enable — включить частный журнал.

file:имя — указать абсолютное имя файла.

size:байт — указать максимальный размер для циклического файла журнала.

entries:значение — список флагов, заданных номером и разделенных запятыми, указывающих тип сведений, которые должны заноситься в журнал. Допустимые номера: 0–300. Кроме одиночных номеров, допустимы диапазоны номеров, например 0–100,103,106. Значение 0–300 используется для занесения в журнал всех сведений.

truncate — усечь файл, если он существует.

Примеры использования команды w32tm

Как правило, служба времени Windows устанавливается с типом запуска Вручную и запускается по необходимости. Если служба времени остановлена, то управление ею с помощью команды w32tm невозможно. Для запуска, останова или проверки состояния службы можно использовать команду sc

sc query w32time — отобразить состояние службы времени Windows

sc \\192.168.0.8 query w32time — отобразить состояние службы времени на компьютере с адресом 192.168.0.8

sc start w32time — запустить службу времени Windows.

sc \\192.168.0.8 start w32time — запустить службу времени Windows на компьютере с адресом 192.168.0.8 .

sc stop w32time — остановить службу времени Windows.

Кроме утилиты sc.exe можно использовать оснастку Службы (services.msc) панели управления или классические команды net stop и net start

net stop w32time
net start w32time

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

w32tm /? — отобразить подсказку по использованию.

w32tm /query /configuration — отобразить конфигурацию службы времени Windows на локальном компьютере.

w32tm /query /configuration /computer:\\WIN10 — отобразить конфигурацию службы времени на компьютере с именем WIN10

Пример отображаемой информации:

EventLogFlags: 2 (Локально)
AnnounceFlags: 10 (Локально)
TimeJumpAuditOffset: 28800 (Локально)
MinPollInterval: 10 (Локально)
MaxPollInterval: 15 (Локально)
MaxNegPhaseCorrection: 54000 (Локально)
MaxPosPhaseCorrection: 54000 (Локально)
MaxAllowedPhaseOffset: 1 (Локально)
FrequencyCorrectRate: 4 (Локально)
PollAdjustFactor: 5 (Локально)
LargePhaseOffset: 50000000 (Локально)
SpikeWatchPeriod: 900 (Локально)
LocalClockDispersion: 10 (Локально)
HoldPeriod: 5 (Локально)
PhaseCorrectRate: 1 (Локально
) UpdateInterval: 360000 (Локально)
FileLogName: C:\User1\w32tmlog.log (Локально)
FileLogEntries: 0-300 (Локально)
FileLogSize: 100000 (Локально)

NtpClient (Локально)
DllName: C:\WINDOWS\SYSTEM32\w32time.DLL (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)
AllowNonstandardModeCombinations: 1 (Локально)
ResolvePeerBackoffMinutes: 15 (Локально)
ResolvePeerBackoffMaxTimes: 7 (Локально)
CompatibilityFlags: 2147483648 (Локально)
EventLogFlags: 1 (Локально)
LargeSampleSkew: 3 (Локально)
SpecialPollInterval: 604800 (Локально
) Type: NTP (Локально)
NtpServer: time.windows.com,0x9 (Локально)
VMICTimeProvider (Локально)
DllName: C:\WINDOWS\System32\vmictimeprovider.dll (Локально)
Enabled: 1 (Локально)
InputProvider: 1 (Локально)
NtpServer (Локально)
DllName: C:\WINDOWS\SYSTEM32\w32time.DLL (Локально)
Enabled: 0 (Локально)
InputProvider: 0 (Локально)

В секции Настройка приведены текущие параметры службы времени Windows, в секции TimeProviders — настройки программного обеспечения как клиентской, так и серверной части.

Читайте также:  Windows media center from windows 10

Наиболее важные параметры службы времени:

Для компьютера, не входящего в домен, используется тип синхронизации NTP и NTPServer с именем time.windows.com . При необходимости можно добавить еще несколько NTP-серверов, введя их DNS имена или IP адреса через пробел. В конце каждого имени можно добавлять 16-ричное число, или флаг (например — 0x1) который определяет режим синхронизации с сервером времени.

Возможные значения режима:

0x1 – SpecialInterval, использование задаваемого интервала опроса;
0x2 – режим UseAsFallbackOnly – синхронизация только при необходимости;
0x4 – SymmetricActive, симметричный активный режим;
0x8 – Client, отправка запроса в клиентском режиме.

Возможно использование комбинаций режимов:

NtpServer: time.windows.com,0x9 — клиентский запрос (0x8) с использованием заданного интервала (0x1) для синхронизации часов с сервером time.windows.com

SpecialPollInterval — значение в секундах интервала обновления времени. По умолчанию – 604800 секунд, что соответствует 7 суткам. Имеет смысл изменить этот интервал, например, на 1 час (3600) или хотя бы на 1 сутки (86400).

Очень важное значение имеют параметры MaxNegPhaseCorrection и MaxPosPhaseCorrection задающие максимальное отрицательное и положительное отклонение показаний часов, при котором может выполняться синхронизация. Значение по умолчанию — 54000 (в секундах), т.е. 15часов, что приводит к тому, что синхронизация времени не выполняется при расхождении показаний часов на величину, превышающую 15 часов. При попытке ресинхронизации времени командой w32tm /resynс показания часов не изменятся и будет выведено вообщение:

Синхронизация не выполнена, поскольку запрошенное изменение слишком велико.

Поэтому, для надежной синхронизации часов компьютера с сервером времени в Интернет, независимо от их текущих показаний, желательно увеличить абсолютное значение параметров MaxNegPhaseCorrection и MaxPosPhaseCorrection , или вообще задать им максимальное значение для типа DWORD – 0xffffffff или 4294967295.

После изменения параметров MaxNegPhaseCorrection и MaxPosPhaseCorrection в реестре системы, синхронизация времени будет выполняться независимо от текущих показаний часов компьютера.

w32tm /monitor /computers:ru.pool.ntp.org — отобразить разницу во времени данного компьютера и сервера времени ru.pool.ntp.org .

w32tm /monitor /computers:ru.pool.ntp.org,time.windows.com,time.nist.gov — отобразить разницу во времени данного компьютера и нескольких серверов времени.

w32tm /resync – синхронизировать часы локального компьютера с используемым им сервером времени.

w32tm /resync /force – синхронизировать часы локального компьютера с используемым им сервером времени, игнорируя максимальное и минимальное отклонение показаний аппаратных часов и источника.

w32tm /stripchart /computer:pool.ntp.org /samples:3 /dataonly — сравнить показания часов локального компьютера с показаниями сервера времени pool.ntp.org . Будет выполнено 3 запроса и результаты будут представлены в текстовом виде.

Пример отображаемой информации:

Отслеживание pool.ntp.org [77.232.189.6:123].

Сбор образцов 3.
Текущее время — 14.02.2017 17:04:02.
17:04:02 d:+00.0154105s o:+00.0201873s
17:04:04 d:+00.0154035s o:+00.0257523s
17:04:06 d:+00.0154118s o:+00.0147256s

d: — задержка ответа, интервал времени между отправкой запроса и получением ответа от сервера NTP.

o: — смещение локальных часов относительно показаний сервера NTP (если положительное значение – часы отстают, отрицательное – спешат).

w32tm /stripchart /computer:pool.ntp.org — то же, что и в предыдущем примере, но проверка выполняется непрерывно, до тех пор пока не будет нажата комбинация клавиш CTRL+C или CTRL+Break

w32tm /config /syncfromflags:manual /manualpeerlist:ru.pool.ntp.org /update — изменить конфигурацию службы времени, для использования сервера NTP ru.pool.ntp.org и применить сделанные изменения.

w32tm /query /configuration — отобразить текущую конфигурацию службы времени Windows на локальном компьютере.

w32tm /query /configuration /computer:win10 — отобразить текущую конфигурацию службы времени Windows на компьютере WIN10 .

w32tm /query /source — отобразить сведения об источнике времени на локальном компьютере.

w32tm /query /source /computer:win10 — отобразить сведения об источнике времени на компьютере win10 .

w32tm /unregister — удалить службу времени Windows из системы. Все параметры службы в реестре удаляются. Перед выполнением команды, служба времени должна быть остановлена, в противном случае команда завершится сообщением об ошибке доступа.

w32tm /register – установить службу времени Windows на данном компьютере. При этом все параметры службы в реестре создаются заново. Для изменения параметров заданных по умолчанию, можно использовать импорт из заранее подготовленного reg-файла, например:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config]
«MaxNegPhaseCorrection»=dword:ffffffff
«MaxPosPhaseCorrection»=dword:ffffffff

Оцените статью