NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4161 most downloaded on PyPI
PowerShell Remoting Protocol and WinRM for Python
Last release 6 months ago
16 Mar 2026
Ships unpredictably
gaps range from 2 weeks to 3.5 years
Nearly every release is documented
notes for 13 of 13 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
18 releases · first in 2018
There should be no breaking changes in this release as the pypsrp namespace will continue to work as it had.
pypsrp namespace will continue to work as it had.pypsrp namespace is going to be deprecated going forward and all work moving to the stuff in the psrp namespace.psrp namespace which includes a sync and asyncio runspace pools and powershell pipelinespsrp.NamedPipeInfo - asyncio only connection for named pipes such as the management pipe pwsh createspsrp.ProcessInfo - connection to start a new pwsh pwsh process locallypsrp.SSHInfo - asyncio only SSH connection for remote pwsh communicationpsrp.WinPSSSHInfo - asyncio only SSH connection for remote Windows PowerShell communicationpsrp.WSManInfo - connection for WSMan based remote targetsOne column per quarter.
Fix recursion issue when generating requests HTTP adapter on each new connection
Full Changelog: v0.9.0...v0.9.1
Clean up imports and bump cryptography now backend is optional/deprecated by @jborean93 in #211
Receive operations that can attempt to recover from a network disconnect during a command operationno_profile option to RunspacePool to skip loading the user profile on the remote shellidle_timeout option to RunspacePool to control the idle timeout, in seconds, of the remote Runspace Pool__enter__ and __exit__ method for PowerShell to allow it to be used with a with PowerShell(runspace) as ps: syntax
__exit__ the pipeline will be closed using the TERMINATE signal to clean up any resources on the server endps.close() can also be called manually to clean up any resources and to prep the pipeline to be run againclear_streams() onto a PowerShell object to clear the output and streams values so it is ready for a subsequent runWSMAN to host to match the behaviour on Windows
WSMAN was used for CredSSP authentication only on the native Windows client while Negotiate/Kerberos auth used hostWSMAN service for the hostis_alive(timeout=...) on RunspacePool to check if the Runspace Pool is still alive and ready for use on the servercertificate_key_password option to WSMan to support loaded client certificate keys that have been encryptedFull Changelog: v0.8.1...v0.9.0
Change default Negotiate service to HTTP by @jborean93 in #213
Full Changelog: v0.9.0rc1...v0.9.0rc2
Clean up imports and bump cryptography now backend is optional/deprecated by @jborean93 in #211
Full Changelog: v0.8.1...v0.9.0rc1
Bump requests-credssp minimum to new version to support newer encryption format and simpler dependencies
requests-credssp minimum to new version to support newer encryption format and simpler dependenciesThe CommandParameter class now uses named keyword arguments
CommandParameter class now uses named keyword argumentscmd parameter for Command class is now a positional argumentps.streams.error entry contains a MESSAGE_TYPE value just like the other stream objectsNone if a complex custom object has no ToString property defined.setuptools instead of poetry as the build systemNothing published for this version
Add pypsrp.serializer.TaggedValue which allows the marking of a value with a tag that controls which serialization routine to apply.
pypsrp.serializer.TaggedValue which allows the marking of a value with a tag that controls which serialization routine to apply.
U32 as System.UInt32, SS as System.Security.SecureString, etcFix no_proxy to actually ignore environment proxy settings
no_proxy to actually ignore environment proxy settingsDropped support for Python 2.7 and Python 3.5
poetry as the packaging and dependency management toolpyspnegoClient.copy() to optimistically speed up server side operationsDropped support for Python 2.6 and Python 3.4
Client.copy() and Client.fetch() doesn't expand variables in the local path by default.Kerberos enabled and not just Negotiate.Client.copy() and Client.fetch() methods have new expand_variables parameter. This can be used to expand variables both in local and remote path.Kerberos and NTLM auth to pyspnego.pypsrp.client.Client and pypsrp.wsman.WSMan. This ensures any resources that the transport utilises will be closed if possibleauto auth provider is specified and no username or password is set. There is still no NTLM fallback but Kerberos is ideal in this scenario.Nothing published for this version
Fixed an issue when escaping string in PowerShell that start with _X.
_X.fetch() on PowerShell v2 hosts.Client.copy() to use PSRP instead of WinRS to better support non-admin scenarios.environment settings for Client.execute_cmd() and Client.execute_ps().configuration_name kwargs on Client.execute_ps(), Client.copy(), and Client.fetch() to configure the configuration endpoint it connects to.gss-ntlmssp on LinuxFix issue where negotiate_delegate=True did nothing with pywin32 on Windows
negotiate_delegate=True did nothing with pywin32 on WindowsAdded FEATURE dict to module to denote whether a feature has been added in installed pypsrp
FEATURE dict to module to denote whether a feature has been added in installed pypsrpread_timeout to pypsrp.wsman.WSMan to control the timeout when waiting for a HTTP response from the serverreconnection_retries and reconnection_backoff to control reconnection attempts on connection failuresinfo to debug as some of those log entries were quite verboseFix issue when deserialising a circular reference in a PSRP object
Locale and DataLocale values when creating the WSMan object2.2 (PowerShell v3+)Initial release of pypsrp, it contains the following features
Initial release of pypsrp, it contains the following features
Your coding agent can read these notes before it upgrades. Set up the MCP server →