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网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
Jun 09 Python
Python自动调用IE打开某个网站的方法
Jun 03 Python
python 全文检索引擎详解
Apr 25 Python
利用python写个下载teahour音频的小脚本
May 08 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 Python
由面试题加深对Django的认识理解
Jul 19 Python
python中的函数递归和迭代原理解析
Nov 14 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
python在一个范围内取随机数的简单实例
Aug 16 Python
django使用graphql的实例
Sep 02 Python
Python基础之字符串格式化详解
Apr 21 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中使用正则表达式提取中文实现笔记
2015/01/20 PHP
Yii2创建表单(ActiveForm)方法详解
2016/07/23 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
2009/09/19 Javascript
formValidator3.3的ajaxValidator一些异常分析
2011/07/12 Javascript
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
JavaScript数组的定义及数字操作技巧
2016/06/06 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
手把手教你如何编译打包video.js
2020/12/09 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
Python实现的二维码生成小软件
2014/07/11 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
药剂专业学生求职信范文
2013/12/28 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
施工安全责任书
2014/04/14 职场文书
祖国在我心中演讲稿300字
2014/05/04 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
安全生产工作汇报
2014/10/28 职场文书
2016年教师节感言
2015/12/09 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android
如何使用python包中的sched事件调度器
2022/04/30 Python