Freigeben über


Virtualisierte Zeitzone

Gilt für: Windows Server 2025, Windows Server 2022, Windows Server 2019,

Windows-Container unterstützen die Möglichkeit, eine virtualisierte Zeitzonenkonfiguration getrennt vom Host zu verwalten. Alle konfigurationen, die traditionell für die Hostzeitzone verwendet werden, wurden virtualisiert und werden für jeden Container instanziert. Mit diesem Feature bieten Windows-Container die folgenden Verhaltensweisen:

  • Beim Starten des Containers wird die Zeitzone des Hosts geerbt und bleibt innerhalb des Containers. Wenn sich die Zeitzone des Hosts ändert, während der Container ausgeführt wird, ändert sich die im Container gespeicherte Zeitzone nicht. Um die Zeitzone des Hosts erneut zu erben, muss der Container neu gestartet werden.
  • Der Container behält die Zeitzonenkonfiguration des Hosts bei, die beim Starten des Containers beobachtet wird, nur , bis der Benutzer die Zeitzone explizit innerhalb des Containerskonfiguriert. Nachdem Sie die Zeitzone aus dem Container festgelegt haben, wird die Konfiguration virtualisiert, und der Container bezieht sich nicht mehr auf den Host.
  • Wenn Sie die Zeitzone des Containers konfigurieren und anschließend den Status des Containers speichern, wird die Zeitzonenkonfiguration über Neustarts hinweg beibehalten.

Alle Kernelmodus- und Benutzermodus-APIs im Zusammenhang mit der Konfiguration der Systemzeitzone sind jetzt containerfähig. Wenn ein Thread, der im Kontext eines Containers ausgeführt wird, eine System-API aufruft, um die lokale Zeit abzufragen, ruft er die Zeitzonenkonfiguration des Containers anstelle der Hostkonfiguration ab. Zeitzonendaten, die aus einem Container geschrieben wurden, bleiben nun im containerspezifischen Speicher erhalten, und der betreffende Container erbt die aktuellen Zeitzonendaten des Hosts während des Starts nicht mehr. Dies bedeutet, dass der Container, nachdem Sie die Zeitzone festgelegt haben, die konfigurierte Zeitzone über Neustarts hinweg verwendet. Alle Container, die auf einem Image basieren, erben die Zeitzonenkonfiguration, solange sie explizit innerhalb einer der Ebenen festgelegt wurde.

Die folgende Tabelle zeigt den unterstützten Build für jede SKU:

Artikelnummer Unterstützter Build
Windows Server 2019 10.0.17763.1935 oder höher
20H2 SAC 10.0.19042.985 oder höher
Windows Server 2022 Alle Versionen
Windows Server 2025 Alle Versionen

Wie kann ich die Zeitzone des Containers konfigurieren?

Zunächst benötigen Sie sowohl Host- als auch Gastversionen, die dieses Feature enthalten. Das bedeutet, dass sie mit einem 2105B-Wartungspatch oder einem höheren Patch ausgeführt wird. Wenn Sie frühere Versionen ausführen, stellen Sie einfach das Verhalten des Containers auf die Spiegelung der Zeitzone des Hosts zurück, wobei die Konfiguration keine Auswirkungen auf den Host oder gast hat.

Anmerkung

Für die Konfiguration der Zeitzone sind Administratorrechte erforderlich, insbesondere SeTimeZonePrivilege. Das ContainerAdministrator-Konto verfügt über diese Berechtigung. Daher empfiehlt es sich, mit den geringstmöglichen Berechtigungen für Ihre Workload zu arbeiten und das ContainerAdministrator-Konto für administrative Aufgaben wie das Festlegen der Zeitzone zu reservieren.

Die empfohlene Methode zum Konfigurieren der Containerzeitzone erfolgt über das TZUtil.exe Hilfsprogramm oder das Set-TimeZone Cmdletvon PowerShell. Diese Dienstprogramme sind gut gepflegt und bieten Komfort, um die Zeitzone einfach festzulegen. Jede andere Methode muss direkt mit den System-APIs interagieren. In TZUtil.exe oder PowerShell enthaltene Basisimageversionen sind sofort einsatzbereit. Das Nanoserver Basisimage ist eine Ausnahme, da dieses Image TZUtil.exe oder PowerShell standardmäßig nicht unterstützt. Daher ist ein benutzerdefiniertes Hilfsprogramm erforderlich, um mit den System-APIs zu interagieren. In jedem Fall sollten neu geschriebene Anwendungen keine Abhängigkeit von der Zeitzone des Betriebssystems eingehen, es sei denn, dies ist unbedingt erforderlich, und sollten diese stattdessen innerhalb der Anwendungsdaten und -logik berücksichtigen.

Beispiel für die Verwendung von Windows Server 2019

Unter Verwendung des Windows Server 2019-Server Core Basisimages folgt ein Beispiel zum Festlegen einer virtualisierten Zeitzone.

  1. Legen Sie nach dem Starten des Containers die Zeitzone auf die Zeitzone des Hosts fest (in diesem Beispiel ist es Pacific Standard Time), wie unten dargestellt:

    PS C:\> tzutil /g
    Pacific Standard Time
    
    
  2. Legen Sie die Zeitzone des -Hosts auf die zentralasiatische Standardzeit (UTC+6:00) fest, und beachten Sie, dass die Pazifische Standardzeit weiterhin im Container angezeigt wird:

    PS C:\> Get-TimeZone
    
    Id                         : Pacific Standard Time
    DisplayName                : (UTC-08:00) Pacific Time (US & Canada)
    StandardName               : Pacific Standard Time
    DaylightName               : Pacific Daylight Time
    BaseUtcOffset              : -08:00:00
    SupportsDaylightSavingTime : True
    

    Beachten Sie, dass beim erstmaligen Starten des Containers die Konfiguration auf die Einstellungen festgelegt ist, die beim Erstellen des Basisimages konfiguriert wurden, bis Sie die Konfiguration selbständern. In den meisten Fällen für Windows-Basisimages ist die Standardzeit "Pacific Standard Time".

  3. Legen Sie als Nächstes die Zeitzone des Containers auf "Samoa Standardzeit" fest:

    PS C:\> tzutil /s "Samoa Standard Time"
    PS C:\> tzutil /g
    Samoa Standard Time
    PS C:\> Get-TimeZone
    
    Id                         : Samoa Standard Time
    DisplayName                : (UTC+13:00) Samoa
    StandardName               : Samoa Standard Time
    DaylightName               : Samoa Daylight Time
    BaseUtcOffset              : 13:00:00
    SupportsDaylightSavingTime : True
    

    Jetzt wurde die Zeitzone des Containers auf Samoa Standardzeit aktualisiert, der Host bleibt jedoch auf der Zentralasien-Standardzeit. Diese Konfiguration wird beim Speichern des Containerzustands beibehalten.

  4. Wenn Sie den Container neu starten, ohne den Zustand zuvor zu speichern, wird die Zeitzone wie unten dargestellt auf die Zeitzone des Hosts festgelegt:

    PS C:\>tzutil /g
    Central Asia Standard Time
    PS C:\> Get-TimeZone
    
    Id                         : 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