2014年5月19日月曜日

WindowsTimeサービスを使用しての時刻同期(サーバー/クライアント両方)

WindowsTimeサービスを使用して時刻同期する方法について。

【ケース】
・外部NTPサーバーと時刻同期しているサーバーAと
 サーバーAをNTPサーバーとして時刻同期するサーバーBを構築する。
・サーバーAは既に外部NTPサーバーと同期設定できているものとする。


【手順:NTPサーバー構築@サーバーA】
0.参考
下記参考URLの情報をまとめただけです。
http://blog.syo-ko.com/?eid=1050
http://d.hatena.ne.jp/hidepon_mory/20071106/1207896724


1.ローカルグループポリシーエディターでの作業

 1-1.ローカルグループポリシーエディターを起動
   [スタート]
    →[ファイル名を指定して実行]
    →[gpedit.mscと入力]
    →[Enter]

 1-2.[Windows NTP サーバー]を有効にする

   1-2-1.左側ペイン
       [コンピューターの構成]
        →[管理用テンプレート]
        →[システム]
        →[Windows タイム サービス]
        →[タイム プロバイダー]
       へ移動する 

   1-2-2.右側ペイン
       [Windows NTP サーバーを有効にする]を開き、[有効]にする


2.レジストリエディタでの作業

 2-1.レジストリエディタを起動を起動
   [スタート]
    →[ファイル名を指定して実行]
    →[regeditと入力]
    →[Enter]
 
 2-2.Enabledを1にする
   1-2-1.左側ペイン
       [HKEY_LOCAL_MACHINE]
        →[SYSTEM]
        →[CurrentControlSet]
        →[Services]
        →[W32Time]
        →[TimeProviders]
        →[NtpServer]
       へ移動する 

   1-2-2.右側ペイン
       [Enabled]を開き、[1]にする。
       ※10進数でも16進数でも[1]

 2-2.AnnounceFlagsを5にする
   1-2-1.左側ペイン
       [HKEY_LOCAL_MACHINE]
        →[SYSTEM]
        →[CurrentControlSet]
        →[Services]
        →[W32Time]
        →[Config]
       へ移動する 

   1-2-2.右側ペイン
       [AnnounceFlags]を開き、[5]にする。
       ※10進数でも16進数でも[5]


3.WindowsTimeサービスを再起動する
 コマンド(net stop / net start)や、[管理ツール]→[サービス]から
 [WindowsTimeサービス]を再起動する。


9.補足
 9-1.[2.レジストリエディタでの作業]を実施しないと時刻同期されない。
   9-1-1.後述のNTPクライアント側作業完了後、
       NTPクライアントから時刻同期コマンド[w32tm /resync]を実行すると、、、
       ・[時刻データが利用できなかったため、コンピュータは同期をとり直しませんでした]と返ってくる。
       ・タスクバー右端から[日付と時刻]ダイアログを開き、
        [インターネット時刻]タブを開くと、
        [サーバーA と同期中にエラーが発生しました。
         タイムサンプルは拒否されました。
         ピアの階層がホストの階層よりも少なくなっています。]
        と表示される。

 9-2.セキュリティ関連
    ファイアウォールやウィルス対策ソフトなどでポート制限を掛けている場合、
    ポート空けの作業が必要。
    サーバーだけでなく、ルーターなどのネットワーク機器が間にある場合も同様。



【手順:NTPクライアント構築@サーバーB】

0.参考
http://blog.goo.ne.jp/derstoss/e/ae416b550c30403ac0afe815d3bf982e


1.コマンドプロンプトでの作業

 1-1.コマンドプロンプトを起動
   [スタート]
    →[ファイル名を指定して実行]
    →[cmdと入力]
    →[Enter]

 1-2.NTPサーバーとの乖離状況を確認。
    コマンドプロンプトで以下コマンドを実行
    [w32tm /monitor /computers:サーバーA]

    →NTPの行で乖離状況を確認する。

 1-3.時刻同期設定
    コマンドプロンプトで以下コマンドを実行
    [w32tm /config /manualpeerliset:サーバーA /syncfromflags:manual /update]

    →正常終了を確認

 1-4.再度、NTPサーバーとの乖離状況を確認。
    コマンドプロンプトで以下コマンドを実行
    [w32tm /monitor /computers:サーバーA]

    →NTPの行で乖離状況を確認する。

1-5.時刻同期されたことを確認
    コマンドプロンプトで以下コマンドを実行
    [w32tm /query /peers /verbose]

    →[最終正常同期時刻]の行で時刻同期されたことを確認する。



以上

2014年5月9日金曜日

WindowsServer2003のタスクスケジュールを2008に移行する

WindowsServer2003で運用中のシステムをWindowsServer2008に単純移行する案件にて、
タスクスケジュールが複数登録されていたため、一括移行できないか調べた際のメモ。

移行先が2012でも(多分)対応可能。


■前置き
1)2003では、タスクスケジュールは.jobファイルで保持されている。2008では、.xmlで保持されている。
2)単純に2003で取得した.jobを、2008でインポートしようとするとエラーになる。
3)運用中のタスクが多くある場合、いちいち手動登録していられない。


■参考
1)TechNet
http://social.technet.microsoft.com/Forums/en-US/55e5bded-5236-4440-9bed-10e9ed542874?forum=windowsserver2008ja

2)TechNetの回答でリンクがあった海外サイト
http://msmvps.com/blogs/it-is-etc/archive/2011/04/11/migrate-scheduled-tasks-from-2003-to-2008.aspx


■手順
※参考の2)にある手順で実施。

1)2008のマシンでコマンドプロンプトを開く。
2)下記コマンドを実行
 【schtasks /query /s 2003のIP /tn "タスク名" /XML > C:\temp\exp_task.xml】
3)出力されたxmlファイルを2008でインポート

※1)2)がエクスポートに該当


■補足
1)ユーザーアカウントは要注意。
2008側で先に作っておく必要がある。
また、2003と2008でマシン名が異なる場合なども同様。
※インポート時、OKボタンを選択した際にエラーになる。

2)別ドメインからのアクセスはエラーになる?
テスト環境で試した際、ドメインA参加のWindows7から、
ドメインB参加のWindowsServer2003に向けてコマンドを実行すると
「アクセスが拒否されました」のエラーになった。

そこで、ドメインB参加のWindowsServer2008からコマンド実行すると
問題なくxmlファイルが出力できた。

原因追及はしていない。しない。



いじょっ!