2017-04-19 15 views
0

Windowsイベントログに2つの日付の間に発生したイベントを照会するPowerShell関数を作成しようとしています。カスタムログまたは標準のログを照会するとき 次のコードは正常に動作します:Windowsイベントログ 'Forwarded Events'に日付を照会できません

$FilterXML = @" 
<QueryList> 
    <Query Id="0" Path='$LogName'> 
     <Select Path='$LogName'> 
      *[System[TimeCreated[@SystemTime&gt;='2017-04-17T09:48:24.000Z' and 
      @SystemTime&lt;='2017-04-19T09:50:24.999Z']]] 
     </Select> 
    </Query> 
</QueryList> 
"@ 
Get-WinEvent -FilterXml $FilterXML 

我々は、Windows Server 2008 R2のように、他のサーバーからイベントを収集するために、当社のWindows Server 2012を設定しました。イベントビューアでイベントを確認すると、ログForwarded Eventsで利用可能であることがわかります。 GUIやPowerShellで日付を指定せずにクエリを実行すると、正常に動作します。

ただし、 GUIまたはPowerShellで、同じ「Forwarded Events」ログに日付を追加して照会したいときFromと日付Selectionには、単に一致するものが見つからないということだけです。どちらが間違っているのは、これらのイベントをチェックすると、それらの日付の間に日付があるTimeCreatedというプロパティがあるからです。

Get-WinEvent : No events were found that match the specified selection criteria. 

イベントが作成されたソースコンピュータで同じクエリを実行すると、日付とともに正常に動作します。コレクタサーバーでは、過去7日間または24時間のイベントのみを選択すると、これも正常に動作します。だから、それは私が推測するイベントの転送とDateTimeオブジェクトの転送と関係があります。両方のサーバーで地域設定を確認しましたが、日付形式の場合は同じオランダ語(ベルギー)です。

日付を使用することはできません例イベント:

Message    : johofman - Script ended 
Id     : 199 
Version    : 
Qualifiers   : 0 
Level    : 4 
Task     : 1 
Opcode    : 
Keywords    : 36028797018963968 
RecordId    : 768 
ProviderName   : My script name 
ProviderId   : 
LogName    : My log name 
ProcessId   : 
ThreadId    : 
MachineName   : SERVER.domain.net 
UserId    : 
TimeCreated   : 19/04/2017 16:02:56 
ActivityId   : 
RelatedActivityId : 
ContainerLog   : c:\windows\system32\winevt\logs\forwardedevents.evtx 
MatchedQueryIds  : {} 
Bookmark    : System.Diagnostics.Eventing.Reader.EventBookmark 
LevelDisplayName  : Information 
OpcodeDisplayName : Info 
TaskDisplayName  : 
KeywordsDisplayNames : {Classic} 
Properties   : {System.Diagnostics.Eventing.Reader.EventProperty} 

これは、すべてのイベントログのではなく、Forwarded Eventsをのために働いている理由はありますか?

イベントログは、hereのように構成されています。

ありがとうございました。

+0

のGet-WinEventの-LogName ForwardedEvents? –

+0

'-FilterXML'でこれを使用しても、日付を追加するときには正しい結果が得られません。 – DarkLite1

答えて

0

-filterHashTableで試してみてはいかがですか?たとえば、次のように

$filter = @{ 
        Path = "$env:SystemRoot\System32\Winevt\Logs\ForwardedEvents.evtx" 
        StartTime = get-date '2017-04-17T09:48:24.000Z' 
        EndTime = get-date '2017-04-19T09:50:24.999Z'     
        } 

その後

$events = Get-WinEvent -FilterHashtable $filter 
+0

同じメッセージ「指定された選択基準に一致するイベントは見つかりませんでした」と恐れています。本当に変だ。日付なしでクエリを実行するとイベントが表示され、正しい日付が表示されます... – DarkLite1

+0

日付、つまり前日の翌日まで試しましたか? –

+0

はい、私は実際に試した最初のことをしました。 ForwardedEventsへのパスを変更するときは、リモートソースサーバー上の同じ日付では正常に動作しますが、コレクターサーバーでは正常に動作しません。 24時間前に試してみると、これはあまりにも機能します。 – DarkLite1

関連する問題