Condividi tramite


Fuso orario virtualizzato

Si applica a: Windows Server 2025, Windows Server 2022, Windows Server 2019,

I contenitori di Windows supportano la possibilità di gestire una configurazione del fuso orario virtualizzata separata dall'host. Tutte le configurazioni usate tradizionalmente per il fuso orario host sono state virtualizzate e vengono usate per ogni contenitore. Con questa funzionalità, i contenitori di Windows offrono i comportamenti seguenti:

  • Quando si avvia il contenitore, il fuso orario dell'host viene ereditato e rimane all'interno del contenitore. Se il fuso orario dell'host cambia durante l'esecuzione del contenitore, il fuso orario archiviato nel contenitore non cambia. Per ereditare nuovamente il fuso orario dell'host, è necessario riavviare il contenitore.
  • Il contenitore mantiene la configurazione del fuso orario dell'host osservata all'avvio del contenitore solo fino a quando l'utente non configura in modo esplicito il fuso orario dall'interno del contenitore. Dopo aver impostato il fuso orario dall'interno del contenitore, la configurazione viene virtualizzata e il contenitore non fa più riferimento all'host.
  • Se si configura il fuso orario del contenitore e successivamente si salva lo stato del contenitore, la configurazione del fuso orario persiste tra i riavvii.

Tutte le API in modalità kernel e utente correlate alla configurazione del fuso orario di sistema sono ora in grado di essere in grado di tenere conto dei contenitori. Quando un thread in esecuzione nel contesto di un contenitore chiama un'API di sistema per eseguire una query sull'ora locale, recupera la configurazione del fuso orario del contenitore anziché quella dell'host. I dati del fuso orario scritti dall'interno di un contenitore ora vengono mantenuti nella risorsa di archiviazione specifica del contenitore e il contenitore in questione non eredita più i dati del fuso orario corrente dell'host durante l'avvio. Ciò significa che dopo aver impostato il fuso orario, il contenitore continua a usare il fuso orario configurato tra i riavvii. Tutti i contenitori basati su un'immagine ereditano la configurazione del fuso orario purché sia stata impostata in modo esplicito all'interno di uno dei livelli.

La tabella seguente illustra la build supportata per ogni SKU:

SKU Build supportata
Windows Server 2019 10.0.17763.1935 o versione successiva
20H2 SAC 10.0.19042.985 o versione successiva
Windows Server 2022 Tutte le versioni
Windows Server 2025 Tutte le versioni

Come si configura il fuso orario del contenitore?

Prima di tutto, è necessario sia la versione host che quella guest che contengono questa funzionalità, il che significa che devono funzionare su una patch di manutenzione 2105B o superiore. Eseguire versioni precedenti del software comporta semplicemente che il comportamento del contenitore venga reimpostato in modo da riflettere il fuso orario dell'host, senza che la configurazione abbia alcun impatto né sull'host né sul guest.

Nota

La configurazione del fuso orario richiede privilegi amministrativi, in particolare SeTimeZonePrivilege. L'account ContainerAdministrator ha questo privilegio. Pertanto, è consigliabile eseguire con i privilegi minimi necessari per il carico di lavoro e riservare l'account ContainerAdministrator per le attività amministrative, ad esempio l'impostazione del fuso orario.

Il modo consigliato per configurare il fuso orario del contenitore è tramite l'utilità TZUtil.exe o il cmdlet Set-TimeZone di PowerShell. Queste utilità sono ben gestite e offrono comodità per impostare facilmente il fuso orario. Qualsiasi altro metodo deve interagire direttamente con le API di sistema. Le versioni dell'immagine di base con TZUtil.exe o PowerShell incluse funzioneranno immediatamente. L'immagine di base Nanoserver è un'eccezione perché questa immagine non supporta TZUtil.exe o PowerShell per impostazione predefinita, quindi richiede un'utilità personalizzata per interagire con le API di sistema. In ogni caso, le applicazioni appena scritte non devono assumere una dipendenza dal fuso orario del sistema operativo a meno che non sia assolutamente necessario e dovrebbero invece tenere conto del fuso orario nei dati e nella logica dell'applicazione.

Esempio di utilizzo di Windows Server 2019

Usando l'immagine di base di Windows Server 2019 Server Core, di seguito è riportato un esempio di impostazione di un fuso orario virtualizzato.

  1. Dopo aver avviato il contenitore, impostare il fuso orario sul fuso orario dell'host (in questo esempio è l'ora solare del Pacifico), come illustrato di seguito:

    PS C:\> tzutil /g
    Pacific Standard Time
    
    
  2. Impostare il fuso orario dell'host su Ora solare dell'Asia centrale (UTC+6:00) e notare che l'ora solare del Pacifico viene ancora visualizzata nel contenitore:

    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
    

    Si noti che quando si avvia il contenitore per la prima volta, la configurazione viene impostata su qualsiasi elemento configurato durante la creazione dell'immagine di base fino a quando non si configura manualmente. Nella maggior parte dei casi per le immagini di base di Windows, il valore predefinito sarà Pacific Standard Time.

  3. Impostare quindi il fuso orario del contenitore su "Ora solare Samoa":

    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
    

    Ora il fuso orario del contenitore è stato aggiornato al fuso orario standard di Samoa, ma l'host rimane sul fuso orario standard dell'Asia centrale. Questa configurazione viene mantenuta durante il salvataggio dello stato del contenitore.

  4. Se si riavvia il contenitore senza salvarlo in precedenza, il fuso orario viene impostato sul fuso orario dell'host, come illustrato di seguito:

    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