pywinrm


Namepywinrm JSON
Version 0.4.3 PyPI version JSON
download
home_pagehttp://github.com/diyan/pywinrm/
SummaryPython library for Windows Remote Management
upload_time2022-04-14 04:22:36
maintainer
docs_urlNone
authorAlexey Diyan
requires_python
licenseMIT license
keywords winrm ws-man devops ws-management
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            pywinrm
=======

pywinrm is a Python client for the Windows Remote Management (WinRM)
service. It allows you to invoke commands on target Windows machines
from any machine that can run Python.

|License| |Test workflow| |Coverage| |PyPI|

WinRM allows you to perform various management tasks remotely. These
include, but are not limited to: running batch scripts, powershell
scripts, and fetching WMI variables.

Used by `Ansible <https://www.ansible.com/>`__ for Windows support.

For more information on WinRM, please visit `Microsoft’s WinRM
site <http://msdn.microsoft.com/en-us/library/aa384426.aspx>`__.

Requirements
------------

-  Linux, Mac OS X or Windows
-  CPython 2.6-2.7, 3.3-3.5 or PyPy2
-  `requests-kerberos <http://pypi.python.org/pypi/requests-kerberos>`__
   and
   `requests-credssp <https://github.com/jborean93/requests-credssp>`__
   is optional

Installation
------------

To install pywinrm with support for basic, certificate, and NTLM auth, simply
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: bash

   $ pip install pywinrm

To use Kerberos authentication you need these optional dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: bash

   # for Debian/Ubuntu/etc:
   $ sudo apt-get install gcc python-dev libkrb5-dev
   $ pip install pywinrm[kerberos]

   # for RHEL/CentOS/etc:
   $ sudo yum install gcc python-devel krb5-devel krb5-workstation python-devel
   $ pip install pywinrm[kerberos]

To use CredSSP authentication you need these optional dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: bash

   # for Debian/Ubuntu/etc:
   $ sudo apt-get install gcc python-dev libssl-dev
   $ pip install pywinrm[credssp]

   # for RHEL/CentOS/etc:
   $ sudo yum install gcc python-devel openssl-devel
   $ pip install pywinrm[credssp]

Example Usage
-------------

Run a process on a remote host
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   import winrm

   s = winrm.Session('windows-host.example.com', auth=('john.smith', 'secret'))
   r = s.run_cmd('ipconfig', ['/all'])
   >>> r.status_code
   0
   >>> r.std_out
   Windows IP Configuration

      Host Name . . . . . . . . . . . . : WINDOWS-HOST
      Primary Dns Suffix  . . . . . . . :
      Node Type . . . . . . . . . . . . : Hybrid
      IP Routing Enabled. . . . . . . . : No
      WINS Proxy Enabled. . . . . . . . : No
   ...
   >>> r.std_err

NOTE: pywinrm will try and guess the correct endpoint url from the
following formats:

-  windows-host -> http://windows-host:5985/wsman
-  windows-host:1111 -> http://windows-host:1111/wsman
-  http://windows-host -> http://windows-host:5985/wsman
-  http://windows-host:1111 -> http://windows-host:1111/wsman
-  http://windows-host:1111/wsman -> http://windows-host:1111/wsman

Run Powershell script on remote host
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   import winrm

   ps_script = """$strComputer = $Host
   Clear
   $RAM = WmiObject Win32_ComputerSystem
   $MB = 1048576

   "Installed Memory: " + [int]($RAM.TotalPhysicalMemory /$MB) + " MB" """

   s = winrm.Session('windows-host.example.com', auth=('john.smith', 'secret'))
   r = s.run_ps(ps_script)
   >>> r.status_code
   0
   >>> r.std_out
   Installed Memory: 3840 MB

   >>> r.std_err

Powershell scripts will be base64 UTF16 little-endian encoded prior to
sending to the Windows host. Error messages are converted from the
Powershell CLIXML format to a human readable format as a convenience.

