Pasek boczny
Konto
Konto
Szukaj
Szukaj
Ustawienia
Ustawienia
Szukaj

Szukaj w:



Zaawansowane wyszukiwanie
Ustawienia
Przełącz na wersję mobilną
Motyw
Język



Notariusz Katowice





Windows 10 cmd - Wyświetlanie czasu zdalnego NTP z pominięciem zegara systemu
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Subskrybuj ten wątek
mes mariusz
Użytkownik
Offline

Reputacja: 1

 0     0    
1   07-09-2016, 06:20   
Edytuj ten post      Cytuj     
Cześć. Poddałem się w temacie synchronizacji zegara Windows 10 z serwerem NTP w sieci LAN. Rozwiązania teoretyczne (wbudowane w system) nie działają w praktyce.

Zamierzam inaczej podejść do tematu. Niech skrypt .bat oleje zegar systemowy i podejmuje decyzje na podstawie czasu pobieranego bezpośrednio z serwera NTP działającego na bramie 192.168.1.1

Ktoś ma pomysł jak za pomocą linii komend Windows 10 wyświetlić bieżącą godzinę pobraną z serwera NTP?
gbbsoft
Przyjaciel
Offline

Reputacja: 60

 0     0    
2   07-09-2016, 07:33   
Edytuj ten post      Cytuj     
time /t
mes mariusz
Użytkownik
Offline

Reputacja: 1

 0     0    
3   07-09-2016, 07:51   
Edytuj ten post      Cytuj     
(07-09-2016, 07:33)gbbsoft napisał(a): time /t

resim

resim
mes mariusz
Użytkownik
Offline

Reputacja: 1

 0     0    
4   07-09-2016, 09:46   
Edytuj ten post      Cytuj     
Potrzebuję to zrobić z poziomu skryptu bat (systemy zamrożone na większej liczbie maszyn - Deep Freeze), konfiguracja wstępna systemu odbywa się za pomocą autostartu w postaci pliku .bat pobieranego przy starcie każdej z maszyn z lokalizacji sieciowej.

Niestety Windows 10 się uparł, i twierdzi, że polecenia nie wykona, i najwyraźniej admina ma w 4 literach...

resim

resim

Polecenia wykonywane w cmd z podniesionymi uprawnieniami (na prawach administratora), ale Win 10 ma to najwyraźniej w poważaniu...

Postanowiłem więc olać system (z Windowsem się nie dogadasz). Zamierzam inaczej podejść do tematu. Niech skrypt .bat podejmuje decyzje na podstawie czasu pobieranego bezpośrednio z serwera NTP działającego na bramie 192.168.1.1.

I chyba właśnie znalazłem rozwiązanie:

Kod:
w32tm /stripchart /computer:192.168.1.1 /samples:1 | findstr d:


Jeszcze tylko przydałoby się wyciąć z odpowiedzi:

Kod:
09:33:44 d:+00.0270605s o:+00.0462896s  [                           *                           ]

ten najbardziej interesujący string ( 09:33:44 ) a właściwie wyciąć wszystko poza nim.
gbbsoft
Przyjaciel
Offline

Reputacja: 60

 0     0    
5   07-09-2016, 11:45   
Edytuj ten post      Cytuj     
może przejdź na PowerShell, ma więcej możliwości...

Tam można wycinać fragmenty tekstów:
https://technet.microsoft.com/en-us/libr...76901.aspx
mes mariusz
Użytkownik
Offline

Reputacja: 1

 0     0    
6   07-09-2016, 11:50   
Edytuj ten post      Cytuj     
Wracając do tematu, gdyby ktoś szukał gotowego rozwiązania:

Kod:
@echo off

call :getntptime
echo %ntptime%
pause
goto :eof

:getntptime
  FOR /F "delims=" %%I IN ('w32tm /stripchart /computer:217.96.29.26 /samples:1') do SET VAR=%%I
  SET ntptime=%VAR:~0,8%
exit /b
mes mariusz
Użytkownik
Offline

Reputacja: 1

 0     0    
7   08-09-2016, 06:44   
Edytuj ten post      Cytuj     
mes mariusz napisał(a):Wracając do tematu, gdyby ktoś szukał gotowego rozwiązania:

Kod:
@echo off

call :getntptime
echo %ntptime%
pause
goto :eof

:getntptime
  FOR /F "delims=" %%I IN ('w32tm /stripchart /computer:217.96.29.26 /samples:1') do SET VAR=%%I
  SET ntptime=%VAR:~0,8%
exit /b

To rozwiązanie ma pewną wadę. Nie działa gdy wybierzemy niedziałający NTP, lub gdy NTP przestanie działać.

Użyłem:

w32tm /stripchart /computer:192.168.1.1 /samples:1

zamiast:

w32tm /stripchart /computer:192.168.1.1 /samples:1 | findstr d:

gdyż składnia:

FOR /F "delims=" %%I IN ('w32tm /stripchart /computer:217.96.29.26 /samples:1 | findstr d:') do SET VAR=%%I

zadziałać nie chce.

Jeśli ktoś ma pomysł, jak do tego dodać odnajdowanie wiersza zawierającego "d:" będę wdzięczny za podpowiedź.
Andrzej.K
Moderator
Offline

Reputacja: 312

 0     0    
8   08-09-2016, 07:16   
Edytuj ten post      Cytuj     
mes mariusz napisał(a):Jeśli ktoś ma pomysł, jak do tego dodać odnajdowanie wiersza zawierającego "d:" będę wdzięczny za podpowiedź.
Przecież za odfiltrowanie wiersza z "d:" odpowiada wlaśnie findstr d:
mes mariusz
Użytkownik
Offline

Reputacja: 1

 0     0    
9   08-09-2016, 16:14   
Edytuj ten post      Cytuj     
(08-09-2016, 07:16)Andrzej.K napisał(a):
mes mariusz napisał(a):Jeśli ktoś ma pomysł, jak do tego dodać odnajdowanie wiersza zawierającego "d:" będę wdzięczny za podpowiedź.
Przecież za odfiltrowanie wiersza z "d:" odpowiada wlaśnie findstr d:

Problem w tym, że całość nie chce zadziałać (skrypt wywala się - zostaje zabity przez system) jako argument pętli for:

FOR /F "delims=" %%I IN ('w32tm /stripchart /computer:217.96.29.26 /samples:1 | findstr d:') do SET VAR=%%I

Bez find-a działa (tylko nie tak jak chcę).
Andrzej.K
Moderator
Offline

Reputacja: 312

 0     0    
10   08-09-2016, 22:06   
Edytuj ten post      Cytuj     
Zaczynam się gubić... to jak chcesz, bo skrypt z #6 w wyniku daje godzinę w formacie HH:MM:SS




Zaloguj się lub zarejestruj, aby odpowiedzieć w temacie.
Dołącz do naszej społeczności!


Zarejestruj się
Posiadasz konto? Kliknij poniżej.


Zaloguj się


Użytkownicy przeglądający ten wątek: 1 gości



Portal  Kontakt  Pomoc  Facebook 
© CentrumWindows
Polskie tłumaczenie © 2007-2016 Polski Support MyBB
Silnik forum MyBB, © 2002-2018 MyBB Group
Biznes-Host