Devolutions / Devolutions/ironPosh
WinRM: complete Enumerate/Pull/Get/Put/Identify operations
- Dominant language
- Rust
- Stars
- 10
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
## Gap
Several WS-Management operations exist only as body-slot/type stubs and are not serialized/driven. Low priority for a PSRP client, but needed for completeness (shell enumeration, server config introspection, capability probing).
## Current state (`crates/ironposh-winrm/src/ws_management/body.rs`)
- `EnumerateValue::append_to_element` is `todo!()` — Enumerate/Pull not serialized.
- `Get`/`Put` — `WsAction` + body slots exist, no concrete value types/usage.
- `Identify` — body slot + tag exist, no client-driven request flow.
## Required
- **Identify** (cheapest, useful first): send a `wsmid:Identify` and parse `IdentifyResponse` (protocol version, product vendor/version) — handy for capability probing.
- **Enumerate/Pull**: implement `EnumerateValue` serialization + `Pull` to list active shells.
- **Get/Put**: concrete request/response for WS-Man config resources.
## Acceptance
- Per-op: a request round-trips against the live server and parses the response (Identify first).
## References
- pypsrp `wsman.py` (`enumerate`/`pull`/`get`/`put`; note pypsrp also lacks a top-level `identify()`).
- MS-WSMV / WS-Management Identify + Enumeration.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in crates/ironposh-winrm/src/ws_management/body.rs, where EnumerateValue serialization is still a stub and the Get, Put, and Identify body slots are defined. Begin with the Identify flow, using the pypsrp wsman.py reference and MS-WSMV/WS-Management references to understand the request and response. Done means each operation round-trips against a live server and parses its response.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100