Run process with low-level API with domain user, disabling HTTPS cert validation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   from winrm.protocol import Protocol

   p = Protocol(
       endpoint='https://windows-host:5986/wsman',
       transport='ntlm',
       username=r'somedomain\someuser',
       password='secret',
       server_cert_validation='ignore')
   shell_id = p.open_shell()
   command_id = p.run_command(shell_id, 'ipconfig', ['/all'])
   std_out, std_err, status_code = p.get_command_output(shell_id, command_id)
   p.cleanup_command(shell_id, command_id)
   p.close_shell(shell_id)

Valid transport options
~~~~~~~~~~~~~~~~~~~~~~~

pywinrm supports various transport methods in order to authenticate with
the WinRM server. The options that are supported in the ``transport``
parameter are; \* ``basic``: Basic auth only works for local Windows
accounts not domain accounts. Credentials are base64 encoded when
sending to the server. \* ``plaintext``: Same as basic auth. \*
``certificate``: Authentication is done through a certificate that is
mapped to a local Windows account on the server. \* ``ssl``: When used
in conjunction with ``cert_pem`` and ``cert_key_pem`` it will use a
certificate as above. If not will revert to basic auth over HTTPS. \*
``kerberos``: Will use Kerberos authentication for domain accounts which
only works when the client is in the same domain as the server and the
required dependencies are installed. Currently a Kerberos ticket needs
to be initialized outside of pywinrm using the ``kinit`` command. \*
``ntlm``: Will use NTLM authentication for both domain and local
accounts. \* ``credssp``: Will use CredSSP authentication for both
domain and local accounts. Allows double hop authentication. This only
works over a HTTPS endpoint and not HTTP.

Encryption
~~~~~~~~~~

By default, WinRM will not accept unencrypted communication with a
client. There are two ways to enable encrypted communication with
pywinrm:

1. Use an HTTPS endpoint instead of HTTP (Recommended)
2. Use NTLM, Kerberos, or CredSSP as the transport auth

Using an HTTPS endpoint is recommended, as it will encrypt all the data
sent to the server (including all headers), works securely with all auth
types, and can properly verify remote host identity (when used with
certificates signed by a verifiable certificate authority). You can use
`this
script <https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1>`__
to easily set up a HTTPS endpoint on WinRM with a self-signed
certificate, but the use of a verifiable certificate authority is
recommended in production environments.

The second option is to use NTLM, Kerberos, or CredSSP, and set the
``message_encryption`` arg to protocol to ``auto`` (the default value)
or ``always``. This will use the authentication GSS-API Wrap and Unwrap
methods to encrypt the message contents sent to the server. This form of
encryption is independent of the transport layer, and the strength of
the encryption used varies with the underlying authentication type
selected (NTLM generally being the weakest and CredSSP the strongest).

To configure message encryption you can use the ``message_encryption``
argument when initialising protocol. This option has 3 values that can
be set as shown below.

-  ``auto``: Default, Will only use message encryption if it is
   available for the auth method and HTTPS isn’t used.
-  ``never``: Will never use message encryption even when not over
   HTTPS.
-  ``always``: Will always use message encryption even when running over
   HTTPS (fails if encryption support is unavailable on the selected
   auth method).

If you set the value to ``always`` and the transport opt doesn’t support
message encryption (e.g., ``basic`` auth or an old version of
``pykerberos`` without message encryption support is installed), pywinrm
will throw an exception.

If you do not use an HTTPS endpoint or message encryption, a
default-configured WinRM server will automatically reject requests from
pywinrm. Server settings can be modified allow unencrypted messages and
credentials, but this is highly insecure and should only be used for
diagnostic purposes. To allow unencrypted communications, run the
following on the WinRM server (cmd and powershell versions provided):

::

   # from cmd
   winrm set winrm/config/service @{AllowUnencrypted="true"}

   # or from powershell
   Set-Item -Path "WSMan:\localhost\Service\AllowUnencrypted" -Value $true

