Wie erzwinge ich die Synchronisierung der Uhrzeit auf Windows Workstation oder Server?


Antworten:


81

Wie Kyle sagte, w32tm /resyncist dies der moderne Weg. Weitere Informationen zum Befehl w32tm finden Sie in diesem Link zur Microsoft Knowledgebase (KB 307897) .

Es gibt auch net timeeine ältere Version, die aber vielleicht einfacher ist.


4
w32tm /resync"Der Computer wurde nicht erneut synchronisiert, da die erforderliche Zeitänderung zu groß war." da meine CMOS-Batterie leer ist und die Uhr meines Computers bei jedem Start am 1.1.2000 um 00:00 Uhr zurückgesetzt wird. Irgendeine Hilfe?
Never Quit

Gefunden Lösung gemäß blog.bruteforcetech.com/archives/911 , vergessen Sie nicht W32Time - Dienst neu zu starten net stop W32Timeund erneut versuchenw32tm /resync
Never Quit

1
Die Verbindung ist unterbrochen.
Stijn Sanders

2
@LightnessRacesinOrbit und die anderen, wenn du den Fehler "Zeitumstellung war zu groß" bekommst, benutze w32tm /resync /force. Wenn der Dienst jedoch nicht gestartet wurde, führen Sie ihn aus net start w32time. Beides von einer erhöhten Eingabeaufforderung aus.
cdlvcdlv

4
Um zu lösen, dass die Zeitänderung zu groß war, ändern Sie die Registrierungseinträge MaxNegPhaseCorrection und MaxPosPhaseCorrection in HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ Config auf Maximum (ffffffff)
Tomas F.

37

Für diejenigen, die diese Frage noch stellen.

  1. Verwenden Sie zum Aktualisieren den folgenden Befehl (Server 2008 und 2012 kompatibel)

    w32tm /config /manualpeerlist:"ntp_server" /syncfromflags:manual /reliable:yes /update
    

ändere den ntp_server mit deiner quelle

  1. Starten Sie den Zeitdienst neu

    net stop w32time
    net start w32time
    
  2. Synchronisiere die Zeit neu

    w32tm /resync
    
  3. Überprüfen Sie Ihren Synchronisierungsstatus

    w32tm /query /status
    

Die obigen Befehle sollten in Ordnung sein, wenn Ihre Quellen ordnungsgemäß funktionieren und / oder Ihre Verbindung in Ordnung ist (Firewall oder Microsoft Forefront können ebenfalls ein Problem darstellen). Die folgenden Befehle können bei der Fehlerbehebung hilfreich sein

Peers auflisten

w32tm /query /peers

So listen Sie NTP-Quellen auf:

w32tm /query /source

Schöne, umfassende Antwort! Definieren Sie +1 für den Befehl zum Einrichten des NTP-Servers.
Shaamaan

Hinweis: Dies funktioniert für Windows 10 Professional ohne das Flag "/ update", da dies ungültig ist.
Fmstrat

Zur Fehlerbehebung ist es oft nützlich, die Verbindung zu einem bestimmten Server zu testen:w32tm /monitor /computers:time.windows.com
Randy Orrison,


16

Sie können verwenden:

w32tm /resync

Darüber hinaus wird durch die Verwendung w32tm /resync /rediscoverauch die "Neuerkennung von Netzwerkressourcen vor der Neusynchronisierung erzwungen".

Oder mit:

net time /set

Fordert Sie auf, die Uhrzeit auf den DC einzustellen. (Funktioniert für ältere Windows-Versionen)


2
Aus irgendeinem Grund w32tm /resynchat es bei mir nicht geklappt, aber es hat net time /SET /Ygeklappt. Früher habe ich /Yfür , net timeweil es offenbar nicht stdin richtig gelesen , wenn sie durch sshd von Cygwin geht.
Qwertzguy

Beim Laufen w32tm /resyncbekam ich die Meldung The computer did not resync because no time data was available.auch nach einem Neustart des Dienstes aber net time /SETfunktionierte bei mir einwandfrei.
Chris Magnuson

3

Betriebssystem: MS Windows 7

Alle oben genannten Ideen wurden ausprobiert, haben aber nicht geholfen. Das ursprüngliche Problem besteht weiterhin: " Der Computer wurde nicht erneut synchronisiert, da die erforderliche Zeitänderung zu groß war. "

Die Lösung befindet sich in der Registrierung: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ w32time \ Config

  • Ändern Sie dies, wenn die Ortszeit in Eile ist (z. B. 31.12.2050): MaxNegPhaseCorrection
  • Ändern Sie dies, wenn die Ortszeit verzögert ist (z. B. 01.01.1980): MaxPosPhaseCorrection
  • Die Standardwerte sind 0xD2F0 (dh 54000 Sek. = 15 Stunden)

(Verwenden Sie Google für weitere Informationen.)

Ich benutze diese einfache win_clock_sync.batDatei aus dem Startmenü StartUp:

echo off
echo Sync computer time from internet
echo.
echo Back-up registry w32time\Config
reg export HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config exported_w32time.reg /y
rem changing the registry keys temporarly:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxNegPhaseCorrection /d 0xFFFFFFFF /t REG_DWORD /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\w32time\Config /v MaxPosPhaseCorrection /d 0xFFFFFFFF /t REG_DWORD /f
echo.
echo w32tm /config /update
w32tm /config /update
echo.
echo w32tm /resync /rediscover 
w32tm /resync /rediscover 
echo.
echo Restore registry w32time\Config
reg import exported_w32time.reg

Genießen! :-)


Ihre Antwort könnte eine Erklärung der Funktion der Werte MaxNegPhaseCorrectionund enthalten MaxPosPhaseCorrection, anstatt vorzuschlagen, dass sie blind deaktiviert werden sollten. Dazu setzt dieses Skript seine Daten auf 0xFFFFFFFF .
Twisty Imitator

Die erwähnte Fehlermeldung "Der Computer wurde nicht erneut synchronisiert, da die erforderliche Zeitänderung zu groß war." Kann nicht ignoriert werden. ohne die Daten in den Werten MaxNegPhaseCorrection und MaxPosPhaseCorrection zu ändern. Oder haben SIE eine funktionierende Lösung für das ursprüngliche Problem gefunden? Und warum schreibst du "blind"? Wenn Sie eine kurze Zeit zum Lesen benötigen, können Sie sehen, wie die Originaldaten dieser Werte exportiert und importiert werden.
Akos

Sie sollten dieses Skript veranlassen, die Werte in deaktiviert zu ändern, eine Aktualisierung zu erzwingen und sie dann wieder in empfohlene Werte zu ändern.
Cory Knutson

Twisty hat gültige Punkte, die sich nicht wirklich auf das von NeverQuit angesprochene Problem konzentrieren ... aber dann hat Akos nicht klar erklärt, warum das Skript eine geeignete Lösung für NeverQuit ist. Im Wesentlichen existieren die Registrierungswerte MaxNegPhaseCorrection und MaxPosPhaseCorrection, um zu verhindern, dass der W32Time-Dienst dramatische Änderungen an der aktuellen Zeit vornimmt zuverlässige Zeitquelle, dann verhindern die Korrekturregler, dass w32tm die große Abweichung behebt. In dieser Situation ::: b
Creaky_Uncle_Nick

@Akos Downvote wurde zurückgezogen, da Sie darauf hingewiesen haben, dass Ihr Skript die Änderungen an den Werten MaxNegPhaseCorrectionund tatsächlich rückgängig macht MaxPosPhaseCorrection. Ich empfehle weiterhin, eine Erläuterung der Funktionsweise dieser beiden Einstellungen beizufügen, da sie ein Schlüsselmerkmal Ihrer Antwort sind. Es ist wichtig, dass ein Administrator sich darüber im Klaren ist, dass er sein System so konfigurieren würde, dass er jede zeitliche Änderung akzeptiert, falls diese Einstellungen dauerhaft übernommen werden. egal wie groß, was Kerberos und andere wichtige Netzwerkdienste beschädigen könnte.
Twisty Imitator

