:::: MENU ::::

C.a.T!

CATch a TAIL!

Japanese sub culture and tech.

  • 2013/11/28
  • 0
engineer

Windows Server 2008がntpで時刻同期してくれない

20131127

最近遺憾ながらWindows Server 2008を仕事で使っているのですが、いろいろ謎仕様満載でうんざりです。
この間ハマったのが時刻同期ができない、という問題でした。
解決できたとは言えないのですが、やりたいことはできたということでどうやったかまとめます。

やりたいこと

  • Windows起動時にntpサーバと時刻同期したい

正解と思ってやったこと

時刻同期は当然Windows Serverでは考慮されていて、デフォルトでTime Synchronizationというタスクがタスクスケジューラにあります。
デフォルトでは、定時に実行されて同期されるようですが、起動時に合わせたかったので起動時トリガを追加しました。
NTPサーバの設定もやって再起動してみると、なぜか同期されない。
何か間違っているのか?

調べたこと

とりあえず手動で同期させてみると何が起きるか見てみました。
GUIから同期させられるのですが、やってみると失敗する。
でも、もう一度同期させると成功する。
何度やっても再起動後、必ず一回目は失敗する。
なるほど。
じゃあ、起動時に2回同期してやればいいのね。
ということで、起動時にTimeサービスを自動起動するようサービスの設定を変更して(デフォルトだと手動起動)、その後 w32tm /resync コマンドを2回実行するようタスクスケジューラに仕掛けました。
これでOKと思ったらまたも同期されない。
調べるとどうもサービスが自動起動していない。

解決方法

最終的にはTimeサービスの自動起動にサービス設定では見えない制約が付けられていたことが問題でした。
以下のコマンドで制約を解除して上のような w32tm を2回実行するようにしたら無事同期されるようになりました。

sc triggerinfo w32time delete

この制約は、Windowsドメインに参加していないとTimeサービス自動起動しないよう制御しているものでした。
これはひどいデフォルトだ。

まとめ

  • Windowsデフォルト仕様がクソ仕様

Leave a comment