Skip to main content

The cross-platform tool to execute PowerShell and command line remotely and locally.

Project description

PyPI version Build Status Coverage Status

PyWinOS

The cross-platform tool to work with remote and local Windows OS.

PyWinOS uses the Windows Remote Manager (WinRM) service. It can establish connection to a remote server based on Windows OS and execute commands:

  • PowerShell
  • Command line
  • WMI.

It can execute commands locally using subprocess and command-line too.

For more information on WinRM, please visit Microsoft’s WinRM site It based on pywinrm.

PyWinOS returns object with exit code, stdout and sdtderr response.

Installation

For most users, the recommended method to install is via pip:

pip install pywinos

or from source:

python setup.py install

Import

from pywinos import WinOSClient

Usage (remote server)

Run PowerShell:

from pywinos import WinOSClient

tool = WinOSClient(host='172.16.0.126', username='administrator', password='rds123RDS', logger_enabled=True)
response = tool.run_ps(command='$PSVersionTable.PSVersion')

print(response)  
# ResponseParser(response=(0, 'Major  Minor  Build  Revision\r\n-----  -----  -----  --------\r\n5      1      17763  592', None, '$PSVersionTable.PSVersion'))
print(response.exited)  # 0
print(response.stdout)
# Major  Minor  Build  Revision
# -----  -----  -----  --------
# 5      1      17763  592

# stderr in PowerShell contains some text by default    
print(response.stderr)  # <Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"><Ob...
print(response.ok)  # True

Run command line:

from pywinos import WinOSClient

tool = WinOSClient('172.16.0.126', 'administrator', 'P@ssw0rd', logger_enabled=False)
response = tool.run_cmd(command='whoami')

print(response)  # <Response code 0, out "b'\r\nMajor  Minor  Build'", err "b''">
print(response.exited)  # 0
print(response.stdout)  # test-vm1\administrator
print(response.stderr)  # None
print(response.ok)  # True

Usage (local server)

Run command line:

from pywinos import WinOSClient

tool = WinOSClient(logger_enabled=False)
# tool = WinOSClient(host='', logger_enabled=False)
# tool = WinOSClient(host='localhost', logger_enabled=False)
# tool = WinOSClient(host='127.0.0.1', logger_enabled=False)
response = tool.run_cmd(command='whoami')

print(response)  # (0, b'mypc\\bobby\r\n', b'')
print(response.exited)  # 0
print(response.stdout)  # my_pc\bobby
print(response.stderr)  # None
print(response.ok)  # True

Main low-level methods to work with local/remote Windows OS:

  • run_cmd
  • run_cmd_local
  • run_ps
  • run_ps_local

High-level methods:

  • list_all_methods()
  • is_host_available()
  • remove() / remove_local()
  • get_os_info() / get_os_info_local
  • get_os_name_local / get_os_name_local()
  • get_current_os_name_local()
  • is_windows
  • ping()
  • exists() / exists_local()
  • get_content() / get_content_local()
  • get_json() / get_json_local() # sd
  • get_local_hostname_ip()
  • get_dirs_files() / get_dirs_files_local()
  • get_file_version() / get_file_version_local()
  • get_file_size() / get_file_size_local()
  • replace_text()
  • get_hash() / get_available_hash_algorithm() / get_hash_local()
  • get_xml_dom() / get_xml_tree_local()
  • clean_directory() / clean_directory_local()
  • copy() / copy_local()
  • create_directory() / create_directory_local()
  • unzip() / unzip_local()
  • get_service() / get_service_local()
  • get_service_status() / get_service_status_local()
  • start_service() / start_service_local()
  • restart_service() / restart_service_local()
  • stop_service() / stop_service_local()
  • get_process() / get_process_local()
  • kill_process() / kill_process_local()
  • wait_service_start() / wait_service_start_local()
  • get_service_file_version() / get_service_file_version_local()
  • is_service_running() / is_service_running_local()
  • is_process_running / is_process_running_local()
  • get_network_adapter_state() / get_network_adapter_state_local()
  • disable_network_adapter() / disable_network_adapter_local()
  • enable_network_adapter() / enable_network_adapter_local()
  • debug_info()
  • get_process_working_set_size() / get_process_working_set_size_local()
  • timestamp_local()
  • set_date_adjustment()
  • is_disk_offline() / is_disk_offline_local()
  • set_disk_state() / set_disk_state_local()
  • attach_share()

Changelog

1.2.1 (17.04.2022)
  • updated to manage logger state
1.2.0 (6.04.2022)
  • External logger used
  • Logger moved into class in order to have access to it after inheritance

Project details


Download files

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

Source Distribution

pywinos-1.2.1.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pywinos-1.2.1-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file pywinos-1.2.1.tar.gz.

File metadata

  • Download URL: pywinos-1.2.1.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.0

File hashes

Hashes for pywinos-1.2.1.tar.gz
Algorithm Hash digest
SHA256 a0ac9b5097c31199fb0ac39ceede09e36c0e1e7f6c7bc7b3b330fa8e4a21b9a3
MD5 f58bebbf40646f507dc97aadbef41e55
BLAKE2b-256 fc63958c2d2dd8cb0e80fc2f02d701619f7561222b2d1d83c0779a9164e374f1

See more details on using hashes here.

File details

Details for the file pywinos-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: pywinos-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.0

File hashes

Hashes for pywinos-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ff7699b15087618080b8ed4385e547238cc228a01fbdaa169f2ffbadd0bb78ca
MD5 aff39eb0920a58978b1d0581ccd7bb56
BLAKE2b-256 dd83e78261264beeb81ed9696730135c02ea7891427f67d98b3d62d539ccfa34

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page