2

Powershell One Liner, wenn der NTP-Server konfiguriert ist:

gsv w32time | sasv; w32tm /resync /force

Sie können diese .bat-Datei in den Systemstart versetzen, wenn Ihre CMOS-Batterie fehlgeschlagen ist, damit sie beim Starten des Betriebssystems erneut synchronisiert werden kann:

@powrshell -NoProfile -Command 'gsv w32time | sasv; w32tm /resync /force'

/forceist keine dokumentierte Befehlszeilenoption für w32tm /resync.
Dai


0

Versuchen Sie es in dieser Reihenfolge. Funktioniert die ganze Zeit.

w32tm /unregister

w32tm /register

net stop w32time

net start w32time

w32tm /resync

0

Nahezu keine der Lösungen (außer @Akos) funktioniert, wenn der Host ein Active Directory-Domänencontroller (ADDC) für Windows Server 2016 ist, da er sich selbst als "zuverlässige" Quelle darstellt, die keine großen zeitlichen Änderungen vornehmen kann.

w32tm /resync /forcefunktioniert nicht, da der /forcein Server 2016 nicht erscheint.

net time /SET /Y funktioniert auch nicht, weil es gefragt hätte:

Möchten Sie die Uhrzeit des lokalen Computers so einstellen, dass sie mit der Uhrzeit um übereinstimmt \AD.example.net? (J / N) [J]

Natürlich wird es nicht funktionieren, wenn Sie eingeschaltet sind AD.example.net, /Ynur die Frage verbirgt.

Die Schritte funktionieren für mich mit PowerShell:

  1. W32-Zeitdienst als unzuverlässig festlegen :
w32tm /config /reliable:no /syncfromflags:manual /update

Option /syncfromflags:manualbedeutet Synchronisierung mit NTP, das in der Peer-Liste aufgeführt ist (dh externes NTP), /updateum den Zeitdienst zu benachrichtigen, den die Konfiguration geändert hat.

  1. Starten Sie die w32time neu
Stop-Service w32time
Start-Service w32time
  1. Synchronisieren
w32tm /resync

Das sollte funktionieren.

  1. Wenn Sie ADDC als zuverlässige Zeitquelle benötigen, machen Sie es wieder zuverlässig:
w32tm /config /reliable:yes /update
Stop-Service w32time
Start-Service w32time

0

Ich habe ein Win10-Image, das ich in einem Snapshot wiederherstellen kann, in dem diese Fehlermeldung immer reproduzierbar ist: "The computer did not resync because the required time change was too big."

Ich habe versucht, eine Lösung für dieses Problem ohne Erfolg zu schreiben:

reg import nettime.reg # updates MaxPosPhaseOffset and MaxNegPhaseOffset

net start w32time
w32tm.exe /config /manualpeerlist:"pool.ntp.org",0x8 /syncfromflags:manual /reliable:no /update  
w32tm.exe /query /configuration
w32tm.exe /resync /rediscover
w32tm.exe /resync /force

Weder die /reliable:nonoch die MaxPosPhaseCorrectionEinstellungen, noch irgendwelche anderen Befehle hier angegeben hat sofort funktioniert in reproduzierbarer Weise.

Nach dem Aktualisieren der Registrierung, dem Starten des Dienstes, dem Aktualisieren der Konfiguration und dem erneuten Neustarten des Dienstes musste ich noch viele Minuten warten, bis ich w32tm /resync /rediscoverErfolg hatte.

Die Zeitsynchronisation gelingt letztendlich nicht rechtzeitig und zuverlässig.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.