時間サーバを作成する 〜timeserv〜
時間サーバを作成する
〜timeserv〜
0.改定履歴
- 2000.03.28 初版
- 2000.05.14 参考文献の追加
1.はじめに
このドキュメントは,WindowsNTのリソースキットに付属しているtimeservについて説明する.
timeservは,NT4.0リソースキットに付属している.
2.timeserv概説
2.1.net timeコマンドとの違いについて
- net timeコマンドでは,コマンド実行時にしか時間の同期ができない.
- atコマンドとの組み合わせ,あるいはログオンスクリプトで実行するのが一般的.
- timeservはサービスとして稼働するので,ログオンしなくても自動的に実行される.
- 次に列挙するような色々な相手から時間データを取得することができる.
2.2.データを取得できる相手について
Timeservは,大きく2つの方法で時間データを取得できる.
- モデムによって取得できる
- National Institute of Standards and Technology ACTS
- US Naval Observatory
- National Research Council Canada INMS
- BBC Radio Time Standard Dial-in Time Service
- BBC ラジオ時間標準 Dial-in 時間サービス
- Computime from Telstra
- EUROPE (TUG/PTB/Precision Timing/IEN)
- New Zealand's MSL
- インターネットのTCP/IPによって取得できる.
- Simple NTP
- US Naval Observatory
- National Institute of Standards and Technology
- Heath "Most Accurate Clock" GC-1000 or GC-1001
(WWV(H))
- Spectracom NETCLOCK/2(R) (WWVB)
- Hewlett-Packard's GPS receivers
- Hewlett-Packard の GPS レシーバ
- TrueTime's TimeLink (WWV(H)) or PC-SG2
- Trimble GPS receiver
- Rockwell GPS receiver
- Motorola GPS receiver
- Bancomm bc620AT, bc627AT (GPS-based), bc630AT, or PC03XT
※日本語訳については,翻訳ソフトを使っているので,直訳のため,正式な組織名称などでは無い事をご了承いただきたい.
3.インストール手順
- 管理者権限で,NTにローカルログオンする.
- リソースキットのインストールディレクトリ(C:\NTRESKITなど)に,以下のファイルがあることを確認する.
- TIMESERV.EXE
- TIMESERV.DLL
- TIMESERV.INI
- この3つのファイルを,以下のようにディレクトリに複写する.
- TIMESERV.INI ->%SystemRoot%
- TIMESERV.EXE ->%SystemRoot%\System32\TIMESERV.EXE
- TIMESERV.DLL ->%SystemRoot%\System32\
- コマンドプロンプトを起動し,timeserv.exeコマンドを実行する.
- この時,パラメータを付けるが,以下のとおりである.
- -automatic サービスの起動が「自動」となる.
- -manual サービスの起動が「手動」となる.
D:\>timeserv /?
TimeServ [-automatic]|[-manual]|[-update]
D:\>timeserv -automatic
D:\>
|

