Comment forcer la synchronisation de l'heure sur Windows Workstation ou Server?

Réponses:

81

Comme Kyle l'a dit, w32tm /resyncc'est la manière moderne de le faire. Consultez ce lien vers la base de connaissances Microsoft (KB 307897) pour plus d'informations sur la commande w32tm.

Il y a aussi net timeune version plus ancienne mais peut-être plus facile.

Seanchán Torpéist
la source
4
w32tm /resyncdit "L'ordinateur n'a pas resynchronisé parce que le changement d'heure requis était trop important." car ma pile CMOS est morte et que l’horloge de mon ordinateur se réinitialise à chaque démarrage à 01/01/2000 00h00. De l'aide?
Ne jamais quitter
Solution trouvée selon blog.bruteforcetech.com/archives/911 , n'oubliez pas de redémarrer le service W32Time, net stop W32Timepuis réessayezw32tm /resync
jamais quitter
1
Le lien est cassé.
Stijn Sanders
2
@ LightnessRacesinOrbit et les autres, si vous obtenez l'erreur "le changement d'heure était trop important", utilisez w32tm /resync /force. Mais si vous n'avez pas démarré le service, lancez net start w32time. Les deux à partir d'une invite élevée.
cdlvcdlv
4
Pour résoudre le problème du changement de temps trop important, modifiez les entrées de registre MaxNegPhaseCorrection et MaxPosPhaseCorrection dans HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ Config au maximum (ffffffff)
Tomas F.
37

Pour ceux qui posent encore cette question.

  1. Pour mettre à jour, utilisez la commande ci-dessous (compatible serveur 2008 et 2012)

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

changer le ntp_server avec votre source

  1. Redémarrez le service horaire

    net stop w32time
    net start w32time
    
  2. Resync l'heure

    w32tm /resync
    
  3. Vérifiez votre statut de synchronisation

    w32tm /query /status
    

Les commandes ci-dessus devraient convenir si vos sources fonctionnent correctement et / ou si votre connexion est correcte (le pare-feu ou Microsoft Forefront peut également poser problème). Les commandes ci-dessous peuvent aider au dépannage

Pour lister les pairs

w32tm /query /peers

Pour lister les sources NTP:

w32tm /query /source
utilisateur3011708
la source
Belle réponse complète! Definite +1 pour la commande permettant de configurer le serveur NTP.
Shaamaan
Notez que cela fonctionne pour Windows 10 Professionnel sans l'indicateur "/ update", car celui-ci n'est pas valide.
Fmstrat
Pour le dépannage, il est souvent utile de tester la connexion à un serveur spécifique:w32tm /monitor /computers:time.windows.com
Randy Orrison
24

Vous pouvez utiliser la commande suivante:

w32tm /resync

Kyle Brandt
la source
16

Vous pouvez utiliser:

w32tm /resync

De plus, en utilisant w32tm /resync /rediscoverégalement « la force du réseau redetection avant resynchronisation ressources. »

Ou en utilisant:

net time /set

Vous invitera à régler l'heure sur le contrôleur de domaine. (Fonctionne pour les anciennes versions de Windows)

Brett Larson
la source
2
Pour une raison quelconque, cela w32tm /resyncn'a pas fonctionné pour moi mais l'a net time /SET /Yfait. J'avais l'habitude /Yde net timeparce que, apparemment, il ne lisait pas stdin correctement lors du traitement de sshd depuis cygwin.
Qwertzguy le
En cours d’exécution, w32tm /resyncj’ai reçu le message The computer did not resync because no time data was available.même après un redémarrage du service, mais net time /SETj’ai fonctionné correctement pour moi.
Chris Magnuson
3

Système d'exploitation: MS Windows 7

Toutes les idées ci-dessus ont été essayées mais n'ont pas aidé. Le problème initial existait toujours: " L'ordinateur n'a pas été resynchronisé car le changement d'heure requis était trop important. "

La solution est trouvée dans le registre: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ w32time \ Config

  • changez cela si l'heure locale est pressée (par exemple, 31-Dec-2050): MaxNegPhaseCorrection
  • changez-le si l'heure locale est retardée (par exemple, 1er janvier 1980): MaxPosPhaseCorrection
  • Les valeurs par défaut sont 0xD2F0 (soit 54 000 secondes = 15 heures).

(utilisez Google pour plus de détails)

J'utilise ce simple win_clock_sync.batfichier depuis le menu Démarrer 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

Prendre plaisir! :-)

