powershell - Kan ikke søge Windows Event Log 'Forwarded Events' med datoer

Indlæg af Hanne Mølgaard Plasc

Problem



Vi forsøger at oprette en PowerShell-funktion for at forespørge Windows Event Log for begivenheder der skete mellem to datoer.
Følgende kode fungerer fint, når du spørger en brugerdefineret log eller en standard log:


$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


Vi har oprettet vores Windows Server 2012 for at samle hændelser fra andre servere, som en Windows Server 2008 R2. Når du kontrollerer begivenhederne i Event Viewer, kan vi se, at de er tilgængelige i loggen Forwarded Events. Når du spørger dem uden en dato i GUI eller i PowerShell fungerer dette helt fint.


Imidlertid. når vi ønsker at forespørge om de samme 'Forwarded Events' log ind GUI eller PowerShell ved at tilføje en dato Fra og en dato Til udvælgelse siger det simpelthen, at der ikke er fundet nogen matcher. Det er forkert, fordi når vi kontrollerer disse begivenheder alle har ejendommen TimeCreated med en dato, der ligger mellem disse datoer.


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


Når du kører samme forespørgsel på kildedatamaskinen, hvor begivenhederne oprettes, virker det fint med datoerne. På samler-serveren, når det kun vælges hændelser fra de sidste 7 dage eller 24 timer, fungerer det også fint. Så det har noget at gøre med fremsendelsen af ​​begivenhederne og DateTime objektet i dem, jeg gætter på. Vi har markeret regionale indstillinger på begge servere, de er de samme nederlandske (Belgien) til datoformater.


Eksempelbegivenhed, hvor datoen ikke kan bruges:


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:windowssystem32winevtlogsforwardedevents.evtx
MatchedQueryIds      : {}
Bookmark             : System.Diagnostics.Eventing.Reader.EventBookmark
LevelDisplayName     : Information
OpcodeDisplayName    : Info
TaskDisplayName      : 
KeywordsDisplayNames : {Classic}
Properties           : {System.Diagnostics.Eventing.Reader.EventProperty}


Er der en grund til, at dette virker for alle hændelseslogfiler, men ikke for Forwarded Events?


Event Logging er konfigureret som beskrevet her. [11]


Tak for din hjælp.

Bedste reference


Hvad med at forsøge med -filterHashTable? For eksempel:


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


Derefter


$events = Get-WinEvent -FilterHashtable $filter