Как узнать время на удаленном компьютере

Обновлено: 29.06.2024

Похоже, существует некоторая неопределенность относительно связи w32time и команды NET TIME. Вот информация, что называется, из первоисточника.

Самое главное
Как вы все знаете (или, по крайней мере, должны знать), w32time - служба времени Windows, которая работает почти на всех компьютерах под управлением Windows 2000 и более поздних версий. Она состоит из службы времени (w32time) и пользовательского приложения для управления и диагностики (w32tm.exe). Служба выполняет синхронизацию времени с использованием UDP-порта 123 и протокола NTP. Взаимодействие w32tm.exe со службой времени осуществляется посредством специального RPC-интерфейса. В отличие от службы времени, NET TIME (точнее, приложение net.exe) является пользовательской утилитой для сверки часов с часами удаленного компьютера с использованием совершенно другого механизма. Приложение net.exe из каталога System32 - в некотором смысле "мастер на все руки", с помощью которого можно изменять различные элементы конфигурации операционной системы.
Как работает команда NET TIME

Приложение net.exe существует появилось довольно давно, возможно, еще до выхода Windows 2000. Все возможности net.exe обеспечиваются функциями библиотеки NetApi32.dll: NetUserAdd, NetUserChangePassword, NetJoinDomain и т.д. В этом списке есть функция NetRemoteTOD, которая используется в команде NET TIME. Эту функцию можно вызвать для получения времени на удаленном компьютере с использованием RPC. Вы можете сказать: "Райан, зачем мне использовать команду NET TIME, если я могу набрать 'w32tm /stripchart' и получить те же самые сведения более точно?" Я рад, что вы спросили.

Теперь самое время перечитать одно предложение из предыдущего абзаца. Функцию NetRemoteTOD можно вызвать для получения времени на удаленном компьютере с использованием RPC. Здесь важно то, что взаимодействие осуществляется посредством RPC, а не NTP, именно поэтому команда NET TIME полезна и в настоящее время. Предположим, на каком-то компьютере по некоторой причине не работает служба времени, например, в связи с отказом или неверной настройкой. Если вам необходимо узнать время на этом компьютере, то в случае с w32tm.exe вас постигнет неудача. w32tm.e xe использует протокол NTP, поэтому для получения результатов требуется работа службы времени на удаленном компьютере. NetRemoteTOD использует RPC, и для того, чтобы узнать время на удаленном компьютере, достаточно чтобы на нем работала служба "Удаленный вызов процедур (RPC)". В этом и заключается сила NET TIME.

Однако, команда NET TIME не безупречна. В типовых условиях контроллеры домена (к которым обычно направляется вызов NetRemoteTOD) могут быть недоступны каждой машине домена. С другой стороны, UDP-порт 123, используемый службой времени, редко блокируется.

Как пользоваться командой NET TIME

NET
[ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |
HELPMSG | LOCALGROUP | PAUSE | SESSION | SHARE | START |
STATISTICS | STOP | TIME | USE | USER | VIEW ]

Нас интересует аргумент 'TIME' (ниже приведены данные для Windows 7):

C:\>net help time
The syntax of this command is:

[\\computername | /DOMAIN[:domainname] | /RTSDOMAIN[:domainname]] [/SET]

NET TIME synchronizes the computer's clock with that of another computer
or domain, or displays the time for a computer or domain. When used without
options on a Windows Server domain, it displays the current
date and time at the computer designated as the time server for the domain.

\\computername Is the name of the computer you want to check or
synchronize with.

/DOMAIN[:domainname] Specifies to synchronize the time from the Primary Domain
Controller of domainname.

/RTSDOMAIN[:domainname] Specifies to synchronize with a Reliable Time Server
from domainname.

/SET Synchronizes the computer's time with the time
on the specified computer or domain.

The /QUERYSNTP and /SETSNTP options have been deprecated. Please use w32tm.exe
to configure the Windows Time Service.

NET HELP command | MORE displays Help one screen at a time.

Как видите, у команды есть набор параметров, для каждого из которых требуется пояснение. По умолчанию, при запуске команды NET TIME без параметров выполняется попытка обнаружения контроллера домена (используя DC Locator) и последующий вызов NetRemoteTOD для получения времени на этом контроллере домена.

