A category covering Microsoft's enterprise and professional Windows solutions
Hello @Mateo Morales
Based on the evidence you've collected, this doesn't look like an RDP listener, licensing, authentication, profile, or basic connectivity issue.
The strongest indicator is the LocalSessionManager sequence: Event 41 – Begin session arbitration with no corresponding Event 42, followed by no Event 21/22. Since the same hang occurs during a local VMConnect logon after credentials are accepted, the failure appears to be in Windows session creation/arbitration, rather than the RDP transport itself.
Be careful about treating Event 17 / 0x8007045B (ERROR_SHUTDOWN_IN_PROGRESS) as the confirmed root cause. It shows that Remote Desktop Services tried to start while Windows was still processing shutdown, and its timing makes it relevant, but it doesn't prove that this left TermService permanently corrupted. The fact that the problem subsequently recurs after you kill/restart UmRdpService and TermService suggests there may be another trigger.
Your observation that UmRdpService becomes unresponsive first and prevents TermService from stopping is particularly useful. I wouldn't disable UmRdpService permanently as the final fix because it provides RDP device/port redirection functionality. Disabling printer redirection also didn't prevent recurrence, so printer redirection alone doesn't appear to explain the problem.
At this stage, capture diagnostics while the server is in the failed state and before killing either svchost process.
First, capture full user-mode dumps of the hung UmRdpService and TermService svchost processes. Since you've already established that each is running in its own dedicated svchost instance, those dumps should be particularly useful to Microsoft engineering.
Also, export these Event Viewer channels covering several minutes before and after the failure:
Microsoft-Windows-TerminalServices-LocalSessionManager/Operational
Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational
System
Application
If Microsoft asks for deeper tracing, an RDS/Terminal Services ETW trace captured across a reproduction would be the logical next step.
Also, don't spend much more time on profile troubleshooting unless the diagnostic evidence starts pointing there. Microsoft recommends User Profile Service Operational/Diagnostic logging for profile load/unload failures, but your failure occurs before LocalSessionManager completes session arbitration and affects multiple local accounts.
One other thing to test is whether this reproduces on a fully patched Windows Server 2022 VM built cleanly at the current servicing level, rather than only on this machine that moved approximately six months of servicing forward in one update cycle. That gives you a useful A/B comparison without uninstalling individual security updates from the production server.
I can't find a currently published Microsoft known issue or documented fix that specifically maps Event 17 / 0x8007045B → Event 41 without Event 42 → hung UmRdpService/TermService, so we cannot represent this as a confirmed known Windows Server 2022 defect yet.
Since you can reproduce it and leave the machine in the failed state, this is a good candidate for a Microsoft Support escalation. Provide the dumps, ETL/event logs, exact Windows build, installed KB history, and timestamps for each occurrence. Ask specifically for analysis by the Windows Remote Desktop Services / Terminal Services team.
Your current process-termination method is useful for emergency recovery because it restores service without rebooting, but treat it as a workaround rather than a supported root-cause fix until the hung-process dumps identify what UmRdpService/TermService are waiting on.
References:
Troubleshoot user profiles with events - Microsoft Learn
Remote Desktop Services - Windows Server documentation
=============================================================================
Help make this community better for everyone: If the answer helped or resolved your issue, please accept it or upvote it. This helps others in the community find similar solutions.