Gap
GET_COMMAND_METADATA is not implemented (message-type ID only). This message powers Get-Command metadata retrieval and implicit remoting (proxy-function generation). Both pypsrp/psrpcore and native C# implement it.
Note: our interactive tab-completion works via a different path (running a command), so this is additive, not a regression.
Current state
- Enum ID only:
crates/ironposh-psrp/src/cores.rs (~lines 47, 83). No request builder, no response parsing.
Required
- Build the
GET_COMMAND_METADATA pipeline message (command name patterns, command types, module names, ArgumentList).
- Parse the streamed response:
CommandMetadataCount, CommandMetadata, ParameterMetadata objects.
- Expose a client-core API (e.g.
get_command_metadata(...)).
Acceptance
- An e2e test retrieving metadata for a known cmdlet (e.g.
Get-Process) and asserting parameter metadata is parsed.
References
- psrpcore
src/psrpcore/_pipeline.py (GetMetadata) + _client.py ClientGetCommandMetadata.
- pypsrp
powershell.py get_command_metadata.
- Native C#
EncodeAndDecode.cs GenerateGetCommandMetadata (~line 787).
Gap
GET_COMMAND_METADATAis not implemented (message-type ID only). This message powersGet-Commandmetadata retrieval and implicit remoting (proxy-function generation). Both pypsrp/psrpcore and native C# implement it.Note: our interactive tab-completion works via a different path (running a command), so this is additive, not a regression.
Current state
crates/ironposh-psrp/src/cores.rs(~lines 47, 83). No request builder, no response parsing.Required
GET_COMMAND_METADATApipeline message (command name patterns, command types, module names, ArgumentList).CommandMetadataCount,CommandMetadata,ParameterMetadataobjects.get_command_metadata(...)).Acceptance
Get-Process) and asserting parameter metadata is parsed.References
src/psrpcore/_pipeline.py(GetMetadata) +_client.pyClientGetCommandMetadata.powershell.pyget_command_metadata.EncodeAndDecode.csGenerateGetCommandMetadata(~line 787).