ワークグループ環境のサーバー時刻同期は難しい。
(質問)
時刻同期用バッチについて
Windows2003Serverをワークグループ環境で運用しています。
NTP先はインターネット先になるのですが
OS起動時に
w32tm /resync
コマンドを走らせ(スタートアップ)、時刻同期させたいと考えています。
上記コマンドをバッチ化して、ローカル(ドメイン環境のWindowsXP)で実行すると、時刻同期をせず
何度も上記コマンドが実行され続けてしまう状況となってしまっています。
(Dosプロンプト上で画面が流れ続けているような状態です)
環境が違う為に発生しているかもしれませんが、どなたか、適切なコマンドラインをご教授いただけないでしょうか。
情報不足かもしれませんが、宜しくお願い致します。
------------------------------------
(回答)
○○○○です。
「ワークグループ環境の」Windows Srever 2003では、実はコンピュータの起動時毎に時刻同期を行うわけではありません。SpecialPollTimeRemainingというレジストリを起動時にチェックして(コンピュータの再起動に関係なく)「前回の同期時間からSpecialPollIntervalレジストリに設定された秒数たったら」時刻同期するよう、動作するのです。
うえに対するいちばん簡単な方法は、(うえの)SpecialPollIntervalレジストリで時刻同期しないよう、設定を変えることです。
これはw32tm /config /update /manualpeerlist:<NTPサーバ> /syncfromflags:manualコマンドを1回だけ手動で実行することです。こうすることで、コンピュータの起動時ごとに時刻同期を行うようになります。あとは[日付と時刻の設定]-[インターネット時刻]のところは触れないようにします(ここをいじると設定が以前のものに戻ることがあります)。
どうしてもワークグループ環境のままいきたい、というなら、ローカルポリシーの「シャットダウンスクリプト」で次のようなバッチファイルを設定するといいかもしれません。
net stop w32time
reg add HKLM\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClient /v SpecialPollTimeRemaining /t REG_MULTI_SZ /d "" /f
シャットダウン時にSpecialPollTimeRemainingを空に再設定することで、コンピュータの再起動時には必ず時刻同期を行うようになるはずです。
http://social.technet.microsoft.com/Forums/ja-JP/windowsserver2003ja/thread/1c111879-990d-4619-9744-f664a1655f87/#8b56a443-3bce-4f9f-a234-9d4eb35d155e
(参考:Windows Server 2008ワークグループ環境の時刻同期)
http://social.technet.microsoft.com/Forums/ja-JP/windowsserver2008ja/thread/e542c97c-ec06-4429-b4c9-5e4bf9f28c82
[0回]
(質問)
Windows Timeサービスが停止状態になる
【環境】
・Windows Server 2008 R2 Standard Edition
・下記レジストリの「SpecialPollInterval」の値を「3600 (10進数)」に設定
HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Services¥W32Time
¥TimeProviders¥NtpClient\
ドメインへ参加していない環境で、Windows Timeサービスを使用して
時刻同期を実施していますが、イベントログに下記内容が記載されて
Windows Timeサービスが停止状態に勝手になってしまう事象が発生しています。
(サーバ再起動の約1時間後に発生しました)
(下記は同時刻に出力されます)
(192.168.1.1はタイムサーバのIPアドレス)
-----
イベントID:37
タイムプロバイダーNtpClientは現在、192.168.1.1(ntp.ml0x910.0.0.0:123 -> 192.168.1.1)から有効な時間データを受信しています
イベントID:35
システム時刻とタイムリソース192.168.1.1,0x9(ntp.ml0x910.0.0.0:123 -> 192.168.1.1)の同期をとっています
イベントID:1
システム時間は~(※日時)から~(※日時)に変更されました
上記3つのログと同時刻に下記が出力され、Windows Timeサービスが停止する。
イベントID:7036
Windows Time サービスは停止状態に移行しました
-----
Windows Timeサービスは手動で開始にすると開始できて正常に時刻同期できました。
下記KBに該当すると考えましたが、既に回避策を実施済みであり、
事象は発生しない設定を投入していると考えています。
http://support.microsoft.com/kb/2385818/ja
> 「方法 3 :Windows Time サービスのスタートアップの種類を
> [手動] から [自動 (遅延開始)] に変更します。」
上記以外に本事象について、何か原因に心当たりのある方がいれば、
ご教授頂けると幸いです。
(@IT資料)
ワークグループ環境での時刻同期(Windows Server 2008 R2)
http://www.atmarkit.co.jp/fwin2k/operation/winntp202/winntp202_04.html
ワークグループ環境で、特定のNTPサーバから優先的に同期する(Windows Server 2008 R2)
http://www.atmarkit.co.jp/fwin2k/operation/winntp202/winntp202_05.html
(参考ブログ)
http://blog.syo-ko.com/?eid=1050
http://blog.syo-ko.com/?eid=1051
http://qoo.blog.eonet.jp/popc/2009/01/post-af8a.html
http://social.technet.microsoft.com/Forums/ja-JP/windowsserver2008ja/thread/8a7e1e05-b5f4-478d-960a-06388beabee3
(質問)
Windows Timeサービスのスタートアップの種類を[自動]にしているにも関わらず、起動後に停止する
Windows Server フォーラムのみなさま
平素よりお世話になっております。
●●と申します。
掲題の件に関して伺いたいことがありますので、以下をご参照頂き、ご回答頂けるとご幸甚です。
【事象】
ワークグループ(ドメインに参加していない)のWindows Server 2008 R2で、
[Windows Time]サービスのスタートアップの種類を[自動]にしているにも関わらず、起動後に停止する。
【補足】
・手動で[Windows Time]サービスを起動すれば、起動状態になり、停止しない。
・以下コマンドでNTPサーバに対する時刻同期設定済
w32tm /config /update /manualpeerlist:XX.XX.XX.XX(NTPサーバIP) /syncfromflags:manual
【質問】
①以下ナレッジベースで同様の事象の回避方法1-3が紹介されているが、
方法1,2を実施した場合、【補足】で記載した時刻同期設定は無効となってしまうかどうか。
http://support.microsoft.com/kb/2385818/ja
②方法1,2で改善されなかった場合、方法1,2を切り戻す(コマンド実行前の状態)に戻す方法はあるか。
取り急ぎ当方で、方法3は確認予定です。
お忙しい中お手数ですが、どうぞよろしくお願い致します。
(回答)
わかる範囲で回答するとしたら、
・
http://support.microsoft.com/kb/2385818/jaの方法1,2で改善されなかった場合
http://support.microsoft.com/kb/2493006/jaの修正プログラムは適用してみる価値あり。
・デフォルト動作のままにしたい場合は、(w32tm /config /update /manualpeerlist コマンドを実行する・しないにかかわらず)
既存のタスクを変更する-MS(Time Synchronizationタスクの無効化・タスク定義変更[起動間隔値を小さくするなど])
Windows Server 2008 R2の場合は以下のように設定します。
・gpedit.msc(グループポリシーエディタ)にて
コンピュータの構成→管理プレート→システム→
Windowsタイムサービス→タイムプロバイダ→
WindowsNTPサーバを有効にする
AnnounceFlags = 5
NTPサーバを構成する場合<
http://support.microsoft.com/kb/2385818/jaの方法 2のコマンドの後>(w32tm /config /update /manualpeerlist コマンドを実行する・しないにかかわらず)、レジストリで見ればはしたのようになればよいかと。
・HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parametersキー
Type⇒「NTP」になっていること
・HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time \
TimeProviders\NtpServerキー
Enabledの値⇒「0x1」
・HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Configキー
AnnounceFlags の値⇒「0x5」
LocalClockDispersion の値⇒「0x0」
・HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpClientキー
SpecialPollIntervalの値⇒「デフォルトの604800から86400以内」に、そのレジストリを手動で変更する必要あり。)
Windows Timeサービスを再起動
>w32tm /query /status コマンドで確認(その端末自体をNTPサーバとし、その内部クロックに同期させる。)
<追記>
・HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Configキー
UpdateIntervalの値⇒うえのSpecialPollIntervaの値と同じ更新間隔(秒)にする。
(別の方の回答)
●●●●です。
sc triggerinfo deleteコマンドは、サービスと自動タスクの関連性を削除するものなので、w32timeの時刻同期の設定には影響を与えません。
元に戻したい場合sc triggerinfo start/domainjoin stop/domainleaveでいけるように思いますが、試験環境で事前にご確認いただくのがよいでしょう。
http://social.technet.microsoft.com/Forums/ja-JP/windowsserver2008ja/thread/46eb3e3b-ed49-4c0b-afe8-6407f0bf5806/#d6fa9a6d-84b8-4675-a2cc-7c6719291189
PR