最近お仕事で使っているPCにもWindows 10化の波がきており、NTPサーバーの設定をしようとしたらUIがガラッと変わって面倒なことになっていたので備忘録を兼ねてメモっておきます。
GUIでの設定方法
Windows 10でタスクトレイの時刻から日付と時刻の設定
を選択すると、
【2017/07/13追記】
最新のWindows 10だとタスクバーを右クリックしないと日付と時刻の設定
が出なくなってしまいました...
【追記ここまで】
以下の様に新しい日付と時刻
の設定ダイアログが表示され、こいつにはNTPサーバーを指定するところがありません...
ここからNTPサーバーを指定するには、このダイアログを下までスクロールさせて関連設定
の日付、時刻、地域の追加設定
をクリックしてコントロールパネルを起動し、
そこから日付と時刻の設定
を選択、
すると従来の日付と時刻
の設定ダイアログが表示されるのでインターネット時刻
タブからNTPサーバーの指定をすることができます。
率直に言ってかなり面倒なことになっています。
楽な設定方法
流石にこれは辛すぎるのでもう少し楽にできないか調べました。
従来の日付と時刻
の設定ダイアログの実体はtimedate.cpl
ファイルですのでコマンドプロンプトやPowerShellから
PS C:\> timedate.cpl
と打てば一発で日付と時刻
の設定ダイアログを呼び出しNTPサーバーの設定をすることができます。
これなら我慢できるレベルですね。
コマンドでの設定方法
さらに楽してすべてコマンドでやりたい場合はw32tm
コマンドが使えます。
w32tm
コマンドは昔からあるコマンドで使い方も変わっていません。
残念ながら今に至るまでこのコマンドを代替するPowerShell Cmdletは出ておらず、使えそうなPowerShellモジュールも無さげです。
なのでWindows 10でも頑張ってw32tm
コマンドを使っていきます。
NTPサーバーを指定する場合はw32tm /config
コマンドを以下の様な感じで実行すればOKです。
パラメーターの詳細はググればいくらでも出てきますので本エントリでは触れません(
w32tm /config /update /manualpeerlist:"time.windows.com,0x9" /syncfromflags:manual
時刻同期はw32tm /resync
コマンドで可能です。
w32tm /resync
設定値を確認する場合は、w32tm /query /status
やw32tm /query /configuration
コマンドが使えます。
w32tm /query /status w32tm /query /configuration
ただし、w32tm
コマンドからNTPサーバーの指定をするとインターネット時刻設定
ダイアログの画面表示と実際の設定値が同期しないので注意が必要です。
ダイアログの画面表示はレジストリHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers
の内容を基に設定されていますので、同期させたい場合はこのキーを適切に設定しする必要があります。
0から始まる連番のキーがダイアログのコンボボックスに表示されるNTPサーバーのリストになり、既定のキーにリストから選択したNTPサーバーの番号を設定します。
本エントリでは具体的な手順にまで触れませんが、頑張れば何とかできるレベルだと思いますので同期させたい場合は気合いでなんとかしてください。