Again, this should *not* be used in production environments, as your
credentials and WinRM messages can be trivially recovered.

Enabling WinRM on remote host
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Enable WinRM over HTTP and HTTPS with self-signed certificate (includes
firewall rules):

::

   # from powershell:
   Invoke-Expression ((New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1'))

Enable WinRM over HTTP for test usage (includes firewall rules):

::

   winrm quickconfig

Enable WinRM basic authentication. For domain users, it is necessary to
use NTLM, Kerberos, or CredSSP authentication (Kerberos and NTLM
authentication are enabled by default, CredSSP is not).

::

   # from cmd:
   winrm set winrm/config/service/auth @{Basic="true"}

Enable WinRM CredSSP authentication. This allows double hop support so
you can authenticate with a network service when running command son the
remote host. This command is run in Powershell.

.. code:: powershell

   Enable-WSManCredSSP -Role Server -Force
   Set-Item -Path "WSMan:\localhost\Service\Auth\CredSSP" -Value $true

Contributors (alphabetically)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-  Alessandro Pilotti
-  Alexey Diyan
-  Chris Church
-  David Cournapeau
-  Gema Gomez
-  Jijo Varghese
-  Jordan Borean
-  Juan J. Martinez
-  Lukas Bednar
-  Manuel Sabban
-  Matt Clark
-  Matt Davis
-  Maxim Kovgan
-  Nir Cohen
-  Patrick Dunnigan
-  Reina Abolofia

Want to help - send a pull request. I will accept good pull requests for
sure.

.. |License| image:: https://img.shields.io/badge/license-MIT-blue.svg
   :target: https://github.com/diyan/pywinrm/blob/master/LICENSE
.. |Test workflow| image:: https://github.com/diyan/pywinrm/workflows/Test%20pywinrm/badge.svg
   :target: https://github.com/diyan/pywinrm/actions/workflows/ci.yml
.. |Coverage| image:: https://coveralls.io/repos/diyan/pywinrm/badge.svg
   :target: https://coveralls.io/r/diyan/pywinrm
.. |PyPI| image:: https://img.shields.io/pypi/dm/pywinrm.svg
   :target: https://pypi.python.org/pypi/pywinrm



            

Raw data

            {
    "_id": null,
    "home_page": "http://github.com/diyan/pywinrm/",
    "name": "pywinrm",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "winrm,ws-man,devops,ws-management",
    "author": "Alexey Diyan",
    "author_email": "alexey.diyan@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/7c/ba/78329e124138f8edf40a41b4252baf20cafdbea92ea45d50ec712124e99b/pywinrm-0.4.3.tar.gz",
    "platform": null,
    "description": "pywinrm\n=======\n\npywinrm is a Python client for the Windows Remote Management (WinRM)\nservice. It allows you to invoke commands on target Windows machines\nfrom any machine that can run Python.\n\n|License| |Test workflow| |Coverage| |PyPI|\n\nWinRM allows you to perform various management tasks remotely. These\ninclude, but are not limited to: running batch scripts, powershell\nscripts, and fetching WMI variables.\n\nUsed by `Ansible <https://www.ansible.com/>`__ for Windows support.\n\nFor more information on WinRM, please visit `Microsoft\u2019s WinRM\nsite <http://msdn.microsoft.com/en-us/library/aa384426.aspx>`__.\n\nRequirements\n------------\n\n-  Linux, Mac OS X or Windows\n-  CPython 2.6-2.7, 3.3-3.5 or PyPy2\n-  `requests-kerberos <http://pypi.python.org/pypi/requests-kerberos>`__\n   and\n   `requests-credssp <https://github.com/jborean93/requests-credssp>`__\n   is optional\n\nInstallation\n------------\n\nTo install pywinrm with support for basic, certificate, and NTLM auth, simply\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: bash\n\n   $ pip install pywinrm\n\nTo use Kerberos authentication you need these optional dependencies\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: bash\n\n   # for Debian/Ubuntu/etc:\n   $ sudo apt-get install gcc python-dev libkrb5-dev\n   $ pip install pywinrm[kerberos]\n\n   # for RHEL/CentOS/etc:\n   $ sudo yum install gcc python-devel krb5-devel krb5-workstation python-devel\n   $ pip install pywinrm[kerberos]\n\nTo use CredSSP authentication you need these optional dependencies\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: bash\n\n   # for Debian/Ubuntu/etc:\n   $ sudo apt-get install gcc python-dev libssl-dev\n   $ pip install pywinrm[credssp]\n\n   # for RHEL/CentOS/etc:\n   $ sudo yum install gcc python-devel openssl-devel\n   $ pip install pywinrm[credssp]\n\nExample Usage\n-------------\n\nRun a process on a remote host\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n   import winrm\n\n   s = winrm.Session('windows-host.example.com', auth=('john.smith', 'secret'))\n   r = s.run_cmd('ipconfig', ['/all'])\n   >>> r.status_code\n   0\n   >>> r.std_out\n   Windows IP Configuration\n\n      Host Name . . . . . . . . . . . . : WINDOWS-HOST\n      Primary Dns Suffix  . . . . . . . :\n      Node Type . . . . . . . . . . . . : Hybrid\n      IP Routing Enabled. . . . . . . . : No\n      WINS Proxy Enabled. . . . . . . . : No\n   ...\n   >>> r.std_err\n\nNOTE: pywinrm will try and guess the correct endpoint url from the\nfollowing formats:\n\n-  windows-host -> http://windows-host:5985/wsman\n-  windows-host:1111 -> http://windows-host:1111/wsman\n-  http://windows-host -> http://windows-host:5985/wsman\n-  http://windows-host:1111 -> http://windows-host:1111/wsman\n-  http://windows-host:1111/wsman -> http://windows-host:1111/wsman\n\nRun Powershell script on remote host\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n   import winrm\n\n   ps_script = \"\"\"$strComputer = $Host\n   Clear\n   $RAM = WmiObject Win32_ComputerSystem\n   $MB = 1048576\n\n   \"Installed Memory: \" + [int]($RAM.TotalPhysicalMemory /$MB) + \" MB\" \"\"\"\n\n   s = winrm.Session('windows-host.example.com', auth=('john.smith', 'secret'))\n   r = s.run_ps(ps_script)\n   >>> r.status_code\n   0\n   >>> r.std_out\n   Installed Memory: 3840 MB\n\n   >>> r.std_err\n\nPowershell scripts will be base64 UTF16 little-endian encoded prior to\nsending to the Windows host. Error messages are converted from the\nPowershell CLIXML format to a human readable format as a convenience.\n\nRun process with low-level API with domain user, disabling HTTPS cert validation\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n   from winrm.protocol import Protocol\n\n   p = Protocol(\n       endpoint='https://windows-host:5986/wsman',\n       transport='ntlm',\n       username=r'somedomain\\someuser',\n       password='secret',\n       server_cert_validation='ignore')\n   shell_id = p.open_shell()\n   command_id = p.run_command(shell_id, 'ipconfig', ['/all'])\n   std_out, std_err, status_code = p.get_command_output(shell_id, command_id)\n   p.cleanup_command(shell_id, command_id)\n   p.close_shell(shell_id)\n\nValid transport options\n~~~~~~~~~~~~~~~~~~~~~~~\n\npywinrm supports various transport methods in order to authenticate with\nthe WinRM server. The options that are supported in the ``transport``\nparameter are; \\* ``basic``: Basic auth only works for local Windows\naccounts not domain accounts. Credentials are base64 encoded when\nsending to the server. \\* ``plaintext``: Same as basic auth. \\*\n``certificate``: Authentication is done through a certificate that is\nmapped to a local Windows account on the server. \\* ``ssl``: When used\nin conjunction with ``cert_pem`` and ``cert_key_pem`` it will use a\ncertificate as above. If not will revert to basic auth over HTTPS. \\*\n``kerberos``: Will use Kerberos authentication for domain accounts which\nonly works when the client is in the same domain as the server and the\nrequired dependencies are installed. Currently a Kerberos ticket needs\nto be initialized outside of pywinrm using the ``kinit`` command. \\*\n``ntlm``: Will use NTLM authentication for both domain and local\naccounts. \\* ``credssp``: Will use CredSSP authentication for both\ndomain and local accounts. Allows double hop authentication. This only\nworks over a HTTPS endpoint and not HTTP.\n\nEncryption\n~~~~~~~~~~\n\nBy default, WinRM will not accept unencrypted communication with a\nclient. There are two ways to enable encrypted communication with\npywinrm:\n\n1. Use an HTTPS endpoint instead of HTTP (Recommended)\n2. Use NTLM, Kerberos, or CredSSP as the transport auth\n\nUsing an HTTPS endpoint is recommended, as it will encrypt all the data\nsent to the server (including all headers), works securely with all auth\ntypes, and can properly verify remote host identity (when used with\ncertificates signed by a verifiable certificate authority). You can use\n`this\nscript <https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1>`__\nto easily set up a HTTPS endpoint on WinRM with a self-signed\ncertificate, but the use of a verifiable certificate authority is\nrecommended in production environments.\n\nThe second option is to use NTLM, Kerberos, or CredSSP, and set the\n``message_encryption`` arg to protocol to ``auto`` (the default value)\nor ``always``. This will use the authentication GSS-API Wrap and Unwrap\nmethods to encrypt the message contents sent to the server. This form of\nencryption is independent of the transport layer, and the strength of\nthe encryption used varies with the underlying authentication type\nselected (NTLM generally being the weakest and CredSSP the strongest).\n\nTo configure message encryption you can use the ``message_encryption``\nargument when initialising protocol. This option has 3 values that can\nbe set as shown below.\n\n-  ``auto``: Default, Will only use message encryption if it is\n   available for the auth method and HTTPS isn\u2019t used.\n-  ``never``: Will never use message encryption even when not over\n   HTTPS.\n-  ``always``: Will always use message encryption even when running over\n   HTTPS (fails if encryption support is unavailable on the selected\n   auth method).\n\nIf you set the value to ``always`` and the transport opt doesn\u2019t support\nmessage encryption (e.g., ``basic`` auth or an old version of\n``pykerberos`` without message encryption support is installed), pywinrm\nwill throw an exception.\n\nIf you do not use an HTTPS endpoint or message encryption, a\ndefault-configured WinRM server will automatically reject requests from\npywinrm. Server settings can be modified allow unencrypted messages and\ncredentials, but this is highly insecure and should only be used for\ndiagnostic purposes. To allow unencrypted communications, run the\nfollowing on the WinRM server (cmd and powershell versions provided):\n\n::\n\n   # from cmd\n   winrm set winrm/config/service @{AllowUnencrypted=\"true\"}\n\n   # or from powershell\n   Set-Item -Path \"WSMan:\\localhost\\Service\\AllowUnencrypted\" -Value $true\n\nAgain, this should *not* be used in production environments, as your\ncredentials and WinRM messages can be trivially recovered.\n\nEnabling WinRM on remote host\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nEnable WinRM over HTTP and HTTPS with self-signed certificate (includes\nfirewall rules):\n\n::\n\n   # from powershell:\n   Invoke-Expression ((New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1'))\n\nEnable WinRM over HTTP for test usage (includes firewall rules):\n\n::\n\n   winrm quickconfig\n\nEnable WinRM basic authentication. For domain users, it is necessary to\nuse NTLM, Kerberos, or CredSSP authentication (Kerberos and NTLM\nauthentication are enabled by default, CredSSP is not).\n\n::\n\n   # from cmd:\n   winrm set winrm/config/service/auth @{Basic=\"true\"}\n\nEnable WinRM CredSSP authentication. This allows double hop support so\nyou can authenticate with a network service when running command son the\nremote host. This command is run in Powershell.\n\n.. code:: powershell\n\n   Enable-WSManCredSSP -Role Server -Force\n   Set-Item -Path \"WSMan:\\localhost\\Service\\Auth\\CredSSP\" -Value $true\n\nContributors (alphabetically)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n-  Alessandro Pilotti\n-  Alexey Diyan\n-  Chris Church\n-  David Cournapeau\n-  Gema Gomez\n-  Jijo Varghese\n-  Jordan Borean\n-  Juan J. Martinez\n-  Lukas Bednar\n-  Manuel Sabban\n-  Matt Clark\n-  Matt Davis\n-  Maxim Kovgan\n-  Nir Cohen\n-  Patrick Dunnigan\n-  Reina Abolofia\n\nWant to help - send a pull request. I will accept good pull requests for\nsure.\n\n.. |License| image:: https://img.shields.io/badge/license-MIT-blue.svg\n   :target: https://github.com/diyan/pywinrm/blob/master/LICENSE\n.. |Test workflow| image:: https://github.com/diyan/pywinrm/workflows/Test%20pywinrm/badge.svg\n   :target: https://github.com/diyan/pywinrm/actions/workflows/ci.yml\n.. |Coverage| image:: https://coveralls.io/repos/diyan/pywinrm/badge.svg\n   :target: https://coveralls.io/r/diyan/pywinrm\n.. |PyPI| image:: https://img.shields.io/pypi/dm/pywinrm.svg\n   :target: https://pypi.python.org/pypi/pywinrm\n\n\n",
    "bugtrack_url": null,
    "license": "MIT license",
    "summary": "Python library for Windows Remote Management",
    "version": "0.4.3",
    "project_urls": {
        "Homepage": "http://github.com/diyan/pywinrm/"
    },
    "split_keywords": [
        "winrm",
        "ws-man",
        "devops",
        "ws-management"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5c1a74bdbb7a3f8a6c1d2254c39c53c2d388529a314366130147d180522c59a3",
                "md5": "bcb05a6b0270dc034d6e3da6a86d6d6e",
                "sha256": "c476c1e20dd0875da6fe4684c4d8e242dd537025907c2f11e1990c5aee5c9526"
            },
            "downloads": -1,
            "filename": "pywinrm-0.4.3-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bcb05a6b0270dc034d6e3da6a86d6d6e",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": null,
            "size": 44100,
            "upload_time": "2022-04-14T04:22:33",
            "upload_time_iso_8601": "2022-04-14T04:22:33.560414Z",
            "url": "https://files.pythonhosted.org/packages/5c/1a/74bdbb7a3f8a6c1d2254c39c53c2d388529a314366130147d180522c59a3/pywinrm-0.4.3-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7cba78329e124138f8edf40a41b4252baf20cafdbea92ea45d50ec712124e99b",
                "md5": "0578e451b41ecb4df137646b328fa0f1",
                "sha256": "995674bf5ac64b2562c9c56540473109e530d36bde10c262d5a5296121ad5565"
            },
            "downloads": -1,
            "filename": "pywinrm-0.4.3.tar.gz",
            "has_sig": false,
            "md5_digest": "0578e451b41ecb4df137646b328fa0f1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 38356,
            "upload_time": "2022-04-14T04:22:36",
            "upload_time_iso_8601": "2022-04-14T04:22:36.424773Z",
            "url": "https://files.pythonhosted.org/packages/7c/ba/78329e124138f8edf40a41b4252baf20cafdbea92ea45d50ec712124e99b/pywinrm-0.4.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-04-14 04:22:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "diyan",
    "github_project": "pywinrm",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "pywinrm"
}
        
Elapsed time: 0.15139s