У команды NET TIME есть три параметра, определяющих ее поведение. Параметр /DOMAIN используется для задания имени домена, в котором нужно искать контроллер домена с флагом TIMESERV. Параметр /RSTDOMAIN работает так же, за исключением того, что ищет контроллер домена с флагом GTIMESERV. Параметр /SET используется для установки на локальном компьютере такого же времени, как и на удаленном компьютере.

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

Вы, наверное, также заметили у команды NET TIME параметры и /QUERYSNTP /SETSNTP. До появления w32tm.exe они использовались для указания сервера, с которым должна синхронизироваться служба w32time. С тех пор, как эту работу выполняет w32tm.exe, параметры и /QUERYSNTP /SETSNTP стали менее значимыми.

Практика

Команда NET TIME без параметров возвращает время на контроллере домена. Контроллер домена выбирается произвольным образом: единственный критерий отбора - наличие флага TIMESERV, означающего, что это сервер времени домена.

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


Удаление папки из реестра на удаленном компьютере в сети
Доброго времени суток всем! Такой вопрос: Возможно ли как-нибудь зная путь до папки в реестре и.

Путь к БД на удаленном компьютере
Проблема такая: Есть сервер(MS SQL) в котором нужно создать БД. Для этого нужно явно указать путь.

Дальше отлавливаешь и парсишь этот вывод с консоли.
Возможно, и как-то проще можно А у меня при такой команде пишет, что "Служба не запущена".
А вообще по теме: создать сервер и клиент. Клиент опрашивает сервер сколько время, а сервер отвечает клиенту. А у меня при такой команде пишет, что "Служба не запущена".
А вообще по теме: создать сервер и клиент. Клиент опрашивает сервер сколько время, а сервер отвечает клиенту.

вот еще бы знать как это создать)))

а ситуация у меня такая:
2 машины: сервак и клиент обе без доступа в инет.
На серваке БД Oracle.
На клиенте проект на VB на VS2008. В проекте на форме каждую секунду идет обращение к серверу к БД Oracle. Если на серваке в БД данные не обновлялись больше 10 секунд, то у меня моргает иконка "аварийный сигнал". При этом сейчас время обновления данных в БД Oracle сверяется со временем на клиенте. А надо чтобы оно сверялось со временем, которое на сервере.

Проверка существования файла на удаленном компьютере
Здравствуйте, Господа! Появилась такая проблема: Был сервер, на котором установлен IIS, на нем.

Не работает udp сервер на удалённом компьютере
на локальной сети всё работает нормально смс передаются а на удалённом не работает не приходят ip.

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

Отслеживание состояния службы на удаленном компьютере
Всем привет. Подскажите как отследить состояние службы на удалённом компьютере. Использую.

Удаление запущенных на удаленном компьютере процессов
Подскажите, есть список запущенных на удаленном компьютере процессов и есть документ,в котором.

Нужен способ получать удаленно текущее время с заданного компьютера домена Windows, не предоставляя пользователю домена административный доступ к этому компьютеру.
Я знаю два способа при наличии прав администратора:
1. WMI (класс Win32_ComputerSystem)
2. Команда консоли Net time \\<ComputerName>

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

нахера? если этот комп в домене автоматом получает время домена априори..

Я давным-давно без всяких WMI получал время удаленного компа след.образом - создавал в его сетевой папке временный файл и вытаскивал время из атрибутов файла.

(1) Думаю что это утверждение не всегда верно, т.к. служба синхронизации времени может быть отключена. Ну и хочется еще и между доменами заставить это работать.

(2) Под произвольным компьютером, с которого нужно получать время имеется ввиду компьютер, где моя учетная запись будет иметь очень ограниченные права (например это сервер 1С, к серверному контексту которого я не имею доступа).

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

(7) что тебе мешает записівать разницу времени между сервером и клиентом, а потом на дельту уже изменять время?

Точнее не только это, но это в том числе. Повторяю доступа к серверному контексту у меня нет.

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

(12) Согласен, что такое редко встречается, но еще есть варианты: разные домены, рабочая группа, рабочая группа и домен. В общем это из реальной практики я перечислил. В постановке задачи решил сразу это не писать, чтобы сначала более простого варианта решение попробовать найти.

(11) Инета на компьютерах конечно же может не быть. Но способ полезный, местами работает. Не знал про такой. Спасибо!

(13) ну а когда логи отправляешь отправляй и timestamp тогда можешь и дельту высчитать.