Akos
la source
Votre réponse pourrait utiliser une explication de la fonction des valeurs MaxNegPhaseCorrectionet MaxPosPhaseCorrectionau lieu de suggérer qu'elles devraient être désactivées aveuglément. C'est ce que fait ce script en définissant leurs données sur 0xFFFFFFFF .
Twisty Impersonator
Vous ne pouvez pas ignorer le message d'erreur mentionné "L'ordinateur n'a pas été resynchronisé car le changement d'heure requis était trop important". sans modifier les données dans les valeurs MaxNegPhaseCorrection et MaxPosPhaseCorrection. Ou bien, avez-vous trouvé une solution satisfaisante au problème initial? Et pourquoi écrivez-vous "à l'aveugle"? Si vous preniez un peu de temps pour lire, alors vous pourriez voir exporter et importer les données d'origine de ces valeurs, ce qui est un peu loin de faire quelque chose de "aveuglément".
Akos
Vous devez faire en sorte que ce script modifie les valeurs sur désactivé, force une mise à jour, puis les ramène aux valeurs recommandées.
Cory Knutson
Twisty a des arguments valables qui ne se concentrent pas vraiment sur le problème soulevé par NeverQuit ... mais Akos n'a pas expliqué clairement pourquoi le script est une solution appropriée pour NeverQuit. En substance, les valeurs de registre MaxNegPhaseCorrection et MaxPosPhaseCorrection permettent d'empêcher le service W32Time d'appliquer des modifications importantes à l'heure actuelle (dans des circonstances telles qu'une source de temps externe qui se détériore mal) source de temps fiable, les contrôles de correction empêcheront w32tm de réparer la grande dérive. Dans cette situation ::: b
Creaky_Uncle_Nick
@Akos Downvote s'est rétracté sur la base de votre remarque que votre script annule effectivement les modifications apportées aux valeurs MaxNegPhaseCorrectionet MaxPosPhaseCorrection. J'encourage toujours à inclure une explication de ce que font ces deux paramètres car ils constituent une caractéristique essentielle de votre réponse. Il est important qu'un administrateur sache que s'il mettait ces paramètres en place de manière permanente, il configurerait son système pour accepter tout changement d'heure. quelle que soit leur taille, Kerberos et d’autres services réseau importants pourraient être endommagés.
Twisty Impersonator
2

Powershell un liner si le serveur NTP est configuré:

gsv w32time | sasv; w32tm /resync /force

Vous pouvez mettre ce fichier .bat au démarrage en cas d'échec de la batery CMOS afin qu'il puisse se resynchroniser au démarrage du système d'exploitation:

@powrshell -NoProfile -Command 'gsv w32time | sasv; w32tm /resync /force'
majkinetor
la source
/forcen’est pas une option de ligne de commande documentée pour w32tm /resync.
Dai
0

Essayez dans cet ordre. Fonctionne tout le temps.

w32tm /unregister

w32tm /register

net stop w32time

net start w32time

w32tm /resync
Slayernoah
la source
0

Presque aucune des solutions (à l'exception de @Akos) ne fonctionne si l'hôte est un contrôleur de domaine Active Directory Windows Server 2016 (ADDC), car il se considère comme une source "fiable" qui ne peut pas effectuer de gros changements de temps.

w32tm /resync /forcene fonctionne pas car il /forcen'apparaît pas dans le serveur 2016.

net time /SET /Y ne fonctionne pas non plus, car il aurait demandé:

Voulez-vous que l'heure de l'ordinateur local corresponde à l'heure \AD.example.net? (O / N) [O]

Bien sûr, cela ne fonctionnera pas si vous êtes sur AD.example.net, /Ycache juste la question.

Les étapes fonctionnent pour moi avec PowerShell:

  1. Définissez le service w32time comme non fiable :
w32tm /config /reliable:no /syncfromflags:manual /update

Option /syncfromflags:manualsignifie sync avec NTP répertorié dans la liste des homologues (c.-à-d. NTP externe), /updatepour notifier le service horaire de la configuration a été modifié.

  1. Redémarrez le temps w32
Stop-Service w32time
Start-Service w32time
  1. Sync
w32tm /resync

Cela devrait marcher.

  1. Si vous avez besoin d'ADDC en tant que source de temps fiable, rendez-le à nouveau fiable:
w32tm /config /reliable:yes /update
Stop-Service w32time
Start-Service w32time
Ding-Yi Chen
la source
0

J'ai une image Win10 que je peux restaurer dans un instantané où ce message d'erreur est toujours reproductible: "The computer did not resync because the required time change was too big."

J'ai essayé de script une solution à ce problème sans résultat:

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

Ni le, /reliable:noni les MaxPosPhaseCorrectionparamètres, ni aucune autre commande indiquée ici ne fonctionnait immédiatement de manière reproductible.

Après la mise à jour du registre, le démarrage du service, la mise à jour de la configuration et le redémarrage du service, je devais encore attendre plusieurs minutes avant de w32tm /resync /rediscoverréussir.

La synchronisation du temps réussit finalement, mais pas de manière fiable et en temps voulu.

Comotion
la source