Windows OSでの時刻同期処理は、すべてWindows Timeサービスで行われている。これを制御するw32tmコマンドとレジストリ設定を詳しく解説する。
本連載では、主にWindows Vista/Windows 7/Windows Server 2008/Windows Server 2008 R2を対象としています。Windows XPやWindows 2000 Server/Windows Server 2003については、以下の旧記事を参照してください。
前回は、Active Directoryとワークグループ環境における、Windows Server 2008 R2の時刻同期機能について解説した。そのWindowsの時刻同期は、Windows Timeサービスにより行われている。このWindows Timeサービスは、これまでの連載でたびたび記しているように、レジストリで制御されている。また、サービスは自動的に時刻同期処理を実行するのだが、w32tmコマンドを使えば、任意のタイミングで同期を行ったり、レジストリ・エディタを使わずに設定を変更したりできる。今回はw32tmコマンドとレジストリ設定について解説する。
w32tmコマンドは、Windows Timeサービスの設定や時刻同期の状態を確認したり、設定変更や手動同期を行ったりする、大変便利なコマンドである。Windows Server 2003以前からコマンドは存在したが、Windows Server 2008 R2版では、新しいオプションが追加されている。なお、通常使われないオプションについては今回は記載しないので、マイクロソフト TechNetの資料「W32tm」を参考にしていただきたい。
w32tm /monitor [/computers:<コンピュータ名>|/domain:<ドメイン名>] [/threads:<スレッド数>] [/ipprotocol:<4|6>] [/nowarn]
w32tm /monitorオプションは、ローカル・コンピュータとリモート・コンピュータ(NTPサーバ)間の時刻差や上位NTPサーバの名前を確認できる。特定のリモート・コンピュータ間との時刻差を知りたい場合、/computersオプションを使って、以下のコマンドを実行する。
w32tm /monitor /computers:ntp.nict.jp
/computersオプションでは、カンマ区切りで、複数のリモート・コンピュータを指定することもできる。例えばクライアントから見て外部NTPサーバと内部ドメイン・コントローラのどちらと時刻ずれが大きいか確認したい場合、次のようにコマンドを実行する。
w32tm /monitor /computers:ntp.nict.jp,dc00.example.com
なお4台以上のリモート・コンピュータを指定する場合は、/threadsオプションで同時実行するスレッド数(4台ならば「4」)を指定する必要がある(50台まで指定できる)。
一方ドメイン・コントローラの時刻同期の状態を知りたい場合は、/domainオプションを使うと便利である。/domainオプションでコマンドを実行すると、ドメイン内の全ドメイン・コントローラについて、時刻差や上位NTPサーバの名前が表示される。ただし表示される時刻差は(上位NTPサーバではなく)PDCエミュレータとの時刻差になるので、厳密な時刻差を知りたい場合は、対象となるドメイン・コントローラ上で/computersオプションを指定する必要がある。
w32tm /monitor /domain:EXAM
w32tm /monitor /computers:dc03,dc04
上記以外に、同期を行うIPプロトコル(IPv4かIPv6か)を指定する/ipprotocolオプション、警告メッセージをスキップする/nowarnオプションが存在する。
Copyright© Digital Advantage Corp. All Rights Reserved.