Fuso orario virtualizzato
Si applica a: Windows Server 2022
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 istanze 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 all'interno del 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 della modalità kernel e della modalità utente correlate alla configurazione del fuso orario di sistema sono ora in grado di tenere conto dei contenitori. Quando un thread in esecuzione nel contesto di un contenitore chiama un'API di sistema per eseguire 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 |
Ricerca per categorie configurare il fuso orario del contenitore?
Prima di tutto, sono necessarie versioni host e guest contenenti questa funzionalità, ovvero in esecuzione in una patch di manutenzione 2105B o successiva. L'esecuzione di versioni precedenti consente semplicemente di ripristinare il comportamento del contenitore per il mirroring del fuso orario dell'host con la configurazione senza alcun impatto sull'host o 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 consiste nell'utilità TZUtil.exe o nel cmdlet Set-TimeZone di PowerShell. Queste utilità sono ben gestite e offrono praticità per impostare facilmente il fuso orario. Qualsiasi altro metodo deve interagire direttamente con le API di sistema. Le versioni delle immagini di base con TZUtil.exe o PowerShell incluse funzioneranno immediatamente. L'immagine Nanoserver
di base è 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 dipendere dal fuso orario del sistema operativo , a meno che non sia assolutamente necessario e debbano invece tener conto dei dati e della logica dell'applicazione.
Esempio di utilizzo di Windows Server 2019
Usando l'immagine di base windows Server Core più recente di Windows Server 2019, di seguito è riportato un esempio per impostare un fuso orario virtualizzato.
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
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 viene configurato manualmente. Nella maggior parte dei casi per le immagini di base di Windows, il valore predefinito sarà Pacific Standard Time.
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 all'ora solare di Samoa, ma l'host rimane sull'ora solare dell'Asia centrale. Questa configurazione viene mantenuta durante il salvataggio dello stato del contenitore.
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