wtf-rdp v0.3.3
Windows RDP session-rescue tooling: a wtf-windows-family CLI (rdp) that detects and non-destructively recovers RDP sessions wedged or blocked by the Local Session Manager.
What's New in v0.3.3
A correctness release: the tool no longer reports a recovery that didn't actually hold.
Fixed: recovery could falsely report success (#1)
rdp recover (and the watchdog) treated tscon's exit code as proof of recovery. But a session under a hardened Local Session Manager block reconnects to the console and then decays back to Disconnected within ~2 minutes — so the tool reported reconnected, locked=True / logged RESCUE OK for a rescue that never actually held. A rescue tool that lies about success is worse than none.
Now there is a verification gate: after tscon, the rescue polls the session and reports success only if it reaches Active/Connected and stays there through a window (default 20s). rdp recover and the watchdog now distinguish:
- recovered-and-held — the reconnect stuck (a real success)
- decayed — reconnected then fell back; the signature of a hardened LSM block that
tsconcannot clear (needs a reboot, or prevention) - unconfirmed / failed
Validated live against a reproduced Event-36 wedge: the watchdog now logs RESCUE INEFFECTIVE ... DECAYED ... hardened LSM block instead of a false RESCUE OK.
Fixed: garbled wedge-candidate log line
Get-WtfRdpWedgeEventSid returned a double-wrapped array, so wedge-candidate log lines printed sids: System.Object[] instead of the session ids.
Added
Get-WtfRdpVerifyVerdict(pure, exported) — the verdict logic behind the verification gate, covered by a Pester test (8 cases).
Installation
pip install -U wtf-rdp
On the RDP host: rdp install (deploys the LocalSystem watchdog). On a client that terminals in: rdp / rdp query for diagnostics.
Version History (0.3.x)
| Version | Key Change |
|---|---|
| v0.3.3 | Current — verification gate: recovery no longer falsely reports success |
| v0.3.2 | First working wheel (packaged the .wtf-rdp.json tool manifests) |
| v0.3.1 | First public release (PyPI trusted publishing) |
| v0.3.0 | sessfix query/logs/config, universal -h, verified NSSM pin |
Platform Support
| Platform | Status |
|---|---|
| Windows 10 / 11 | Tested |
| Windows Server | Expected to work |
Requirements
- Windows (the session /
tscon/ lock machinery is Windows-native) - Python 3.9+