winrmcp
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.
Metadata
Release files for winrmcp 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| winrmcp-0.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Release files / winrmcp-0.0.3-py3-none-any.whl
| Download URL | winrmcp-0.0.3-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2c87448fcf8d816b3c05364c20f3278700fe5ff6e68d6d7a3006ce38b5dc8b8e
|
|
BLAKE2b-256 checksum How to use checksums |
c543a75678986d7da2b81eef34e84b69e4b7f3deb7c3e1b315e01b5a26403f7f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.0
|