π ~1 min read
Table of contents
Symptom & Impact
WinRM on Windows Server 2019 cannot bind its HTTP or HTTPS listener, so remote PowerShell, configuration tools, and DSC pulls fail. Administrators lose remote management capability while the host appears otherwise healthy from console.
Environment & Reproduction
Reproduce after certificate renewal or HTTP.sys reservation changes. Inspect listener configuration and System log entries.
Get-Service -Name winrm
Get-WinEvent -LogName System -MaxEvents 40
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10
Root Cause Analysis
Causes include a missing or expired listener certificate, a stale HTTP.sys URL reservation, conflict with another process on port 5985/5986, or a Group Policy override.
Quick Triage
Confirm WinRM service state, enumerate listeners, and check HTTP.sys reservations before making changes.
sc.exe query winrm
Get-Service -Name winrm | Select-Object Status,StartType
Get-EventLog -LogName System -Newest 30 | Where-Object {$_.Source -match 'winrm'}
Step-by-Step Diagnosis
Enumerate listeners, certificate thumbprints, and HTTP.sys reservations bound to the WinRM URL prefix.
Get-WinEvent -LogName System -MaxEvents 50 | Where-Object {$_.ProviderName -match 'winrm'} | Select TimeCreated,Id,LevelDisplayName,Message
sc.exe qfailure winrm
sfc /verifyonly

Solution β Primary Fix
Recreate listeners with the correct certificate thumbprint and reset HTTP.sys URL reservations to defaults.
Still having issues? Our IT Solutions & Services team can diagnose and resolve this for you. Get in touch for a free consultation.
Restart-Service -Name winrm -Force
Get-Service -Name winrm | Select-Object Status,StartType
Get-WinEvent -LogName System -MaxEvents 20 | Where-Object {$_.ProviderName -match 'winrm'}

Solution β Alternative Approaches
If Group Policy controls the configuration, fix the GPO and re-run quickconfig with elevated rights.
sc.exe config winrm start= auto
sc.exe failure winrm reset= 86400 actions= restart/60000/restart/60000/run/1000
Restart-Service -Name winrm -Force
Verification & Acceptance Criteria
WinRM service runs, listeners are enumerable, and Test-WSMan against the host returns successfully.
Get-Service -Name winrm
Get-WinEvent -LogName System -MaxEvents 25 | Where-Object {$_.ProviderName -match 'winrm' -and $_.LevelDisplayName -eq 'Error'}
Test-NetConnection -ComputerName localhost -Port
Rollback Plan
Restore the previous listener configuration backup or rebind the previous certificate thumbprint.
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 5
wbadmin get versions
# Restore previous configuration export if available
Prevention & Hardening
Track listener certificates with expiry alerts and validate WinRM after every certificate or GPO change.
Get-Service -Name winrm | Export-Clixml C:/Temp/winrm-baseline.xml
Get-WinEvent -LogName System -MaxEvents 50 > C:/Temp/winrm-events.txt
Get-ScheduledTask | Where-Object {$_.TaskName -match 'winrm'}
Related Errors & Cross-Refs
Related to events 142, 10154, and HTTPAPI 15005 binding conflicts.
Related tutorial: View the step-by-step tutorial for Windows Server 2019.
View all Windows Server 2019 tutorials on the Tutorials Hub β
Browse all common problems & solutions on the Tutorials Hub.
References & Further Reading
Microsoft Learn references for WinRM listener configuration on Windows Server 2019.
Need Expert Help?
If you cannot resolve this yourself, our team offers hands-on Server Management, Managed IT Services, and flexible Support Plans. Contact us today β we respond within one business day.