(14) нищеброды, едой платят ?
с жпс тогда бери, если не подвал конечно.

NET TIME синхронизирует показания часов компьютера с другим компьютером или доменом. Если используется без параметров в домене Windows Server, выводит текущую дату и время дня, установленные на компьютере, который назначен сервером времени для данного домена. Эта команда позволяет задать сервер времени NTP для компьютера.

Видео: NET TIME - как синхронизировать время с сервером в Windows

Синтаксис команды NET TIME

  1. net time [] [/set]
  2. net time [\\имя_компьютера] [/querysntp]
  3. net time [\\имя_компьютера] [/setsntp[:список_серверов_NTP]], где
  • \\имя_компьютера - указывает имя сервера, время на котором нужно проверить или с которым нужно синхронизировать таймер.
  • /domain[:имя_домена] - задает имя домена, с которым синхронизируются часы.
  • /rtsdomain[:имя_домена] - указывает домен сервера надежного времени (RTS), с которым будут синхронизироваться часы.
  • /set - синхронизирует часы с временем указанного компьютера или домена.
  • /querysntp - выводит имя сервера NTP (Network Time Protocol), сконфигурированного для локального компьютера, или компьютера, указанного в параметре \\имя_компьютера.
  • /setsntp[:список_серверов_NTP] - указывает список серверов времени NTP для использования на локальном компьютере.

Примеры команды NET TIME

  • net help time - отображение справки для указанной команды net;
  • net time \\PC1- вывод на экран текущего времение сервера в сети для компьютера PC1;
  • net time /querysntp - отображение на экране имени сервера NTP для локальнго компьютера;
  • net time \\Proton /set - синхронизация часов локального компьютера с временем компьютера Proton.

Net time системные ошибки в ходе выполнения

Системная ошибка 5. Отказано в доступе

Часто спрашивают, почему появляется "Системная ошибка 5. Отказано в доступе" при использовании команды Net time. Отвечаю, все в правах пользователя под которым запускается команда. В качестве примера пробовал запустить команду сначала с правами локального администратора на Windows 10 - получил ошибку, далее запустил с правами администратора домена - результат на рисунке ниже.

Пример команды net time

Системная ошибка 1314. Клиент не обладает требуемыми правами

Вам нужно зайти в "редактор локальной политики безопасности". Открываем "Выполнить" Win+R. Ввести - "secpool".

Локальные политики-Параметры безопасности-Контроль учетный записей: Все администраторы работают в режиме одобрения администратором-Отключить-ОК-Перезагрузить компьютер/ноутбук.

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

В этой статье я покажу как удаленно узнать время загрузки нескольких компьютеров с помощью простого PowerShell скрипта. Идея этой статьи возникла недавно, когда я по RDP перезагрузил несколько удаленных серверов Windows и захотел узнать, когда загрузилась на них операционная система.

В Powershell 3.0 и выше для получения информации о времени загрузки Windows можно использовать командлет Get-CimInstance. Командлет Get-CimInstance позволяет обращаться к различным классам Win32_OperatingSystem. Полный список доступных классов и методов можно вывести с помощью команды:

Get-CimInstance Win32_OperatingSystem | Get-Member

В данном случае нас интересует свойство LastBootUpTime.

Get-CimInstance Win32_OperatingSystem | Get-Member

Проверим время загрузки компьютер, на котором запускается команда:

Get-CimInstance -ClassName win32_OperatingSystem | select csname, lastbootuptime

Get-CimInstance - узнать время загрузи Windows - lastbootuptime

Чтобы проверить время загрузки Windows на удаленном компьютере, нужно использовать атрибут ComputerName. Например, проверим дату загрузки Windows на компьютере с именем Server1.

Get-CimInstance -ClassName win32_operatingsystem -ComputerName Server1| select csname, lastbootuptime

Get-WMIObject lastbootuptime

Для преобразования времени из формата TimeStamp в привычный вид мы воспользовались командлетом ConverttoDateTime.

Проверим время загрузки Windows сразу на нескольких серверах (имена серверов указываются через запятую):

Получить значение lastbootuptime с нескольких удаленных компьютеров

Если нужно узнать время загрузки сразу на большом количестве компьютеров в сети, список компьютеров можно сохранить в текстовый файл (каждая строка – отдельное имя компьютера) и с помощью цикла foreach проверить время загрузки:

Читайте также: