2 / 2 / 0 Регистрация: 19.10.2015 Сообщений: 176 |
|
1 |
|
Синхронизация времени с корректировкой03.05.2017, 16:53. Показов 23156. Ответов 20
Здравствуйте сам я в программировании профан, но реалии жизни вынуждают. Вот решил обратиться к специалистам.
__________________
0 |
Garry Galler 5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
||||
04.05.2017, 00:49 |
2 |
|||
——————————
2 |
2 / 2 / 0 Регистрация: 19.10.2015 Сообщений: 176 |
|
04.05.2017, 07:59 [ТС] |
3 |
Спасибо, всё работает как нужно. С некоторыми параметрами (служб) поэкспериментирую. Добавлено через 3 часа 59 минут
0 |
5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
|
04.05.2017, 10:35 |
4 |
как добавить не целые секунды, а с десятыми долями? Просто добавить доли не получится — cmd работает только с целыми числами.
0 |
2 / 2 / 0 Регистрация: 19.10.2015 Сообщений: 176 |
|
04.05.2017, 10:42 [ТС] |
5 |
Заранее благодарен вам за оказанную помощь. Без вас я бы ни за что не не осилил этот вопрос. Если в VBA хоть что-то понятно, то в (CMD/BAT) для меня просто набор знаков
0 |
Garry Galler 5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
||||||||
04.05.2017, 10:51 |
6 |
|||||||
В принципе, если вам точный перевод времени не нужен — достаточно просто к итоговой строке времени
добавить нужное число миллисекунд
1 |
lapin9126 2 / 2 / 0 Регистрация: 19.10.2015 Сообщений: 176 |
||||||||
04.05.2017, 11:27 [ТС] |
7 |
|||||||
Спасибо, всё гениальное-просто!!!!!! Добавлено через 22 минуты
на
0 |
Garry Galler 5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
||||
04.05.2017, 12:21 |
8 |
|||
Для корректного суммирования поменял параметр А вот здесь я не понял Здесь делается замена возможного пробела в числах на 0 (пробел вместо ведущего ноля может появляться во времени до 10 утра). Код ============================ [ENTER the offset in milliseconds]:1500 ============================ ТЕКУЩЕЕ ВРЕМЯ:12:02:59,70 ============================ (12 * 3600 * 1000) + (02 * 60 * 1000) + (59 * 1000) + 70 = 43379070 43379070 + 1500 = 43380570 ============================ НОВОЕ ВРЕМЯ: 12:3:0,57 ============================ time before: 12:02:59,70 time new: 12:3:0,57 time after: 12:03:00,05
Формула переводит все в миллисекунды, суммирует и конвертирует обратно в часыминутысекундымиллисекунды. И вроде все делает правильно.
0 |
Любознательный 3222 / 862 / 231 Регистрация: 10.03.2016 Сообщений: 2,038 |
|
04.05.2017, 12:30 |
9 |
Garry Galler,
Где тут косяк :-)? Возможно, не причина, но тем не менее…на первый взгляд:
(12 * 3600 * 1000) Вот здесь, какие-такие единицы мы получим?
0 |
5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
|
04.05.2017, 13:50 |
10 |
YuS_2, Добавлено через 5 минут + 70 похоже косяк. Там же доли: 70 это 0.7, то есть 700 мск. Добавлено через 44 минуты
0 |
Любознательный 3222 / 862 / 231 Регистрация: 10.03.2016 Сообщений: 2,038 |
|
04.05.2017, 13:55 |
11 |
Разве нет? Да, верно … это я тут по диагонали, одним глазом форум читаю
0 |
2 / 2 / 0 Регистрация: 19.10.2015 Сообщений: 176 |
|
04.05.2017, 14:12 [ТС] |
12 |
Это я не вовремя проверял, надо утром с 8 до 10 тестировать.
0 |
Garry Galler 5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
||||
04.05.2017, 14:25 |
13 |
|||
lapin9126,
Здесь ненужные ведущие ноли будут убираться и ошибки не случится.
0 |
lapin9126 2 / 2 / 0 Регистрация: 19.10.2015 Сообщений: 176 |
||||
04.05.2017, 14:44 [ТС] |
14 |
|||
Я правильно понял конечный код должен быть такой:
0 |
5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
|
04.05.2017, 15:24 |
15 |
Да, пока это все что я могу предложить. до и после знака равно — лучше убрать. Они в батниках как минимум нежелательны, как максимум приводят к ошибкам, хотя при сложении чисел вроде не влияют. Это у меня python code style уже мешает батники правильно писать
0 |
2 / 2 / 0 Регистрация: 19.10.2015 Сообщений: 176 |
|
05.05.2017, 04:22 [ТС] |
16 |
Хорошо, подправлю. Еще раз благодарю за помощь. Добавлено через 12 часов 15 минут Отправка команды синхронизации на локальный компьютер
0 |
5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
|
05.05.2017, 15:10 |
17 |
lapin9126, Откуда у вас ведущий ноль, если батник его исключает операций вычитания 108 — 100=8?
0 |
lapin9126 2 / 2 / 0 Регистрация: 19.10.2015 Сообщений: 176 |
||||
05.05.2017, 15:47 [ТС] |
18 |
|||
Да кто его знает. Может в коде что-то не так. Спасибо за помощь. Пытаюсь на VBS написать.
0 |
5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
|
05.05.2017, 15:59 |
19 |
lapin9126, первую версию кода , которая не содержит исправления ошибки ведущего нуля. правильную версию кода , в которую внесены мои поправки переменных. И эту версию вы почему-то НЕ используете…
0 |
2 / 2 / 0 Регистрация: 19.10.2015 Сообщений: 176 |
|
05.05.2017, 16:17 [ТС] |
20 |
Прошу прощения, с утра наверно еще не проснулся и не то скопировал.
0 |
31 Августа 2011
Возникла необходимость синхронизации времени на компьютерах в локальной сети на стандартном 123 UDP порту?
Или как я настраивал сервер NTP в локальной сети на Windows хосте.
Ситуация следующая: в одноранговой локальной сети есть одна Windows машина которая ходит в нтернет и синхронизирует время, например с time.nist.gov.
Рабочие станции этой сети не ходят в Интернет, или им запрещено синхронизироваться, или вы не хотите дополнительный трафик по UDP 123 порту наружу, или есть проблемы синхронизации времени с популярных интернет ntp cерверов. C помощью этой статьи вы настроите синхронизацию времени в среде Windows и настроите NTP сервер на обычной Windows машине.
Сервер синхронизации времени ntp может работать на Windows 2000, Windows XP Prof, Windows 7, Windows Server 2003/2008 .
Итак, приступаем к настойке локального Windows сервера синхронизации времени (NTP server на 123 UDP порту).
Начнем с ОС Windows XP Prof (Windows XP Home — то же самое).
Открываем реестр — Пуск -> выполнить -> regedit
идем в ветку:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig
присваеваем параметру AnnounceFlags значение 5. Тем самым мы обьявим наш будущий NTP сервер, достоверным и компьютеры при синхронизации с ним не будут ругаться.
Далее Пуск -> выполнить -> mmc и добавляем оснастку «Редактор обьекта групповой полтики». Обьектом группвой политики выступит Локальный компьютер.
Идем по разделам Конфигурация компьютера -> Администрантивные шаблоны -> Система -> Служба времени Windows -> Поставщики времени. Там находим «Включить Windows NTP-сервер» и в свойствах выбираем позицию «включить». В заключении проходим в Службы, ищем «Служба времени Windows» и перезапускаем этот сервис. Если он не включен, то включаем его и ставим тип запуска «Авто».
Кроме этого на раздающем сервере необходимо изменить интервал через который он сам будет ходить в инет за временем.
Открываем реестр — Пуск -> выполнить -> regedit
идем в ветку:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProviders
NtpClientSpecialPollInterval
По умолчанию интервал между обновлениями времени в Windows – 1 неделя (604800 сек). При низкой точности системных часов компьютера это слишком большой интервал. При такой настройке за 1 неделю часы Вашего компьютера могут получить погрешность величиной порядка минуты или даже нескольких минут. Рекомендую уменьшить интервал обновления до нескольких часов. Это изменение не увеличит ни трафика, ни нагрузки на NTP-сервер, при этом позволит поддерживать более высокую точность хода часов Вашего компьютера.
При значении флага UseAsFallbackOnly службе времени сообщается, что данный сервер будет использоваться как резервный и перед синхронизацией с ним будут выполнятся обращения к другим серверам списка.
После внесения необходимых настроек в можно перечитать конфигурацию сохраненную в реестре коммандой приведенной ниже, или перезагрузить компьютер.
w32tm /config /update
И при необходимости выполнить немедленную синхронизацию
w32tm /resync
На этом настройка сервера закончена.
На клиентских компьютерах следуем в «Панель управления», выбираем «дата и время» и в закладке «Время интернета» меняем строку сервер на IP (или имя) вашего локального сервера.
Вот и все.
Можно раскидать батник на рабочие станции:
w32tm /config /manualpeerlist:IP_адрес_сервера,0x1 /syncfromflags:MANUAL
net stop w32time
net start w32time
w32tm /resync
И запускаем его на клиентских машинах с правами Администратора.
Для WINDOWS 2000
Теперь поясню, как установить синхронизацию основного компьютера времени, т. е. корневого PDC-эмулятора леса, с реальным временем. Для этого следует Пуск -> выполнить -> ввести команду:
net time /setsntp:
Параметр /setsntp команды Net Time показывает, что используется Simple Network Time Protocol (SNTP), стандартный протокол Internet. Internet Engineering Task Force (IETF) Request for Comments (RFC-2030), датированный октябрем 1996 г., определяет SNTP. Можно указать любой сервер времени SNTP в Internet для корневого PDC-эмулятора леса и заставить его синхронизировать свое время с временем этого сервера. Многие брандмауэры включают сервер времени, так что для конкретного контроллера — эмулятора PDC — нет нужды обращаться куда-либо из своей внутренней сети для синхронизации с SNTP-сервером. Но если брандмауэр требуется настраивать, то нужно иметь в виду, что SNTP использует 123-й порт UDP.
Остановит сервер времени
Windows Time Service:
net stop w32time
Затем можно проверить время источника, для чего следует ввести:
w32tm -once
чтобы установить время от источника времени однократно (по умолчанию W32tm обновляет время периодически). Система выдает страницу запутанной информации; в случае успешного выполнения команды в одной из строк появится Recv`ed from server 48 Bytes. Далее необходимо набрать:
net start w32time
чтобы снова запустить службу времени.
После первоначальной синхронизации с сервером времени компьютер снова сверяет с ним свое время через 45 мин. Если выясняется, что разница между показаниями часов сервера времени и системных часов компьютера не превышает 2 с, интервал ожидания следующей сверки с сервером времени удваивается. Если через полтора часа разница во времени остается в пределах 2 с, компьютер продолжает удваивать интервал синхронизации и проверять точность времени и, наконец, останавливается на интервале приблизительно 8 ч.
Если неизвестно, с каким SNTP-сервером синхронизируется система, в командной строке следует ввести:
net time /querysntp
Пишите если у кого не получилось, я запустил на 20-30 машинах в локалке и забыл о проблемах с разным временем в отчетах, логах, видео архивах и прочее. Главное не забывать когда заводите в сети новую машину проделать с ней эту процедуру.
Ручная настройка сервера на рабочей станции Windows.
1. Клик на часах в трее
2. Изменить дату и время
3. Время интернет — Изменить натройки.
4. Впечатайте IP адрес или DNS имя вашего локального NTP сервера, или публичные рабочие сервера времени.
Мировые рабочие сервера времени для синхронизации времени:
0.pool.ntp.org
1.pool.ntp.org
2.pool.ntp.org
3.pool.ntp.org
5. Сохраняем все
Тестирование программного обеспечения (SQA)< Предыдущая |
Следующая >Казбекиада 2011 |
---|
Содержание
- Процедура синхронизации
- Способ 1: синхронизация времени при помощи сторонних программ
- Способ 2: синхронизация в окне «Дата и время»
- Способ 3: командная строка
- Вопросы и ответы
Не секрет, что даже электроника не может достичь абсолютной точности. Об этом свидетельствует хотя бы то, что через определенный период системные часы компьютера, которые отображаются в нижнем правом углу экрана, могут иметь расхождение с реальным временем. Для предотвращения подобной ситуации существует возможность синхронизации с интернет-сервером точного времени. Посмотрим, как это осуществляется на практике в Windows 7.
Процедура синхронизации
Главным условием, при котором можно осуществить синхронизацию часов, является наличие интернет-подключения на компьютере. Синхронизировать часы можно двумя способами: при помощи стандартных инструментов Windows и применив стороннее программное обеспечение.
Способ 1: синхронизация времени при помощи сторонних программ
Разберемся, как синхронизировать время через интернет при помощи сторонних программ. Прежде всего, требуется выбрать софт для установки. Одной из лучших программ в этом направлении считается SP TimeSync. Она позволяет синхронизировать время на ПК с любыми атомными часами, доступными в интернете через протокол времени NTP. Разберемся, как её установить и как в ней работать.
Скачать SP TimeSync
- Секунды;
- Минуты;
- Часы;
- Сутки.
К примеру, зададим интервал в 90 секунд.
В поле «NTP сервер» при желании можно указать адрес любого другого сервера синхронизации, если тот, который установлен по умолчанию (pool.ntp.org) вам по каким-то причинам не подходит. В поле «Локальный порт» лучше не вносить изменения. По умолчанию там установлено число «0». Это означает, что программа подключается к любому свободному порту. Это наиболее оптимальный вариант. Но, конечно, если вы по определенным причинам желаете назначить для SP TimeSync определенный номер порта, то можете это сделать, вписав его в данное поле.
- Время попытки;
- Число успешных попыток;
- Предельное число попыток.
Но, так как мы описываем бесплатную версию SP TimeSync, то останавливаться на этих возможностях не будем. А для дальнейшей настройки программы переместимся во вкладку «Параметры».
Кроме этого, для пользователей версии Pro доступна возможность использования протокола IPv6. Для этого нужно просто установить галочку около соответствующего пункта.
В поле «Язык» при желании можно выбрать из списка один из 24 доступных языков. По умолчанию установлен язык системы, то есть, в нашем случае русский. Но доступны английский, белорусский, украинский, немецкий, испанский, французский и многие другие языки.
Таким образом, мы настроили программу SP TimeSync. Теперь каждые 90 секунд будет происходить автоматическое обновление времени Windows 7 в соответствии с серверным временем, причем все это выполняется в фоновом режиме.
Способ 2: синхронизация в окне «Дата и время»
Для того, чтобы синхронизировать время, использовав встроенные возможности Windows, требуется выполнить следующий алгоритм действий.
Это очень ответственное дело. Поэтому, прежде чем переходить к процедуре, хорошо подумайте, так ли вам необходимо изменять интервал автоматической синхронизации, и готовы ли вы справиться с данной задачей. Хотя необычайно сложного тут ничего нет. Просто следует подходить к делу ответственно, во избежание фатальных последствий.
Если вы все-таки приняли решение вносить изменения, то вызовите окно «Выполнить», набрав комбинацию Win+R. В поле данного окошка впишите команду:
Regedit
Щелкните «OK».
Таким образом, мы настроили автоматическую синхронизацию локальных часов ПК со временем сервера с периодичностью 1 раз в день.
Способ 3: командная строка
Следующий способ для запуска синхронизации времени подразумевает использование командной строки. Основное условие состоит в том, чтобы перед началом процедуры вы вошли в систему под учетным именем с правами администратора.
w32tm /config /syncfromflags:manual /manualpeerlist:time.windows.com
В данном выражении значение «time.windows.com» означает адрес сервера, с которым будет выполнена синхронизация. Если вы хотите, то можете заменить его на любой другой, например, «time.nist.gov» или «timeserver.ru».
Конечно, вбивать вручную в командную строку данное выражение не слишком удобно. Его можно скопировать и вставить. Но дело в том, что командная строка не поддерживает стандартные способы вставки: через Ctrl+V или контекстное меню. Поэтому многие пользователи думают, что вставка в данном режиме вообще не работает, но это не так.
Скопируйте с сайта вышеуказанное выражение любым стандартным способом (Ctrl+C или через контекстное меню). Перейдите в окно командной строки и щелкните по её логотипу в левом углу. В открывшемся списке последовательно перейдите по пунктам «Изменить» и «Вставить».
Синхронизировать время в Windows 7 можно, как применяя стороннее программное обеспечение, так и использовав внутренние возможности операционной системы. Причем, сделать это можно различными способами. Каждый пользователь просто должен выбрать более подходящий лично для себя вариант. Хотя объективно использование стороннего ПО более удобно, чем применение встроенных инструментов ОС, но нужно учесть, что установка сторонних программ создает дополнительную нагрузку на систему (пусть и небольшую), а также может являться источником уязвимостей для действий злоумышленников.
Выкладываю bat-скрипт для быстрой настройки ntp-клиента Windows. Написал его для себя и решил поделиться.
Принцип работы:
- запускаем скрипт от имени администратора (актуально для семейства Windows старше XP).
- вводим адрес ntp сервера который хотим задать.
- вводим время периода обновлений времени в минутах.
- ждем выполнения, и наблюдаем результат выполнения в консоли.
Код bat файла
@echo off
rem Скрипт настройки NTP клиента Windows
echo Скрипт настройки NTP клиента Windows
echo.
rem -- ввод адреса NTP сервера
set /p ntp_server="Введите адрес NTP сервера: "
rem -- ввод периуда обновления времени в минутах
set /p ntp_update="Задайте периуд обновления (min): "
rem -- задаем в качестве сервера по умолчанию 0 элемент
echo.
echo =======================================================
echo Задаем в качестве сервера по умолчанию 0 элемент
REG ADD HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionDateTimeServers /ve /t REG_SZ /d 0 /f
rem -- редактируем значение сервера обновлений из списка под новером 0
echo.
echo =======================================================
echo Изменяем текущие значение сервера обновлений списка серверов на %ntp_server%
REG ADD HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionDateTimeServers /v 0 /t REG_SZ /d %ntp_server% /f
rem -- включаем NTP клиент
echo.
echo =======================================================
echo Включаем NTP клиент
REG ADD HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters /v Type /t REG_SZ /d NTP /f
rem -- задаем текущий сервер обновления
echo.
echo =======================================================
echo Задаем текущий сервер обновления %ntp_server%
REG ADD HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters /v NtpServer /t REG_SZ /d %ntp_server%,0x9 /f
rem -- устонавливаем периуд обновления
echo.
echo =======================================================
echo Устонавливаем периуд обновления %ntp_update% минут
rem -- перевод времени в секунды
set /a ntp_update*=60
REG ADD HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProvidersNtpClient /v SpecialPollInterval /t REG_DWORD /d %ntp_update% /f
rem -- задаем службе времени автоматический запуск
echo.
echo =======================================================
echo Задаем службе времени автоматический запуск
sc config w32time start= auto
rem -- запускаем/перезапускаем незапущеную/зупущеную службу времени
echo. && echo======================================================= && echo Попытка перезапуска службы времени && echo. && sc stop w32time && PING -n 5 -w 1000 127.0.0.1 >nul && sc start w32time || echo. && echo ======================================================= && echo Попытка запуска службы времени && echo. && sc start w32time
echo.
pause
Результат работы
P.S.: Не забываем выставить в редакторе кодировку создаваемого bat файла в OEM 866 для корректного отображения кириллических символов.
You can’t comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.
This file contains 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 /rediscover | |
@endlocal & @goto :EOF |
В 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 – Принудительная синхронизация с указанного источника.
Проверить синхронизируются ли часы локального компьютера с каким-нибудь сервером можно командой
w32tm /query /status
Компьютеры, включенные в домен, по умолчанию синхронизируют свои часы с контроллером домена.
Настройка синхронизации часов
— Проверяем запущена ли «Служба времени»:
C:> services.msc
— Можно запустить вручную, но лучше настроить службу для запуска автоматически. Если в ручную, то:
С:> net start w32time
— Для регистрации, как службы и добавления стандартной конфигурации в реестр:
С:> w32tm /register
— Создаём командный файл timesync.bat, который настроит синхронизацию времени с локальным сервером 10.0.0.85. Скрипт необходимо выполнить с административными правами.
@echo off rem This will synchronize time with server 10.0.0.85 rem rem To ensure time service is up run services.msc rem In Russian it calls "Служба времени Windows" rem In register: rem HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParameters rem echo -- This script will synchronize time with server 10.0.0.85. Current status: w32tm /query /status w32tm /tz echo -- Press Ctrl+C if you don't want synchronization or any key otherwise. pause > null echo -- Set time server w32tm /config /manualpeerlist:10.0.0.85 /syncfromflags:manual /reliable:yes /update echo -- New settings: w32tm /query /status echo -- Press any key to exit. pause > null
и запускаем его на каждом компьютере, где хотим синхронизировать время с сервером. Сам сервер, в свою очередь, можно синхронизировать через Интернет.
Также можно наблюдать текущую разницу во времени с удалённым компьютером:
w32tm /stripchart /computer:10.0.0.85 /samples:3 /dataonly
Раньше вместо w32tm использовалась команда net time.
w32tm | net time |
---|---|
Запрос текущего состояния синхронизации: сервер, расхождение и т.д. | |
w32tm /query /status | net time /querysntp |
Принудительная синхронизация часов с сервером 10.0.0.85 | |
w32tm /config /manualpeerlist:10.0.0.85 /syncfromflags:manual /reliable:yes /update | net time /setsntp:10.0.0.85 |
Настройка списка серверов для синхронизации часов | |
w32tm /config /manualpeerlist:»10.0.0.85 10.0.0.2 ntp0.zenon.net» /syncfromflags:manual /reliable:yes /update | net time /setsntp:»10.0.0.85 10.0.0.2 ntp0.zenon.net» |
Началось всё с того, что я купил у китайцев часы-конструктор … ну и захотелось всегда иметь точное время для проверки. Везде советуют спецпроги или правку реестра с целью уменьшения интервала синхронизации … или планировщик … а при нечаянной переустановке винды всё придётся делать заново. Всякие гуры пишут, что по-другому нельзя, но на то они и гуры
Сами мы ни разу не админы (ну может только 0,1 раза), но полазив по инету, можно найти какие-то отдельные куски из которых можно соорудить bat-файл. Сей батник можно сразу запихнуть в автозагрузку, но я для таких причиндалов, которые желательно сохранять отдельно от винды, завёл специальную папку. А в автозагрузку запихнул ярлык, в свойствах которого указал, что запускать надобно в свёрнутом виде, чтобы глаза не мозолило.
Автозагрузка в винХР находится тут:
C:Documents and Settingsимя вашей учетной записиГлавное менюПрограммыАвтозагрузка
в вин7 тут:
C:Usersимя вашей учетной записиAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
в других винах ищите сами
Проблемы были в том, что батник и служба времени запускаются не скоординированно и что неудачная синхронизация никак не влияет на код ошибки errorlevel. Посему либо команда сихронизации может не сработать, либо внешний сервер отвалится, а мы этого не узнаем. Но мышей надо ловить, невзирая на проблемы.
Результат тут:
Работает
Читаем, забираем, пользуемся, комментируем, предлагаем варианты.