pypsrp

PowerShell Remoting Protocol for Python

MIT License

Downloads
1.1M
Stars
324
Committers
10

Bot releases are visible (Hide)

pypsrp - Latest Release

Published by jborean93 over 2 years ago

1.0.0b1 - 2022-05-27

Breaking changes

  • There should be no breaking changes in this release as the pypsrp namespace will continue to work as it had.
  • The pypsrp namespace is going to be deprecated going forward and all work moving to the stuff in the psrp namespace.

Features

  • Added the psrp namespace which includes a sync and asyncio runspace pools and powershell pipelines
  • This also includes a new set of connection types such as:
    • psrp.NamedPipeInfo - asyncio only connection for named pipes such as the management pipe pwsh creates
    • psrp.ProcessInfo - connection to start a new pwsh pwsh process locally
    • psrp.SSHInfo - asyncio only SSH connection for remote pwsh communication
    • psrp.WinPSSSHInfo - asyncio only SSH connection for remote Windows PowerShell communication
    • psrp.WSManInfo - connection for WSMan based remote targets
  • Also includes a base connection type class for Out of Process connections to help building your own
pypsrp -

Published by jborean93 over 2 years ago

0.8.1 - 2022-02-22

  • Bump requests-credssp minimum to new version to support newer encryption format and simpler dependencies
pypsrp -

Published by jborean93 over 2 years ago

0.8.0 - 2022-02-01

  • The CommandParameter class now uses named keyword arguments
  • The cmd parameter for Command class is now a positional argument
  • Ensure each ps.streams.error entry contains a MESSAGE_TYPE value just like the other stream objects
  • Use a default of None if a complex custom object has no ToString property defined.
  • Moved back to using setuptools instead of poetry as the build system
  • Added type annotations to most public classes and methods
pypsrp -

Published by jborean93 almost 3 years ago

pypsrp -

Published by jborean93 almost 3 years ago

0.7.0 - 2021-12-13

Features

pypsrp -

Published by jborean93 almost 3 years ago

0.6.1 - 2021-11-19

  • Fix no_proxy to actually ignore environment proxy settings
pypsrp -

Published by jborean93 almost 3 years ago

0.6.0 - 2021-10-21

Breaking changes

  • Dropped support for Python 2.7 and Python 3.5
  • Added support for Python 3.10
  • Use poetry as the packaging and dependency management tool
  • Added pykrb5 as extra dependency for Kerberos auth on non-Windows due to a dependecy change on pyspnego

Features

  • Use File.Move when calling Client.copy() to optimistically speed up server side operations
pypsrp - 0.5.0

Published by jborean93 about 4 years ago

0.5.0 - 2020-08-13

Breaking changes

  • Dropped support for Python 2.6 and Python 3.4
  • Using Client.copy() and Client.fetch() doesn't expand variables in the local path by default.

Features

  • Support endpoints that only have 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.
  • Changed authentication library for Kerberos and NTLM auth to pyspnego.
  • Added a context manager for pypsrp.client.Client and pypsrp.wsman.WSMan. This ensures any resources that the transport utilises will be closed if possible

Bugfixes

  • On Linux, use Kerberos if the auto auth provider is specified and no username or password is set. There is still no NTLM fallback but Kerberos is ideal in this scenario.
  • Use SHA256 when calculating the channel bindings token hash if an unknown algorithm is encountered.
  • Handle warning messages that are sent to the RunspacePool instead of raising an exception.
pypsrp -

Published by jborean93 about 4 years ago

pypsrp - Release v0.4.0

Published by jborean93 about 5 years ago

  • Fixed an issue when escaping string in PowerShell that start with _X.
  • Base relative paths off the PowerShell location and not the process location for file copy and fetch operations.
  • Fixed problem when using fetch() on PowerShell v2 hosts.
  • Changed Client.copy() to use PSRP instead of WinRS to better support non-admin scenarios.
  • Added explicit environment settings for Client.execute_cmd() and Client.execute_ps().
  • Added configuration_name kwargs on Client.execute_ps(), Client.copy(), and Client.fetch() to configure the configuration endpoint it connects to.
  • Fixed up message encryption with gss-ntlmssp on Linux
pypsrp - Bugfixes and more Kerberos optimisations

Published by jborean93 over 5 years ago

0.3.1 - 2019-02-26

  • Fix issue where negotiate_delegate=True did nothing with pywin32 on Windows
  • Fix instances of invalid escape sequences in strings that will break in future Python versions - https://bugs.python.org/issue27364
  • Added warning if requests version is older than 2.14.0 as it does not support status retries. Pypsrp will continue but without supporting status retries.
  • Fix byte ordering for the PID and RPID values of each PSRP message. This should not be an existing issue on normal hosts but it will make the move to SSH easier in the future
  • Support using a direct IPv6 address as the server name
  • Manually get Kerberos ticket if the one in the cache has expired and the password is set
  • Added explicit documentation to state that on MacOS/Heimdal KRB5 implementations, the Kerberos ticket will persist after running
pypsrp - Timeout, reconnectionn and logging improvements

Published by jborean93 almost 6 years ago

0.3.0 - 2018-11-14

  • Added FEATURE dict to module to denote whether a feature has been added in installed pypsrp
  • Added read_timeout to pypsrp.wsman.WSMan to control the timeout when waiting for a HTTP response from the server
  • Added reconnection_retries and reconnection_backoff to control reconnection attempts on connection failures
  • Changed a few log entries from info to debug as some of those log entries were quite verbose
pypsrp - Bufix for circular refs and better WSMan interfaces

Published by jborean93 about 6 years ago

  • Fix issue when deserialising a circular reference in a PSRP object
  • Added the ability to specify the Locale and DataLocale values when creating the WSMan object
  • Update the max envelope size default if the negotiated version is greater than or equal to 2.2 (PowerShell v3+)
pypsrp - Initial Release

Published by jborean93 over 6 years ago

Initial release of pypsrp, it contains the following features

  • Basic Windows Remote Shell over WinRM to execute raw cmd command or processes
  • Various WSMan methods that can be used to execute WSMan commands
  • A mostly complete implementation of the PowerShell Remoting Protocol that mimics the .NET System.Management.Automation.Runspaces interface
  • Support for a reference host base implementation of PSRP for interactive scripts
  • Support for all WinRM authentication protocols like Basic, Certificate, Negotiate, Kerberos, and CredSSP
  • Implementation of the Windows Negotiate auth protocol to negotiate between NTLM and Kerberos auth
  • Support for message encryption of HTTP with the Negotiate (NTLM/Kerberos) and CredSSP protocol
Package Rankings
Top 2.01% on Pypi.org
Top 27.33% on Conda-forge.org
Badges
Extracted from project README
Test workflow codecov PyPI version