背景
OCIのコンピュートに移行したWindows ServerのOS上の時刻が、タイムゾーンは日本に設定されているにもかかわらずUTC時刻になってしまうことがあります。
NTPサーバーで時刻同期ができれば問題はありませんが、移行元で設定していたNTPサーバーと移行後に通信できない場合などはHypervisor側から取得されたハードウェアクロックがOSのローカルクロックとして利用されることになります。
その際にWindows OSがハードウェアクロックのタイムゾーンを識別せずに時刻設定してしまうため、Windows OS上でのタイムゾーン設定がJSTであってもHypervisorから取得したUTC時刻をそのまま時刻設定してしまって9時間前の時間になってしまう、という事象です。
回避するには、Windows OS上で、ハードウェアクロックがUTCであるという設定を入れる必要があります。(ちなみにOCIのプラットフォームイメージを使っている場合は最初から設定してあるので特に意識する必要はありません。)
検証の準備
移行元となる仮想マシン
- VMware上で仮想マシンを作成し、Windows Server 2019をインストールしました。
- タイムゾーン設定は日本。NTPサーバーはインターネット上のものを参照する形になっています。移行前環境ではインターネット側に通信できるようにしているので問題なく現在時刻が表示できています。
移行後のVMインスタンス
-
インスタンスに対してインターネットから直接RDP接続などはできないので、VNC接続を行います。
-
インスタンスの「コンソール接続」で「ローカル接続の作成」をクリックし、作成されたコンソール接続のメニューから「VNC接続コマンドのコピー」で接続用のコマンドをコピーする。

-
putty keygenでパブリックキーからWindows用のppkキーを生成しておく。
-
コピーしたコマンドのキーの位置二か所を適切に修正し、powershellで実行。
Start-Job { Echo N | plink.exe -i <ppk秘密鍵の場所> -N -ssh -P 443 -l <コンソール接続のOCID> -L 5905:<インスタンスのOCID>:5905 instance-console.ap-tokyo-1.oci.oraclecloud.com }; sleep 5; plink.exe -i <ppk秘密鍵の場所> -N -L 590 0:localhost:5900 -P 5905 localhost -l <インスタンスのOCID>
-
-
VMインスタンスのWindowsでは、タイムゾーンがUTC+09:00に設定されているにもかかわらず、ローカル端末の時刻より9時間前が表示されていることを確認。
-
PowerShell上で時刻設定を確認します。
回避策の適用
この問題は以下のドキュメントに既知の問題として回避策の記載があります。ドキュメントに従って設定していきます。
- カスタムWindowsインスタンスでのWindowsシステム時間の問題












