Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Windows Server 2025, Windows Server 2022, Windows Server 2019,
Les conteneurs Windows prennent en charge la possibilité de gérer une configuration de fuseau horaire virtualisé distincte de l’hôte. Toutes les configurations utilisées traditionnellement pour le fuseau horaire de l’hôte ont été virtualisées et sont instancenées pour chaque conteneur. Avec cette fonctionnalité, les conteneurs Windows offrent les comportements suivants :
- Lors du démarrage du conteneur, le fuseau horaire de l’hôte est hérité et reste dans le conteneur. Si le fuseau horaire de l'hôte change pendant que le conteneur est en cours d'exécution, alors le fuseau horaire stocké dans le conteneur ne change pas. Pour hériter à nouveau du fuseau horaire de l’hôte, le conteneur doit être redémarré.
- Le conteneur conserve la configuration du fuseau horaire de l’hôte observée lors du démarrage du conteneur uniquement jusqu’à ce que l’utilisateur configure explicitement le fuseau horaire à partir du conteneur. Une fois que vous avez défini le fuseau horaire à partir du conteneur, la configuration est virtualisée et le conteneur ne fait plus référence à l’hôte.
- Si vous configurez le fuseau horaire du conteneur et enregistrez par la suite l’état du conteneur, la configuration du fuseau horaire persiste entre les redémarrages.
Toutes les API en mode noyau et en mode utilisateur liées à la configuration du fuseau horaire système sont désormais prenant en charge le conteneur. Lorsqu’un thread s’exécute dans le contexte d’un conteneur appelle une API système pour interroger l’heure locale, il récupère la configuration du fuseau horaire du conteneur au lieu de celle de l’hôte. Les données de fuseau horaire écrites à partir d’un conteneur sont désormais conservées dans un stockage spécifique au conteneur et le conteneur en question n’hérite plus des données de fuseau horaire actuelles de l’hôte pendant le démarrage. Cela signifie qu’une fois que vous avez défini le fuseau horaire, le conteneur continue d’utiliser le fuseau horaire configuré entre les redémarrages. Tous les conteneurs basés sur une image héritent de la configuration du fuseau horaire tant qu’il a été défini explicitement dans l’une des couches.
Le tableau suivant montre les builds prises en charge pour chaque SKU :
| SKU | Version prise en charge |
|---|---|
| Windows Server 2019 | 10.0.17763.1935 ou version ultérieure |
| SAC 20H2 | 10.0.19042.985 ou version ultérieure |
| Windows Server 2022 | Toutes les versions |
| Windows Server 2025 | Toutes les versions |
Comment configurer le fuseau horaire du conteneur ?
Tout d’abord, vous devez disposer des versions d’hôte et d’invité contenant cette fonctionnalité, ce qui signifie qu’elles s’exécutent sur un correctif de maintenance 2105B ou une version ultérieure. L’exécution de versions antérieures rétablit simplement le comportement du conteneur pour synchroniser le fuseau horaire de l’hôte, la configuration de ces versions n'ayant aucun impact sur l’hôte ou la machine invitée.
Note
La configuration du fuseau horaire nécessite des privilèges d’administration, en particulier SeTimeZonePrivilege. Le compte ContainerAdministrator dispose de ce privilège. Par conséquent, la recommandation consiste à s’exécuter avec les privilèges minimum nécessaires pour votre charge de travail et à réserver le compte ContainerAdministrator pour les tâches administratives, telles que la définition du fuseau horaire.
La méthode recommandée pour configurer le fuseau horaire du conteneur est via l’utilitaire de TZUtil.exe ou l’applet de commande Set-TimeZone PowerShell. Ces utilitaires sont bien entretenus et offrent une commodité pour définir facilement le fuseau horaire. Toute autre méthode doit interagir directement avec les API système. Les versions d’images de base avec TZUtil.exe ou PowerShell incluses fonctionnent directement dès l’installation. L’image de base Nanoserver est une exception, car cette image ne prend pas en charge TZUtil.exe ou PowerShell par défaut. Il nécessite donc un utilitaire personnalisé pour interagir avec les API système. Dans tous les cas, applications nouvellement écrites ne doivent pas dépendre du fuseau horaire du système d’exploitation, sauf absolument nécessaire et doivent plutôt tenir compte de celui-ci dans les données et la logique de l’application.
Exemple utilisant Windows Server 2019
À l’aide de l’image de base windows Server 2019 Server Core, voici un exemple de définition d’un fuseau horaire virtualisé.
Après avoir démarré le conteneur, définissez le fuseau horaire sur le fuseau horaire de l’hôte (dans cet exemple, il s’agit de Pacific Standard Time) comme indiqué ci-dessous :
PS C:\> tzutil /g Pacific Standard TimeDéfinissez le fuseau horaire de l’hôte sur l’heure standard de l’Asie centrale (UTC+6:00) et notez que l’heure standard du Pacifique apparaît toujours dans le conteneur :
PS C:\> Get-TimeZoneId : Pacific Standard Time DisplayName : (UTC-08:00) Pacific Time (US & Canada) StandardName : Pacific Standard Time DaylightName : Pacific Daylight Time BaseUtcOffset : -08:00:00 SupportsDaylightSavingTime : TrueNotez que lors du démarrage du conteneur pour la première fois, la configuration est définie sur ce qui a été configuré lors de la création de l’image de base jusqu’à ce que vous le configuriez vous-même. Dans la plupart des cas pour les images de base Windows, la valeur par défaut est Pacific Standard Time.
Ensuite, définissez le fuseau horaire du conteneur sur « Heure standard de Samoa » :
PS C:\> tzutil /s "Samoa Standard Time" PS C:\> tzutil /g Samoa Standard Time PS C:\> Get-TimeZoneId : Samoa Standard Time DisplayName : (UTC+13:00) Samoa StandardName : Samoa Standard Time DaylightName : Samoa Daylight Time BaseUtcOffset : 13:00:00 SupportsDaylightSavingTime : TrueMaintenant, le fuseau horaire du conteneur a été mis à jour à l’heure standard de Samoa, mais l’hôte reste sur l’heure standard de l’Asie centrale. Cette configuration persiste lors de l’enregistrement de l’état du conteneur.
Si vous redémarrez le conteneur sans enregistrer son état précédemment, le fuseau horaire est défini sur le fuseau horaire de l’hôte, comme indiqué ci-dessous :
PS C:\>tzutil /g Central Asia Standard Time PS C:\> Get-TimeZoneId : Central Asia Standard Time DisplayName : (UTC+06:00) Astana StandardName : Central Asia Standard Time DaylightName : Central Asia Daylight Time BaseUtcOffset : 06:00:00 SupportsDaylightSavingTime : False