LoginSignup
0
0

More than 3 years have passed since last update.

Windows Time サービスが記録するデバッグ ログの時刻表記形式を確認してみた

Last updated at Posted at 2019-07-26

はじめに

Windows をドメイン環境で利用していると、時刻同期に関するトラブルに直面することがあります。
こうした状況では、Windows Time サービスが出力する デバッグ ログの解析に迫られることもあります。
しかし、Windows Time サービスの既定のデバッグ ログの時刻形式は特殊で可読性が低く、非常にハードルが高いです。
この記事では、このハードルをさげ、デバッグ ログの解析の手助けとなることを目的としています。

Windows Time サービスのデバッグ ログを出力する方法

Windows Time サービスは、既定では出力されません。
まずは以下の記事を参照し、デバッグ ログを有効にしましょう。

Windows タイム サービスのデバッグ ログを有効にする方法 (support.microsoft.com)

出力されたデバッグ ログの既定の時刻表記を確認する

上記で設定した値に従い出力されたデバッグ ログを早速見てみましょう。

152877 02:25:25.7174188s - (ログの内容)

このように、時刻同期サービスのログだというに、時刻が読めません。

時刻を読めるようにする方法

その 1: 出力フォーマットを指定する

読めないのなら読めるようにすれば良いじゃない。
ということで、出力フォーマットを指定しましょう。
以下のレジストリを指定してください。

項目 内容
キー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config
値の名前 FileLogFlags
REG_DWORD
0 (既定値)、1、2

値に応じて時刻表記が以下のように変化します。

表記 意味
0 152877 02:25:25.7174188 可読しやすい (と表現されている) 時刻形式
1 132085815257174188 NT タイム エポック形式
2 2019/07/26 11:25:25 ロケーションに合わせた形式

こんなことで悩むのは勘弁なので、とにかく 2 を指定しましょう。

その 2: 頑張って解読する

もうログを取得してしまった…という状況では、改めてログを取得するのも困難です。
必殺の変換方法を伝授します。

PowerShell でこんな感じのコードを実行してみましょう。

PowerShell
 [datetime]::FromFileTime(((((152877*24+2)*60+25)*60+25)*10000000+7174188).ToString("0"))

すると、2019年7月26日 11:25:25 という結果が得られたと思います。
実は、デバッグ ログで確認できる既定の時刻形式は簡単に NT タイム エポックに変換できます。
デバッグ ログの既定の時刻表記を AAAAAA B:C:D.EEEEEEE と定義すると、以下の式で NT タイム エポックに変換できます。

(((AAAAAA*24+B)*60+C)*60+D)*10000000+EEEEEEE

というわけで、頑張って計算しましょう!

おわりに

これで Windows Time サービスが記録するデバッグ ログの時刻の読み方についての理解が深まったと思います。
これでようやく解析ができますね。

具体的なログの解析方法は、こちらの記事が非常にわかりやすいですので、参考にしてください。

最終回 NTP時刻同期サービスのトラブルシューティング (2/3) (atmarkit.co.jp)

参考文献

第3回 w32tmコマンドとレジストリによるWindows Timeサービスの制御 (4/4) (atmarkit.co.jp)

Windows時間(NT タイムエポック)を相互変換する方法 (qiita.com)

NTタイムエポック値 (wiki.suikawiki.org)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0