Get-WinEvent filtered query against ForwardedEvents crashes Windows Event Log service on Windows Server 2025

Abhishek Bodhekar 0 Reputation points
2026-08-25T05:11:01.8233333+00:00

Environment:

  1. Windows Server 2025 (build 26100.x), Domain Controller / member server acting as a WEF/WEC collector
  2. Confirmed not reproducible on Windows Server 2022 with the identical subscription, query, and event volume — only Server 2025 is affected
  3. ForwardedEvents populated via a standard source-initiated Windows Event Collector (WEC) subscription (SubscriptionType=SourceInitiated), forwarding from multiple Domain Controllers

What we're trying to do:

We read the local ForwardedEvents channel (populated by Windows Event Forwarding from our Domain Controllers) to collect security/logon-related events, using a structured/filtered query — either via PowerShell for manual testing, or programmatically via System.Diagnostics.Eventing.Reader.EventLogQuery in a .NET service. This is a standard, long-working pattern that has run without issue on Server 2016/2019/2022 for years.

What we tried

Manual repro via PowerShell:


Get-WinEvent -FilterHashtable @{LogName='ForwardedEvents'; Id=4624} -MaxEvents 10

Equivalent structured XPath query (also reproduces):


Get-WinEvent -LogName ForwardedEvents -FilterXPath "*[System[EventID=4624]]"

Also reproduces with a TimeCreated-only predicate (no EventID at all):


Get-WinEvent -LogName ForwardedEvents -FilterXPath "*[System[TimeCreated[@SystemTime>='2026-08-01T00:00:00Z']]]"

Expected behaviour:

The query returns matching events, exactly as it does against ForwardedEvents on Windows Server 2022, or as it does against any local (non-forwarded) log like Security on Server 2025 itself.

Actual behaviour:

Any of the above filtered/structured queries against ForwardedEvents specifically (not other logs) throws:

Get-WinEvent : The RPC server is unavailable

or, on repeated attempts:

Get-WinEvent : The remote procedure call failed

and — critically — this isn't just a query-level error. The Windows Event Log service itself crashes as a result:

  1. Event ID 1001 (Application log) — APPCRASH, faulting module wevtsvc.dll, faulting process svchost.exe (the Event Log service host)
  2. Event ID 7034 (System log) — "The Windows Event Log service terminated unexpectedly"

After the crash, all Event Log functionality on the box is disrupted until the service auto-restarts (or until Windows restarts it via SCM recovery), which is a much bigger blast radius than just "one query failed" — any other software depending on the Event Log service on that machine is affected for that window too.

What does not trigger it

An entirely unfiltered query against the same channel works fine and never crashes anything:


Get-WinEvent -LogName ForwardedEvents -MaxEvents 10

This strongly suggests the defect is specifically in how the Event Log service evaluates a structured/filtered query (<QueryList>/XPath predicate) against a channel populated via Windows Event Forwarding, as opposed to a channel populated by local event sources.

Workaround we've had to adopt

Detect Windows Server 2025 (or the affected build range) and fall back to reading ForwardedEvents unfiltered, then filter client-side in application code after the fact. This works, but it's strictly a workaround: it costs more CPU/IO (reading and discarding every forwarded event instead of letting the server-side query do it) and adds complexity we wouldn't otherwise need.

Questions

  1. Is this a known/acknowledged defect specific to ForwardedEvents on Windows Server 2025?
  2. Is there a hotfix, KB article, or planned cumulative update that addresses it?
  3. Is there a supported alternative filtering mechanism for ForwardedEvents on Server 2025 that avoids triggering this crash, short of reading unfiltered and filtering client-side?

I found at least one other report describing the same symptom (APPCRASH on wevtsvc.dll, Event 7034) when filtering ForwardedEvents by time on Server 2025: Problem accessing ForwardedEvents on 2025 Windows Server (https://learn.microsoft.com/en-us/answers/questions/2241731/problem-accessing-forwardedevents-on-2025-windows) — that thread reports the same crash but with no resolution beyond downgrading to Server 2022. We can additionally confirm the crash triggers even with an EventID-only filter (no time predicate at all), which that thread didn't test, so the defect appears broader than just time-based filtering.

Windows for business | Windows Server | Performance | Other
0 comments No comments

2 answers

Sort by: Most helpful
  1. Harry Phan 30,640 Reputation points Independent Advisor
    2026-08-25T06:36:31.6+00:00

    Hello Abhishek,

    This is indeed a reproducible defect in Windows Server 2025 builds when applying structured queries against the ForwardedEvents channel. The crash you’re seeing in wevtsvc.dll with APPCRASH and Event ID 7034 is not a misconfiguration on your side — it’s a regression in the Event Log service’s handling of XPath predicates on WEF/WEC-collected logs. The fact that unfiltered queries succeed while any predicate (EventID, TimeCreated, etc.) causes the service to terminate confirms the issue lies in the query evaluation layer for forwarded channels only.

    At present, Microsoft has not published a KB or hotfix that resolves this. The official documentation and Answers threads you referenced are consistent: the only supported workaround is exactly what you’ve already implemented — retrieving unfiltered events and applying client-side filtering. Downgrading to Server 2022 avoids the defect, but on 2025 there is no supported server-side filtering path that doesn’t trigger the crash.

    To be clear: this is not a problem with your PowerShell syntax, WEC subscription configuration, or domain controller forwarding. It is a service-level bug in the Windows Event Log engine on Server 2025. Until Microsoft issues a cumulative update that addresses the crash in wevtsvc.dll, there is no registry tweak, subscription parameter, or alternative API that will restore safe filtered queries against ForwardedEvents.

    The best course is to continue with client-side filtering and monitor the release notes of upcoming cumulative updates for Server 2025. If this is business-critical, I recommend opening a formal support case with Microsoft CSS and referencing the reproducible crash signature (wevtsvc.dll, APPCRASH, Event ID 7034) so it can be tracked under an official escalation. That will also help ensure the defect is prioritized for servicing.

    I hope you've found something useful here. If it helps you get more insight into the issue, it's appreciated to accept the answer. Should you have more questions, feel free to leave a message. Have a nice day!

    HP.

    Was this answer helpful?

    2 people found this answer helpful.
    0 comments No comments

  2. MaartenK-3165 0 Reputation points
    2026-09-11T09:19:18.21+00:00

    Hi Abhishek,

    We have been struggling with this for quite some time as well and have already tried the points mentioned above. It is clearly traceable back to some kind of event filter. Filtering just time, with no Event filter works.

    We still have a 2022 server running and performed exactly the same configuration there. On that server, everything works as expected.

    Example:picture

    I have tried this and looks like this is working. But bring some CPU power

    $EventDate = (get-date).AddMinutes(-10)
    $EventListSearch = @(4732, 4756, 4729, 4733, 4757)
    
    # works
    Get-WinEvent -FilterHashtable @{
        LogName   = 'WEC-LOG-TEST'
        StartTime = $EventDate
    } -ErrorAction Stop |
        Where-Object { $_.Id -in $EventListSearch } |
        Select-Object -First 20
    Get-Service "EventLog"
    
    # is Crash
    Get-WinEvent -FilterHashtable @{LogName='WEC-LOG-TEST'; StartTime=$EventDate; Id=$EventListSearch} -MaxEvents 20 -ComputerName $env:COMPUTERNAME -ErrorAction Stop
    Get-Service "EventLog"
    
    

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.