Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法


Posted in Python onJuly 21, 2020

WinRM 即 Windows Remote Management,是微软对于WS-Management 远程管理协议的实现。

一、受控端配置 WinRM 服务

方式一:cmd 命令行(管理员)

  • 启用 WinRM 远程服务: winrm quickconfig
  • 查看 WinRM 服务监听状态: winrm e winrm/config/listener
C:\Windows\system32>winrm e winrm/config/listener
Listener [Source="GPO"]
 Address = *
 Transport = HTTP
 Port = 5985
 Hostname
 Enabled = true
 URLPrefix = wsman
 CertificateThumbprint
 ListeningOn = 127.0.0.1, 169.254.52.7, xx.xx.xx.xx, ::1, fe80::3989:dd91:e6b3:6f41%15, fe80::fd01:a9fd:c410:3407%12

允许使用 Basic 认证方式: winrm set winrm/config/service/auth @{Basic="true"}

winrm set winrm/config/service/auth @{Basic="true"}
Auth
 Basic = true [Source="GPO"]
 Kerberos = true
 Negotiate = true
 Certificate = false
 CredSSP = false
 CbtHardeningLevel = Relaxed

允许 WinRM 使用非加密的连接: winrm set winrm/config/service @{AllowUnencrypted="true"}

方式二:bat 脚本

call winrm quickconfig -quiet
call winrm set winrm/config/service/auth @{Basic="true"}
call winrm set winrm/config/service @{AllowUnencrypted="true"}

方式三:组策略

定位到 计算机配置 -> 策略 -> 管理模板 -> Windows 组件 -> Windows 远程管理(WinRM) -> WinRM 服务

启用 允许通过 WinRM 进行远程服务器管理允许基本身份验证允许未加密通信

Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法

建议同时启用服务与防火墙策略:

计算机配置-> 策略 -> Windows 设置 -> 安全设置 -> 系统服务 -> Windows Remote Management (WS-Management) ,启动模式为自动。

计算机配置-> 策略 -> Windows 设置 -> 安全设置 -> 高级安全 Windows 防火墙 -> 高级安全 Windows 防火墙 - XXX -> 入站规则 ,开放 5985(HTTP)和 5986(HTTPS)端口。

二、Python 使用 pywinrm 连接 WinRM 服务

安装 pywinrm 库: pip install pywinrm

执行 cmd 命令:

>>> import winrm
>>> session = winrm.Session('xx.xx.xx.xx', auth=('Administrator', 'admin_password'))
>>> cmd = session.run_cmd('ipconfig')
>>> cmd.std_out
b'\r\nWindows IP Configuration\r\n\r\n\r\nEthernet adapter \xd2\xd4\xcc\xab\xcd\xf8:\r\n\r\n Connection-specific DNS Suffix . : example.com\r\n Link-local IPv6 Address . . . . . : fe80::3989:dd91:e6b3:6f41%15\r\n IPv4 Address. . . . . . . . . . . : xx.xx.xx.xx\r\n Subnet Mask . . . . . . . . . . . : 255.255.255.0\r\n Default Gateway . . . . . . . . . : 172.20.23.254\r\n\r\nEthernet adapter \xd2\xd4\xcc\xab\xcd\xf8 2:\r\n\r\n Media State . . . . . . . . . . . : Media disconnected\r\n Connection-specific DNS Suffix . : \r\n'

执行 Powershell 命令:

>>> import winrm
>>> session = winrm.Session('xx.xx.xx.xx', auth=('Administrator', 'admin_password'))
>>> ps = session.run_ps('Get-Disk')
>>> ps.std_out
b'\r\nNumber Friendly Name Serial Number     HealthStatus   OperationalStatus  Total Size Partition \r\n                            Style  \r\n------ ------------- -------------     ------------   -----------------  ---------- ----------\r\n0  ST500DM002...    Z3TFS1S3    Healthy    Online     465.76 GB MBR  \r\n\r\n\r\n'

到此这篇关于Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法的文章就介绍到这了,更多相关Python Tricks远程控制 Windows 主机内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python学习之Anaconda的使用与配置方法
Jan 04 Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 Python
Python爬虫实现简单的爬取有道翻译功能示例
Jul 13 Python
详解python分布式进程
Oct 08 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
Apr 11 Python
python3下pygame如何实现显示中文
Jan 11 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
Python dict的常用方法示例代码
Jun 23 Python
Python3.9新特性详解
Oct 10 Python
python绘图模块之利用turtle画图
Feb 12 Python
Python 绘制多因子柱状图
May 11 Python
Python json格式化打印实现过程解析
Jul 21 #Python
基于python实现删除指定文件类型
Jul 21 #Python
python打开音乐文件的实例方法
Jul 21 #Python
Python读取yaml文件的详细教程
Jul 21 #Python
Python中bisect的用法及示例详解
Jul 20 #Python
python为什么要安装到c盘
Jul 20 #Python
python如何代码集体右移
Jul 20 #Python
You might like
php adodb介绍
2009/03/19 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
基于PHP文件操作的详解
2013/06/05 PHP
Javascript注入技巧
2007/06/22 Javascript
js对象数组按属性快速排序
2011/01/31 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
jQuery获取file控件中图片的宽高与大小
2016/08/04 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
Javascript 闭包详解及实例代码
2016/11/30 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
JS实现静态页面搜索并高亮显示功能完整示例
2017/09/19 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
[01:00:06]加油DOTA_EP01_网络版
2014/08/09 DOTA
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
Python实现二维数组输出为图片
2018/04/03 Python
Atom的python插件和常用插件说明
2018/07/08 Python
python flask实现分页的示例代码
2018/08/02 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
关于PyTorch 自动求导机制详解
2019/08/18 Python
Python+Redis实现布隆过滤器
2019/12/08 Python
pycharm快捷键汇总
2020/02/14 Python
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
销售工作岗位职责
2013/12/24 职场文书
学生爱国演讲稿
2014/01/14 职场文书
市政施工员自我鉴定
2014/01/15 职场文书
总经理岗位职责范本
2014/02/02 职场文书
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
董存瑞观后感
2015/06/11 职场文书
未婚证明格式
2015/06/15 职场文书