Рассмотрим ситуацию, когда вам необходимо синхронизировать время вашей Windows машине или Windows сервере с вашим NTP сервером, или внешне доступным сервером времени. Задача простая, но у новичков в системном администрировании это может вызвать некоторые трудности. Так давайте разберемся!
Небольшое отступление: синхронизировать время на всех узлах сети (сервера, рабочие станции, сетевое оборудование, sip телефоны и т.д.) с единым сервером времени является обязательным, для корректной работы всех служб и сервисов в корпоративной сети. Так, например, это необходимо для корректной работы служб Active Directory, контроллеров доменов, почтовых серверов, рабочих станций, обеспечения корректных прав доступа и безопасности.
Операционные системы семейства Windows содержат службу времени W32Time. Эта служба предназначена для синхронизации времени в пределах организации. W32Time отвечает за работу как клиентской, так и серверной части службы времени, причем один и тот же компьютер может быть одновременно и клиентом и сервером NTP (NTP — Network Time Protocol).
Для того чтобы синхронизировать ваш сервер или рабочую станцию вам необходимо выполнить следующие команды, в командной строке (CMD), запущенной от имени администратора:
1. w32tm /query /source – проверяем источник, на который настроена служба времени в данный момент. Вывод команды либо покажет нам имя или адрес существующего ntp сервера, или в случае его отсутствия выдаст “Free-running System Clock”.
2. w32tm /config /syncfromflags:manual /manualpeerlist:”source” – данной командой указываем источник эталонного времени (NTP Сервер) . Заменяем source на ip адрес или на FQDN. В доменной сети стоит указывать адрес контроллера домена. В случае правильности выполнения получим вывод “Команда выполнена успешно”.
3. w32tm /config /update – обновляем службу времени, чтобы новые настройки применились.
4. w32tm /resync – запускаем принудительное обновление с новым сервером времени.
Все. Вы синхронизировали службу времени на вашей машине с внешним источником. Данный подход позволит вам добиться того, что все машины в вашей сети будет иметь единое правильное время, что позволит избежать ряда сбоев из за расхождения во времени.
Дополнительные команды управления службой времени:
w32tm /query /source — выводит источник времени, на который настроена служба Windows Time
w32tm /monitor — при запуске на контроллере домена (КД) показывает, насколько отличается время на других КД и на внешнем источнике времени, на который настроен PDC
w32tm /config /syncfromflags:manual /manualpeerlist:ru.pool.ntp.org — настройка в качестве источника времени пула ntp-серверов ru.pool.ntp.org
w32tm /config /update — эту команду необходимо выполнить, чтобы служба времени применила новые настройки
w32tm /resync — выполнение синхронизации времени
w32tm /unregister — отменяет регистрацию службы и удаляет настройки из реестра
w32tm /register — регистрирует службу и восстанавливает настройки по умолчанию
Материал из support.qbpro.ru
Скрипт для синхронизации времени в Windows:
net time /setsntp:10.10.5.1 net stop w32time && net start w32time net w32tm /resync
или
net w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:manual /update
Запуск от имени Администратора:
runas /user:Администратор "cmd /C net time /setsntp:10.10.5.1 && net stop w32time && net start w32time && w32tm /resync"
Изменение времени в CMD
- Пример скрипта:
runas /user:127.0.0.1\Администратор "cmd /C w32tm /config /syncfromflags:manual /manualpeerlist:pool.ntp.org && w32tm /config /update"
или
echo password|runas /netonly /user:127.0.0.1\Администратор "cmd /A /C chcp 866>nul time net time /setsntp:pool.ntp.org w32tm /config /syncfromflags:manual /manualpeerlist:pool.ntp.org net stop w32time && net start w32time w32tm /config /update pause "
- Пример команды если компьютер в домене:
runas /user:127.0.0.1\Администратор "cmd /A /C w32tm /config /syncfromflags:manual /manualpeerlist:pool.ntp.org && w32tm /config /update"
- Отключение автоматического перехода на летнее/зимнее время» из пользователя с ограниченными правами:
runas /user:127.0.0.1\Администратор "cmd /A /C regedit"
Ищем в реестре:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
создаем ключ DWORD спараметром «1»:
DisableAutoDaylightTimeSet = 1
Время в командной строке
Пример:
runas /user:127.0.0.1\Администратор "cmd /A /C time 21.45"
Time — задает системное время
Выводит и задает системное время.При использовании без параметров, команад time отображает системное время и предлагает
ввести новое время.
Синтаксис time [/t] [/time] [часы:[минуты[:секунды[.сотые]]][{A|P}]]
Параметры
/t
Выводит на экран текущее системное время без предложения ввода нового.
/time
Такой же как параметр /t.
часы
Задает значение часов. Допустимы величины от 0 до 23.
минуты
Задает значение минут. Допустимы величины от 0 до 59.
секунды
Задает значение секунд. Допустимы величины от 0 до 59.
сотые
Задает значение сотых долей секунды. Допустимы величины от 0 до 99.
{A|P}
Задает время до полудня (A.M.) или после полудня (P.M.) для 12-часового формата времени.
Если указано допустимое 12-ти часовое значение, но не задано значение A или P, команда time использует A (до полудня).
/?
Отображает справку в командной строке.
- Пример скрипта синхронизации для Windows Server 2008
@echo off w32tm /config /manualpeerlist:0.pool.ntp.org,0x1 /syncfromflags:MANUAL net stop w32time net start w32time net w32tm /resync
ИСТОЧНИКИ
взято тут
В Windows есть отличное средство управления синхронизацией времени — w32tm. Управление которым осуществляется как через cmd, так и через реестр и даже групповые политики в домене Windows.
В этой статье — мы рассмотрим только первый вариант.
- 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 – Подробный вывод всей информации о работе службы.
Синхронизация через Net time
Так же можно воспользоватся вспомогательной службой net time для синхронизации времени.
- net time /setsntp:time.itmake.org — Задаем источник синхронизации.
- net time /querysntp — просмотр информации о заданном источнике времени.
- net time \\server.lan.local /set /y – Принудительная синхронизация с указанного источника.
Точность системного времени очень важная вещь. Из-за неправильно выставленного времени может произойти множество ситуаций, которые приведут к неопределённым последствиям. Те кто запускал GNU/Linux в Live режиме могли обратить внимание на системное время Windows, после завершения работы с Linux оно отставало. Связано это с особенностью работы операционных систем с системным временем. Более подробно можно почитать здесь.
Так как целью данной статьи не является рассмотрение ситуации возникновения рассинхрона времени, более на этом останавливаться не будем. Всех любопытных прошу под кат.
Итак, для начала необходимо проверить статус службы W32Time. По умолчанию данная служба остановлена на Windows 10 Pro. Powershell должен быть запущен с правами администратора!
Get-Service -Name W32Time | Format-Wide -Property Status -Column 1
Выводом этой команды скорее всего станет строка: Stopped.
Статус сервиса
Более подробную информацию о сервисе можно узнать выполнив команду:
Get-Service W32Time | Select-Object *
Получить список требуемых служб:
Get-Service W32Time -RequiredServices
Теперь, когда вы убедились, что служба остановлена её необходимо запустить. Выполните следующую команду:
Start-Service W32Time
Обращаю ваше внимание, если powershell не был запущен с правами администратора, то при выполнении команды запуска службы вы получите ошибку.
Ошибка запуска службы
Никакого вывода о состоянии службы после окончания выполнения команды не будет. Чтобы проверить статус службы повторно выполните команду для проверки статуса службы приведённую выше.
Теперь, наконец-то, можно приступить к синхронизации времени. Выполним следующую команду для обновления времени:
w32tm /resync /force
По умолчанию время будет браться с ntp-сервера time.windows.com. Если вам необходимо изменить его на другой ntp-сервер, то выполните:
w32tm /config /syncfromflags:manual /manualpeerlist:"0.ru.pool.ntp.org"
w32tm /config /reliable:yes
Перезапустите службу w32time:
Restart-Service W32Time
Проверить, что ntp-сервер изменился:
w32tm /query /configuration
До применённых изменений
После применённых изменений
Похожим образом можно изменить временную зону. Посмотреть свою временную зону:
w32tm /tz
Get-TimeZone
Получить список всех доступных временных зон:
Get-TimeZone -ListAvailable
Изменить временную зону:
Set-TimeZone -Name "Magadan Standard Time"
Справка по w32tm
Справка по Set-TimeZone
Справка по Get-TimeZone
Метки: Powershell, w32tm, Windows
This entry was posted on 2018/11/13 at 11:00:53 and is filed under Software. You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Rem run as administrator | |
@echo on & @setlocal enableextensions | |
@echo ========================= | |
@echo Turn off the time service | |
net stop w32time | |
@echo ====================================================================== | |
@echo Set the SNTP (Simple Network Time Protocol) source for the time server | |
w32tm /config /syncfromflags:manual /manualpeerlist:«0.it.pool.ntp.org 1.it.pool.ntp.org 2.it.pool.ntp.org 3.it.pool.ntp.org« | |
@echo ============================================= | |
@echo … and then turn on the time service back on | |
net start w32time | |
@echo ============================================= | |
@echo Tell the time sync service to use the changes | |
w32tm /config /update | |
@echo ======================================================= | |
@echo Reset the local computer’s time against the time server | |
w32tm /resync /force /rediscover | |
@endlocal & @goto :EOF |