ワークグループ環境のWindows 10で時刻設定を行う場合、Windowsの「設定」画面で行う方法が一般的ですが、たくさんのパソコンで同じ設定を行うようなケースでは、1台ずつポチポチ設定するのは骨が折れます。
そこでここでは、Windows 10の時刻とタイムゾーンをコマンドで設定する方法を紹介します。

目次
動作環境
この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
Windows 10 Pro 64bit | 21H1 |
タイムゾーンを設定する
Windows環境でタイムゾーンが正しく設定されていないと、時刻が数時間単位でずれてしまうことがあるため、まずはタイムゾーンを確認します。
手順は、管理者権限でPowerShellを起動して、以下のコマンドを実行します。
PS> Get-TimeZone
日本国内の場合、タイムゾーンが「(UTC+9:00)大阪、札幌、東京」に設定されていればOKです。
タイムゾーンを正しく設定し直す場合は、以下のコマンドを実行します。
PS> Set-TimeZone -Id "Tokyo Standard Time"
上のコマンドでは、タイムゾーンを日本「Tokyo Standard Time」で指定していますが、日本以外のタイムゾーンを指定する場合は、以下のコマンドレットであらかじめ目的のタイムゾーンのIDを調べてから設定します。
PS> Get-TimeZone -ListAvailable
時刻同期を設定する
つぎに、時刻同期の設定を行います。
Windows 10では、デフォルトでNTPサーバー「time.windows.com」と時刻同期されており、同期は1週間に1回行われています。
デフォルト設定のままでも問題ない場合が多いですが、より正確に時刻同期させたいときは、接続するNTPサーバーを国内で提供されているNTPサーバー(ここでは「ntp.nict.jp」を使用します)に変更して、動作モードを変更するのがおススメです。
手順は、次のとおりです。
管理者権限でPowerShellを起動し、はじめに以下のコマンドを実行して「Windows Time」サービスを自動起動するよう設定します。
PS> Set-Service -Name W32Time -StartupType Automatic
つぎに「Windows Time」サービスを起動します。
PS> Start-Service -Name W32Time
サービスを起動したら、サービスが起動していることを確認します。
PS> Get-Service -Name W32Time
「Status」欄が「Running」と表示されていればOKです。
つぎに、時刻同期先と動作モードを指定します。
PS> w32tm /config /update /manualpeerlist:"ntp.nict.jp,0x8" /syncfromflags:MANUAL
コマンド実行後「コマンドは正しく完了しました。」と表示されればOKです。
つぎに、上で設定したNTPサーバーと即時で同期します。
PS> w32tm /resync
コマンド実行後「コマンドは正しく完了しました。」と表示されればOKです。
最後に、問題なく同期されているかを確認します。
PS> w32tm /query /status
ソース欄で同期先のNTPサーバーを確認し、最終正常同期時刻が更新されていれば、問題なく時刻同期されています。
時刻を手動で設定する
何らかの事情で、時刻を手動で設定したいときは、NICT(情報通信研究機構)が提供しているWebAPIを使って設定したり、手打ちで現在時刻を設定できます。
NICTのWebAPIを使って設定するときは、管理者権限でPowerShellを起動し、以下のコマンドを順に実行します。
PS> $UnixJST = [datetime]"1970/01/01 09:00:00"
PS> Set-Date $UnixJST.AddSeconds((Invoke-RestMethod -Uri https://ntp-a1.nict.go.jp/cgi-bin/json).st)
手打ちで設定するときは、以下のようにコマンドを実行します。
PS> Set-Date -Date "2021/09/02 19:57"
あとがき
なお、会社などのドメイン環境下のWindowsマシンでは、時刻同期の動作がワークグループ環境のWindowsマシンと異なるため、ここで紹介した方法で時刻同期設定を勝手に変更してはいけません。