Skip to main content

Package to execute commads on remote Windows, do file copy to the remote machine

Project description

winrmcp

Build Status PyPI version

A Python library to execute remote commands on Windows (cmd.exe and PowerShell), and to transfer files.

This is a thin wrapper on top of excellent pywinrm.

For file transfer, we use the same method as in Go package winrmcp.

Installation

pip install winrmcp

Quick start

from winrmcp import Client

client = Client('my-windows-machine.com', auth=('CleverUser', 'cleverPassword'))

with client.shell() as shell:
    out, _ = shell.check_cmd(['ipconfig', '/all'])
    print(out)

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

    "Installed Memory: " + [int]($RAM.TotalPhysicalMemory /$MB) + " MB" """
    out, _ = shell.check_ps(script)
    print(out)

client.copy('/home/mike/temp/build.bat', '%TEMP%\\build.bat')
with client.shell() as shell:
    shell.check_call('cmd.exe', '/k', '%TEMP%\\build.bat)

API

Client

Client extends winrm.Session to provide Client.shell context-manager that opens remote shell.

See documentaiotn of pywinrm for the expected parameters.

Client.shell() - creates a new context-managed shell, returns intsance of Shell.

Client.copy(local_file, remote_file) - copies the content of local file local_file to the remote machine as remote_file. Note that local_file can be a file-like object, having read method returning bytes.

Shell

Shell represent the shell running on the remote Windows machine. You can get an instance of this class by calling shell() on a Client instance.

Shell.cmd(command, *args) - runs a command in remote CMD.EXE shell. Returns winrm.Response instance, see docs there.

Shell.ps(script) - runs a script in remote PowerShell shell. Returns winrm.Response instance, see docs there.

Shell.check_cmd(command, *args) - runs a command in remote CMD.EXE shell. Returns a tuple of stdout and stderr strings. If remote command return non-zero code, raises ShellCommandError exception.

Shell.check_ps(script) - runs a script in remote PowerShell shell. Returns a tuple of stdout and stderr strings. If remote command return non-zero code, raises ShellCommandError exception.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for winrmcp, version 0.0.3
Filename, size File type Python version Upload date Hashes
Filename, size winrmcp-0.0.3-py3-none-any.whl (7.5 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page