こんにちは、Japan Developer Support Core チームの松井です。 今回は、Microsoft Dev Box を利用する際に注意が必要なタイムゾーンの動作と設定について解説します。
問題の概要
Dev Box で利用できる標準のイメージは 協定世界時 (Coordinated Universal Time, UTC) が初期設定となっています。 しかし、クライアントのタイムゾーン リダイレクトが有効になっているため、リモート デスクトップ接続したユーザーには日本のタイムゾーンで動作しているように見える場合があります。一方で、ログオンしているユーザー以外のアカウント、例えば IIS のアカウントをはじめとするサービス アカウントやシステム アカウントではタイムゾーン リダイレクトは適用されません。
この動作により、アプリケーションやサービスの実行アカウントとそのタイムゾーンを考慮しない場合、以下のような問題が発生する可能性があります。
- スケジュール タスクが想定した時刻に実行されない
- ログのタイムスタンプが意図しない時刻で記録される (例: JST で午前 9:00 に操作しても、ログには UTC の午前 0:00 と記録される)
- アプリケーションの時刻に関する処理が正しく動作しない
タイムゾーン リダイレクトの仕組みと動作の確認
リモート デスクトップ接続では、クライアント側のタイムゾーン情報をリモート セッションに転送する機能があります。これにより、ユーザーがリモート デスクトップ接続している間は、Dev Box のタイムゾーンがクライアントのタイムゾーン (例: 日本標準時 JST) として表示されます。
ユーザー セッション中のタイムゾーン確認
PowerShell で Get-TimeZone コマンドレットを使用して、リモート デスクトップ接続中のユーザー セッションでのタイムゾーンを確認することができます。今回は日本標準時となっていることが確認できます。
1 | # PowerShell でタイムゾーンを確認 |
システムのタイムゾーン確認
レジストリから実際のシステム タイムゾーンを確認したり、システム アカウントでタイムゾーンを確認することで、システムのタイムゾーン設定が UTC であることがわかります。
1 | # レジストリから実際のシステム タイムゾーンを確認 |
1 | # システム アカウントでタイムゾーンを確認 |
解決策
アプリケーションやサービスの実装でタイムゾーンを考慮することが難しい場合、Dev Box のシステムのタイムゾーンを変更することで問題を解決できる可能性があります。 Dev Box のシステムのタイムゾーンを変更する方法は以下の 2 通りが挙げられます。
方法 1: プロビジョニング後にタイムゾーンを変更する
Dev Box のタイムゾーンを変更する場合、Dev Box 上でクライアントのタイムゾーン リダイレクト設定を一時的に無効化してからタイムゾーンを変更し、再度有効化する手順が必要になります。
Dev Box に接続してログオンします。
[ファイル名を指定して実行] から “gpedit.msc” を入力してローカル グループ ポリシー エディターを起動します。
グループ ポリシーの構成で以下の設定を [無効] に変更します。
[コンピューターの構成] - [管理用テンプレート] - [Windows コンポーネント] - [リモート デスクトップ] - [リモート デスクトップ セッションホスト] - [デバイスとリソースのリダイレクト] - “タイムゾーン リダイレクトを許可する”
タイムゾーン リダイレクトの変更を反映するため、コンピューター (Dev Box) を再起動します。
下記ブログ記事のいずれかの手順でタイムゾーンを JST ((UTC+09:00)大阪、札幌、東京) に変更します。
手順 3. で行った変更を元に戻します。
タイムゾーン リダイレクトの変更を反映するため、もう一度コンピューター (Dev Box) を再起動します。
実施したタイムゾーンの変更が反映されているかご確認ください。
方法 2: カスタマイズを使用してプロビジョニング時にタイムゾーンを変更する
Dev Box のカスタマイズ機能を利用して、プロビジョニング時にタイムゾーンを設定することも可能です。以下は、タイムゾーンを "Tokyo Standard Time" に設定するカスタマイズ ファイルの例です。
1 | # customization-task.yaml |
本ブログの内容は弊社の公式見解として保証されるものではなく、開発・運用時の参考情報としてご活用いただくことを目的としています。もし公式な見解が必要な場合は、弊社ドキュメント (https://learn.microsoft.com や https://support.microsoft.com) をご参照いただくか、もしくは私共サポートまでお問い合わせください。