WMIからWMIのWin32_ntlogeventクラスを照会するときは、コンピューターまたはGMTの現地時間に基づいた時間系プロパティですか?

StackOverflow https://stackoverflow.com/questions/3063289

  •  28-09-2019
  •  | 
  •  

質問

いくつかのドメインコントローラーのEventLogを介していくつかのchurningを行っているC#Windowsサービスを作成しています。それらのいくつかはWindows Server 2003、一部はWindows Server 2008です。サービスが停止すると、ログで中断したところから再開しようとしています。ではなくこれを行うために

SELECT * FROM Win32_NTLogEvent WHERE --criteria for events I am looking for

私がやっている

SELECT * FROM Win32_NTLogEvent WHERE TimeGenerated = --some date AND --criteria for events I am looking for

ある時点で、私はタイムゲナー化されたフィールドがサーバーの現地時間にあると確信しましたが、今ではWindows 2008サーバーがGMTを使用してその時間を記録しているようです。これが2つのオペレーティングシステムの機能方法との間で実際に異なる場合、またはこれが構成の問題である場合、誰かが少し点灯することができますか?

役に立ちましたか?

解決

Windowsタイムスタンプは常にUTCで記録されます。これらは、イベントビューアーやエクスプローラー(ファイル時間)など、データを見るために使用するGUIプログラムでのみ現地時間に変換されます。この動作は、夏時間の移行のランダム障害を避けるために重要です。

他のヒント

さらに、Windows Server 2008の前のバージョンでは、現地時間にはタイムグネレーションが返されましたが、他の人が気づいているため、Server 2008でGMTに変更されたようです。

このようなものが役立つかもしれません:

("Select * from Win32_NTLogEvent Where Logfile = 'Application' AND EventCode = '999' AND Message Like '%message%' AND TimeGenerated = '201202210000000000.000000+***'")

TimeGenerated 構文は後方にセットアップされているので、上記の例では yearmonthdaytimeminutesseconds.000000+\*** 前の 000000+\*** 必要です。

お役に立てれば。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top