How to Configure Windows Reliability Monitor on Windows Server 2016

Windows Reliability Monitor is a built-in diagnostic tool in Windows Server 2016 that tracks system stability over time and presents a graphical timeline of critical events such as application crashes, Windows failures, hardware errors, and software installations. Unlike Performance Monitor, which focuses on metrics, Reliability Monitor focuses on events that affect system stability. It assigns a Stability Index score from 1 (most unstable) to 10 (most stable) for each day and lets administrators drill into specific events to identify the root cause of recurring issues.

This guide covers how to open and use Reliability Monitor, how to access the underlying data via PowerShell and WMI, and how to export reliability data for documentation or analysis.

Step 1: Open Reliability Monitor

The easiest way to open Reliability Monitor on Windows Server 2016 is via the Control Panel. Open Control Panel > System and Security > Security and Maintenance > Maintenance > View reliability history.

Alternatively, run from the command line or PowerShell:

perfmon /rel

Or search for “reliability” in the Start menu search box. The Reliability Monitor interface opens with a timeline chart spanning the past 30 days by default.

Step 2: Interpret the Stability Index Timeline

The chart shows a line graph of the Stability Index overlaid with icons representing events. Event categories displayed are:

Application failures (red X) — application crashes and hangs. Windows failures (red X) — unexpected shutdowns and boot failures. Miscellaneous failures (red X) — driver failures and other system errors. Warnings (yellow triangle) — unsuccessful software installations or updates. Information (blue circle) — successful software installs and Windows updates.

The Stability Index drops sharply when failures occur and recovers gradually over time as the system runs without incidents. A persistently low score indicates chronic instability that requires investigation.

Step 3: Drill into Event Details

Click any day on the timeline to populate the lower panel with all events for that day. Click any event row to expand it and view:

The faulting application name and version. The faulting module (DLL or driver). The exception code. A link to Check for a solution (which queries Windows Error Reporting for known fixes).

For application crashes, the faulting module is particularly useful—a recurring entry for a specific DLL often points to a corrupted installation, a missing update, or an incompatible third-party component.

Step 4: Save Reliability History as an XML Report

Reliability Monitor can export its data to an XML file for sharing with vendor support or archiving. In the Reliability Monitor window, click Save a reliability history. Choose a save location. The resulting XML contains the same data displayed in the UI, structured for machine or human reading.

Step 5: Query Reliability Data via PowerShell

The Reliability Monitor data is sourced from the WMI class Win32_ReliabilityRecords. Query it directly from PowerShell:

Get-WmiObject -Class Win32_ReliabilityRecords | Sort-Object TimeGenerated -Descending | Select-Object -First 20 | Format-Table TimeGenerated, ProductName, Message, SourceName -AutoSize

To filter for only critical failures (EventIdentifier 1001 is application crash):

Get-WmiObject -Class Win32_ReliabilityRecords | Where-Object { $_.EventIdentifier -in @(1001, 1002) } | Select-Object TimeGenerated, ProductName, Message | Sort-Object TimeGenerated -Descending

Step 6: Query Stability Index History via WMI

The Stability Index history is stored in Win32_ReliabilityStabilityMetrics:

Get-WmiObject -Class Win32_ReliabilityStabilityMetrics | Sort-Object StartMeasurementDate -Descending | Select-Object -First 10 | Format-Table StartMeasurementDate, SystemStabilityIndex -AutoSize

Exporting 30 days of stability index to CSV for trend analysis:

Get-WmiObject -Class Win32_ReliabilityStabilityMetrics | Select-Object StartMeasurementDate, SystemStabilityIndex | Sort-Object StartMeasurementDate | Export-Csv -Path "C:LogsStabilityHistory.csv" -NoTypeInformation

Step 7: Correlate Reliability Events with Event Viewer

Reliability Monitor events correspond to entries in Windows Event Viewer. Application crashes appear under Windows Logs > Application with Event ID 1000. Unexpected shutdowns appear under Windows Logs > System with Event ID 41 (Kernel-Power). Use Event Viewer to get full crash details including stack traces and error codes that are truncated in Reliability Monitor.

Get-EventLog -LogName Application -EntryType Error -Source "Application Error" -Newest 10 | Format-Table TimeGenerated, Message -AutoSize

Step 8: Schedule Automated Reliability Reports

Create a scheduled PowerShell script to email a weekly reliability summary. Save the following as C:ScriptsReliabilityReport.ps1:

$records = Get-WmiObject -Class Win32_ReliabilityRecords | Where-Object {$_.EventIdentifier -in @(1001,1002)} | Sort-Object TimeGenerated -Descending | Select-Object -First 20
$body = $records | ConvertTo-Html -Property TimeGenerated, ProductName, Message | Out-String
Send-MailMessage -To "[email protected]" -From "[email protected]" -Subject "Weekly Reliability Report - $env:COMPUTERNAME" -Body $body -BodyAsHtml -SmtpServer "smtp.domain.com"

Schedule with Task Scheduler to run every Monday at 8:00 AM.

Best Practices

Review Reliability Monitor weekly, especially after patch Tuesdays, to detect new instabilities introduced by updates. A sharp stability score drop on a specific date often correlates with an application installation, Windows update, or hardware change. Use the Check for a solution links to automatically query Microsoft’s error reporting database before spending time on manual diagnosis. Combine Reliability Monitor with Event Viewer and Performance Monitor timestamps for comprehensive root cause analysis of server issues.