Python学习之九_winrm执行远程机器的cmd命令

python,学习,winrm,执行,远程,机器,cmd,命令 · 浏览次数 : 130

小编点评

```python import winrmdef import psutil import pip # 获取远程服务器的 IP 地址 hostname = '10.110.xxx.xxx' # 获取远程服务器的用户和密码 username = 'administrator' password = 'xxxx' # 连接到远程服务器 wintest = winrm.Session('http://' + hostname + ':5985/wsman', auth=(username, password)) # 获取服务器内存使用情况 free = str(round(psutil.virtual_memory().free / (1024.0 * 1024.0 * 1024.0), 2))+'GB' total = str(round(psutil.virtual_memory().total / (1024.0 * 1024.0 * 1024.0), 2))+'GB' memory_use_percent = str(psutil.virtual_memory().percent)+' %' # 打印内存使用情况 print (str(free)) # 执行 Python 代码 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simplepython.exe -m pip install --upgrade pippip install psutil # 执行命令 zhaoobsh = win_cmd('python c:/winenv.py') print(zhaoobsh) ``` **注意:** * 此脚本需要在远程服务器上安装 Python 和 psutil 库。 * 您需要在本地安装 `winrmdef` 和 `psutil` 库。 * 将 `c:/winenv.py` 替换为指向 Python 脚本的本地路径。

正文

Python学习之九_winrm执行远程机器的cmd命令


winrm

# 注意如下命令需要按照顺序执行.
# 打开powershell的管理员模式进行如下的操作. 
set-executionpolicy remotesigned
winrm quickconfig
winrm set winrm/config/service/auth '@{Basic="true"}'
winrm set winrm/config/service '@{AllowUnencrypted="true"}'

Python的使用方式为

import winrm
def win_cmd(cmd: str):
    """远程调用 windows 执行命令"""
    hostname = '10.110.xxx.xxx'
    username = 'administrator'
    password = 'xxxx'
    wintest = winrm.Session('http://' + hostname + ':5985/wsman', auth=(username, password))
    res = wintest.run_cmd(cmd)
    return str(res.std_out.decode())

zhaobsh = win_cmd('ipconfig')
print(zhaobsh)

对应的调用python的程序就简单了-被调用方

在Windows机器上面安装一下python
然后安装一下 psutil获取内存信息
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
python.exe -m pip install --upgrade pip
pip install psutil

编写简单脚本为:
import psutil
def getfree() :
    free = str(round(psutil.virtual_memory().free / (1024.0 * 1024.0 * 1024.0), 2))+'GB'
    total = str(round(psutil.virtual_memory().total / (1024.0 * 1024.0 * 1024.0), 2))+'GB'
    memory_use_percent = str(psutil.virtual_memory().percent)+' %'
    return free

free = getfree()
print (str(free))

将文件放到 c:\winenv.py中去

远程调用方


import winrm
def win_cmd(cmd: str):
    """远程调用 windows 执行命令"""
    hostname = '10.110.xxx.xxx'
    username = 'administrator'
    password = 'xxxxx'
    wintest = winrm.Session('http://' + hostname + ':5985/wsman', auth=(username, password))
    res = wintest.run_cmd(cmd)
    return str(res.std_out.decode())

zhaobsh = win_cmd('python c:/winenv.py')
print(zhaobsh)

验证执行结果

C:\Users\zhaobsh\AppData\Local\Programs\Python\Python39\python.exe F:\00GSCloud2211\updatecompare\win_winrmpy.py 
12.67GB

cmd 命令的结果为:
C:\Users\zhaobsh\AppData\Local\Programs\Python\Python39\python.exe F:\00GSCloud2211\updatecompare\win_winrm.py 

Windows IP Configuration


Ethernet adapter Ethernet0 2:

   Connection-specific DNS Suffix  . : 
   Link-local IPv6 Address . . . . . : fe80::6c47:603c:580d:8f%13

与Python学习之九_winrm执行远程机器的cmd命令相似的内容:

Python学习之九_winrm执行远程机器的cmd命令

Python学习之九_winrm执行远程机器的cmd命令 winrm # 注意如下命令需要按照顺序执行. # 打开powershell的管理员模式进行如下的操作. set-executionpolicy remotesigned winrm quickconfig winrm set winrm/c

gRPC入门学习之旅(九)

gRPC是一个高性能、通用的开源远程过程调用(RPC)框架,基于底层HTTP/2协议标准和协议层Protobuf序列化协议开发, gRPC 客户端和服务端可以在多种环境中运行和交互。你可以用Java创建一个 gRPC 服务端,用 Go、Python、C# 来创建客户端。本系统文章详细描述了如何创建一...

Python学习之四_部分battery的学习

Python学习之四_部分battery的学习 CentOS升级pip的方法 yum install python3 之后, 一般centos的版本都很低, 有时候很多module 是无法安装的. 一般可以通过他进行升级: pip3 install -U pip 注意如果无法升级, 可以先这样处理

Python学习之五_字符串处理生成查询SQL

Python学习之五_字符串处理生成查询SQL 前言 昨天想给同事讲解一下获取查询部分表核心列信息的SQL方法 也写好了一个简单文档. 但是感觉不是很优雅. 最近两三天晚上一直在学习Python. 想将昨天的文档处理成一个工具的方式. 将查询SQL展示出来. 然后再由同事手工检查确认. 增加时间范围

Python学习之六_同时访问Oracle和Mysql的方法

Python学习之六_同时访问Oracle和Mysql的方法 背景 jaydebeapi 可以访问大部分数据库. 但是他有一个问题是仅能够访问一种类型的数据库. 如果同事连接两种数据库,那么就会出现问题 会有如下的提示: TypeError: Class com.mysql.cj.jdbc.Driv

Python学习之七_input和print

Python学习之七_input和print 摘要 python3 之后 函数必须带 () 了 因为我开始学习的比较晚, 所以准备Python3开始学起 前面主要是模仿别人的代码进行学习 后续慢慢学习 使用python调用ebpf等内容. 这里简单先总结一下input和print的函数. 作为一个学

Python学习之八_调用Outlook发送邮件以及调用远程windows上面的python

Python学习之八_调用Outlook发送邮件以及调用远程windows上面的python 摘要 之前只有一个需求是发送加密邮件. 之前一直是使用linux进行发送.但是总是无法发送加密邮件. 最近学习python, 发现可以使用 python来调用outlook来发送邮件. 这样就比较简单了.

Python学习之十_paramiko的简单学习

Python学习之十_paramiko的简单学习 简介 pywinrm 是python用于连接访问windows的工具 paramiko 是python用于连接访问linux的工具 ansible等工具很多也是基于类似的组件进行的处理 连接不同的系统进行命令行的操作. paramiko的简介 par

Python学习之十一_Windows获取硬件信息

Python学习之十一_Windows获取硬件信息 简介 网上找了一些方法简单整理了下,可以快速获取部分信息 包含机器名称等. 以及序列号相关 部分学习来源: https://blog.51cto.com/u_15354476/5339864 源码 import psutil import wmi

Python学习之十三_pip的学习

Python学习之十三_pip的学习 pip的含义 pip: pip is the package installer for Python. You can use pip to install packages from the Python Package Index and other in