Time Serviceの実行状態
- Time Serviceが登録されていることを確認する.
- マシンをリブートする.
4.timeserv.iniの編集(Simple NTPサーバ編)
ここでは,Simple NTPサーバから時間データを取得する方法について説明する.
デフォルト状態では「COM1に接続されているモデムを使ってアメリカの「原始時計」に毎朝6時にダイアルアップして時刻を合わせる」とこになっているので,これをSNTPサーバに接続する方法に修正する.
- %SystemRoot%timeserv.iniファイルを開く.
- 31行目程度から始まるType設定が,NISTACTSをコメントアウトし,NTPに設定する.
- NTP以外のTypeは,全てコメントアウト(行頭に;)する.
Typeの編集
修正前 |
修正後 |
;Type=SECONDARY
;Type=PRIMARY
Type=NISTACTS
;Type=USNO
;Type=INTERNET
;Type=NTP
;Type=NRC
;Type=BBC
|
;Type=SECONDARY
;Type=PRIMARY
;Type=NISTACTS
;Type=USNO
;Type=INTERNET
Type=NTP
;Type=NRC
;Type=BBC
|
- モデムのポート選択用のPort設定をコメントアウトとする.
Portの編集
修正前 |
修正後 |
Port=\\.\COM1
;Port=\\.\COM2
;Port=\\.\COM3
|
;Port=\\.\COM1
;Port=\\.\COM2
;Port=\\.\COM3
|
ModemCommandの編集
修正前 |
修正後 |
ModemCommand=AT&D2&Q0DT
;ModemCommand=AT&D2DT
;ModemCommand=ATDT
;ModemCommand=AT&D2\N1DT
;ModemCommand=AT&D2DTB5 03,
;ModemCommand=AT&D2DTB26 03,
|
;ModemCommand=AT&D2&Q0DT
;ModemCommand=AT&D2DT
;ModemCommand=ATDT
;ModemCommand=AT&D2\N1DT
;ModemCommand=AT&D2DTB5 03,
;ModemCommand=AT&D2DTB26 03,
|
- PBX(構内回線用)のプレフィックス(0発信とかで電話かけるやつ)をコメントアウトする.
Prefixの編集
修正前 |
修正後 |
;Prefix=9,
Prefix=
|
;Prefix=9,
;Prefix=
|
PhoneNumberの編集
修正前 |
修正後 |
PhoneNumber=1 303 494 4774
;PhoneNumber=1 494 4774
;PhoneNumber=494 4774
;PhoneNumber=1 202 762 1594
;PhoneNumber=1 762 1594
;PhoneNumber=762 1594
;PhoneNumber=1 613 745 3900
;PhoneNumber=0891 516880
;PhoneNumber=03 9 600 1641
;PhoneNumber=316 472366
|
;PhoneNumber=1 303 494 4774
;PhoneNumber=1 494 4774
;PhoneNumber=494 4774
;PhoneNumber=1 202 762 1594
;PhoneNumber=1 762 1594
;PhoneNumber=762 1594
;PhoneNumber=1 613 745 3900
;PhoneNumber=0891 516880
;PhoneNumber=03 9 600 1641
;PhoneNumber=316 472366
|
NTPServerの編集
修正前 |
修正後 |
NTPServer=
|
NTPServer=172.16.0.95
|
timesourceの編集
修正前 |
修正後 |
timesource=no
;timesource=yes
|
timesource=no
;timesource=yes
|
- logの設定をYesとすると,イベントログに書き出されます.
Logの編集
修正前 |
修正後 |
Log=no
;Log=yes
|
Log=yes
;Log=yes
|
Speedの編集
修正前 |
修正後 |
Speed=300
;Speed=1200
;Speed=2400
;Speed=9600
;Speed=14400
|
;Speed=300
;Speed=1200
;Speed=2400
;Speed=9600
;Speed=14400
|
- RandomPrimaryは,特に理由は無いがそのままにする.
- 複数のSNTPサーバを登録している場合に,ランダムでサーバを選択するようです.
RandomPrimaryの編集
修正前 |
修正後 |
RandomPrimary=yes
|
RandomPrimary=yes
|
- 定期的に電話を掛ける時間を指定するので,コメントアウトする.
Hourの編集
修正前 |
修正後 |
Hour=6
|
Hour=6
|
5.INIファイルの編集結果を反映させる
timeserv.iniを変更したら,これをレジストリに反映させて,サービスを再起動する.
- コマンドプロンプトを実行する.
- 以下のコマンドを実行する.
D:\>timeserv -update
D:\>net stop "Time Service"
Time Service サービスを停止中です.
Time Service サービスは正常に停止されました。
D:\>net start "Time Service"
Time Service サービスを開始します.
Time Service サービスは正常に開始されました。
D:\>
|
- イベントビューアを開く.
- 次のようなインベントで成功したことがわかる.

イベントログ
6.NTPサーバについて
今回の導入の際にNTPサーバ接続テストを行った際には,次のようなソフトを利用して検証した.
7.LAN環境での適用について
負荷やメンテナンス性を考えると,次のような構成が望ましいと考えられる.
- LAN内(ここではドメイン)にあるNT Serverにtimesrvを組み込む.
- クライアントは,net timeコマンドで,ログオン時にLAN内のサーバに接続.
- ログオンスクリプトで良いので,クライアントの設定は不要.
- トップにNTPサーバを配置し,timesrvマシンから時間を取得する.
参考文献