web-dev-qa-db-fra.com

Impossible de synchroniser l'horloge Windows 10 avec Internet

J'ai un grave problème avec mon ordinateur. Je ne parviens tout simplement pas à synchroniser l'horloge de ma machine Windows 10 sur Internet. Lorsque je vais dans "Paramètres de date et heure" et que je désactive, puis de nouveau, "Régler l'heure automatiquement", la charge est extrêmement longue ou affiche immédiatement la mauvaise heure. J'ai cherché Internet pendant si longtemps, mais rien ne semble fonctionner là-bas. Même lorsque je restaure complètement mes fenêtres, cela ne fonctionne toujours pas. Et ce qui est vraiment étrange, c'est que l'horloge tourne parfois même à l'envers !

Peut-il y avoir un problème avec ma carte mère ou quelque chose comme ça?

17
Awusuwah

Tout d'abord, il s'agit d'un problème Windows datant de plus de dix ans! Ce n'est pas nouveau! Windows a eu des problèmes pour synchroniser l'heure du système avec NTP serveurs aussi longtemps que je me souvienne.

Si vous devez utiliser Internet pour obtenir une heure système précise, utilisez l'un des serveurs NTP du NIST américain. N'utilisez pas le serveur Microsoft NTP! Ça ne marche jamais! Cela n'a jamais fonctionné pour moi personnellement et cela n'a jamais fonctionné pour de nombreuses personnes sur le WWW qui posent des questions similaires à celle que vous venez de poster ici. Cependant, l'utilisation du serveur NTP du NIST a toujours fonctionné pour moi, et cela a également fonctionné pour d'autres personnes, comme en témoignent les nombreux résultats positifs obtenus en lisant le discussions sur le forum web depuis une dizaine d'années.

Je ne sais pas quel serveur fonctionne le mieux (le NIST en a plusieurs). Mais vous pouvez facilement le découvrir car l’adresse de l’un d’eux est fournie comme préréglage facultatif sous Windows depuis au moins Windows XP. C'est celui qu'ils auraient dû utiliser par défaut, mais ils ont opté pour leur propre serveur NTP qui ne fonctionne jamais. Les autres adresses sont disponibles sur le site Web du NIST.

Name               IP Address
time-a.nist.gov    129.6.15.28
time-b.nist.gov    129.6.15.29
time-c.nist.gov    129.6.15.30
time-d.nist.gov    2610:20:6F15:15::27

Vous pouvez trouver une liste plus complète ici: http://tf.nist.gov/tf-cgi/servers.cgi

Le seul facteur qui distingue votre question est que vous utilisez Windows 10. C'est la seule chose qui diffère des questions similaires posées par d'autres personnes il y a plus de dix ans. Mais le problème central reste le même. C'est simplement qu'avec Windows 10, une partie du contrôle granulaire est soustraite à l'utilisateur. Ainsi, l'utilisateur ne peut plus sélectionner le serveur NTP à utiliser, ni saisir l'adresse du serveur que l'utilisateur souhaite utiliser. Ces options sont toujours disponibles, mais elles sont masquées et vous devez savoir comment les localiser.

Vous ne souhaitez pas utiliser l'application Paramètres de Windows 10 si vous êtes un utilisateur expérimenté et que vous souhaitez un contrôle granulaire de votre système. Je peux confirmer ce que vous décrivez ici. Si vous utilisez l'application Paramètres et que vous activez et désactivez l'option "Définir l'heure automatiquement", elle semblera rester bloquée car l'animation de l'indicateur ne cesse de tourner. Ne l'utilisez donc pas car il utilise par défaut le serveur NTP de Microsoft, qui ne fonctionne jamais, et vous ne pouvez pas sélectionner un autre serveur NTP sur cette page dans l'application Paramètres. .

Il existe fondamentalement deux manières de régler automatiquement l'heure système dans Windows 10. Il existe l'application Paramètres et la boîte de dialogue Windows classique. Vous souhaitez utiliser ce dernier et sélectionner le serveur NIST NTP.

Utilisation de l'application Windows 10 Settings

[time

  1. Cliquez sur le bouton du menu Démarrer de Windows ou appuyez sur la touche Windows.
  2. Cliquez sur Paramètres.
  3. Cliquez sur Time & Language.
  4. Cliquez sur Date et heure.
  5. Retournez l'option "Régler l'heure automatiquement", puis réactivez-la.

Utilisation de la boîte de dialogue Date et heure de Windows

[time[time

  1. Cliquez sur le bouton du menu Démarrer de Windows ou appuyez sur la touche Windows.
  2. Cliquez sur Paramètres.
  3. Cliquez sur Time & Language.
  4. Cliquez sur Date et heure.
  5. Faites défiler la liste et cliquez sur le lien "Date, heure et paramètres régionaux supplémentaires".
  6. Cliquez sur le lien "Date et heure".
  7. Cliquez sur l'onglet Heure Internet.
  8. Cliquez sur le bouton "Modifier les paramètres".
  9. Sélectionnez time.nist.gov comme adresse dans la liste déroulante ou utilisez l'un des serveurs répertoriés ci-dessus.
  10. Cliquez sur "Mettre à jour maintenant".
18
Samir

Si, comme moi, votre ordinateur est associé à un domaine Windows, suivez les étapes décrites dans et la réponse de sammyg à l'étape 7, vous remarquerez que vous n'avez pas Internet Time languette. Vous pouvez également avoir des messages dans l'observateur d'événements à partir du service de temps.

Au lieu de cela, votre temps est fourni par le serveur de temps du domaine. L'heure actuelle sur le serveur peut être vérifiée en ouvrant une invite avec une commande élevée et en tapant:

temps net/domaine

Si le temps est différent, vous devriez le mettre à jour avec

temps net/domaine/set

3
JumpingJezza

Aucune des autres solutions n'a fonctionné pour moi.

S'ils ne fonctionnent pas également pour vous, envisagez d'exécuter ce script avec les privilèges d'administrateur en tant que tâche quotidienne du planificateur de tâches:

sur Gist: https://Gist.github.com/aivrit/fdfee71e969ba62670ed0b87c26f3aad

ou ici:

$time = Invoke-RestMethod -Uri http://worldtimeapi.org/api/ip

$timezones = Get-TimeZone -ListAvailable

# there is no global standard in names of timezones nor a unique id of them
# worldtimeapi always has city name in last part of timezone field
# Microsoft has city names in display name
# therefore current solution is to match those names based on city 
foreach ($timezone in $timezones) {
    if ($timezone.DisplayName.ToString() -match $time.timezone.Split("/")[-1]) {
        $current_zone = $timezone
        break
    }
}

if (!$current_zone) {throw "Could'nt find time zone. exiting."}


Set-TimeZone -Name $current_zone.StandardName

Set-Date -Date (Get-Date -Date $time.datetime)
0
Alon Bar-Tzlil