Skip to content

WinRM: complete Enumerate/Pull/Get/Put/Identify operations #50

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/PutWsAction + 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions