Синхронизировать Интернет-время в сценарии Windows?

12

Можно ли синхронизировать системные часы с сервером времени в Интернете (например, time.nist.gov) через командную строку? Желательно, чтобы это было что-то исполняемое с помощью скрипта BAT или PowerShell.

Эта особая необходимость возникает из-за того, что у меня есть несколько виртуальных машин, для которых я регулярно использую функцию «сохранить состояние машины», и они обычно не синхронизируют свои часы, когда я «пробуждаю» их. Часто я перезагружаю их, чтобы найти часы (и остаются) дни несинхронно.

Повторная синхронизация часов в диалоговом окне Internet Time Settings обычно работает нормально, но для этого требуется много щелчков мышью. Я бы предпочел просто оставить скрипт на рабочем столе, чтобы я мог дважды щелкнуть по нему и выполнить свою работу за меня.

Прямо сейчас это для системы под управлением Windows 7 Home x64, но было бы неплохо иметь обратную совместимость с XP SP3.

Iszi
источник
1
Большая часть программного обеспечения VM (Virtual PC, VirtualBox) поставляется с драйверами («Дополнения»), которые, помимо прочего, синхронизируют часы гостя с хостом.
user1686
@ Grawity - используя их, но, похоже, это не работает.
Иззи
Я создал тикет для этого. Windows не синхронизируется с сервером времени после выхода из спящего режима или режима гибернации. Windows URI: feedback-hub:?contextid=58&feedbackid=f15278d4-b20d-4a9a-9693-cdf8fbaaa669&form=1&src=1<- Поместите в диалог Windows Run, если у вас установлен хаб обратной связи из магазина Windows
Gabriel Fair

Ответы:

13

См. Ссылку для W32tm, «Инструмент, используемый для диагностики проблем, возникающих во времени Windows»: http://technet.microsoft.com/en-us/library/bb491016.aspx . Также,w32tm /?

Использование w32tm /resync. Вам также может потребоваться установить сервер, net timeесли вы этого еще не сделали.

Джефф Ферланд
источник
2
Хорошо, я сделал ... @echo off && w32tm /resync && PAUSEБросил это в BAT-файл и установил ярлык на рабочем столе с проверкой «Запуск от имени администратора». Спасибо!
Изи
В Windows 7, когда я делаю это, я получаю:The following error occurred: The service has not been started.
User
@echo off && w32tm / resync - команда propmpt говорит, что не распознает команду (w32tm)
Арпит Парех
..
Команду
1
@DeepakKamat, вам, вероятно, нужно использовать службы Windows (введите «services.msc» в окне запуска или поиска). Прокрутите вниз, чтобы найти Windows Time. Щелкните правой кнопкой мыши и выберите «Свойства». Там вы можете настроить автоматический запуск.
Кирк Лимон
1
@echo off
net start W32Time
w32tm /resync
echo sync complete
  1. Скопируйте этот код в Блокнот и сохраните его в виде .batфайла.
  2. Запустите пакетный файл с правами администратора или запланируйте задачу для запуска этого пакетного файла из планировщика задач, как требуется.

Примечание. Для этого необходимы права администратора и работающее подключение к Интернету.

Саинат Прабху
источник
0

Я делал это с помощью команды net.

для нтп

чистое время ntp.server.foo

для окон

сетевое время \ сервер

Я не могу вспомнить, нужен ли вам какой-нибудь флаг / ntp для ntp ... он скажет вам, если вы это сделаете.

Kyle__
источник