简介

在很多企业会使用闲置的 Windows 机器作为临时服务器,有时候我们想远程调用里面的程序或查看日志文件。

Windows 内置的服务「 winrm 」可以满足我们的需求。
它是一种基于标准简单对象访问协议( SOAP )的防火墙友好协议,允许来自不同供应商的硬件和操作系统进行互操作。

被控端 windows——这里以 Windows 10 系统机器为例

具体操作步骤如下:

1.启动 winrm 服务

以管理员权限打开 CMD 命令窗口,输入下面命令启动 winrm 服务

#启动winrm服务
winrm quickconfig -q

如果运行报错,提示网络类型设置异常

可以快捷键 win+i 进入到网络和 Internet,更改网络配置文件,由公用切换为专用。

2.检查 winrm 服务监听状态

继续在命令行输入下面命令,查看 winrm 服务的状态
PS:注意这里的端口号 Port 值后面连接会用到

#查看winrm服务的状态
winrm e winrm/config/listener#结果
ListenerAddress = *Transport = HTTPPort = 5985HostnameEnabled = trueURLPrefix = wsmanCertificateThumbprintListeningOn = **
3.查看 winrm 配置信息(可选)

通过以下命令可以查看 winrm 全部配置信息、client 客户端配置信息、service 服务端配置信息

# 全部
winrm get winrm/config# Client
winrm get winrm/config/client# Service
winrm get winrm/config/service
4.配置 winrm client
# 配置winrm client
winrm set winrm/config/client @{AllowUnencrypted="true"}winrm set winrm/config/client @{TrustedHosts="*"}winrm set winrm/config/client/auth @{Basic="true"}
5.配置 winrm service

在配置完 winrm service 和 winrm client 后,我们通过通过步骤 3 查看配置文件,确保配置文件已生效

# 配置winrm service
winrm set winrm/config/service @{AllowUnencrypted="true"}winrm set winrm/config/service/auth @{Basic="true"}

控制端

在控制端,比如:Mac OSX、Linux,我们只需要安装「 pywinrm 」依赖包即可

# 控制端安装依赖包
pip3 install pywinrm

实战一下

做为以上准备后,我们就可以编写代码对 Windows 进行控制了
首先,我们需要 ip 地址、端口号、用户名、密码连接 Windows 被控端

# 连接windows
import winrm...
# ip地址:端口号
# winrm server端口号
# auth:用户名和密码
self.session = winrm.Session("192.168.**.**:5985", auth=('username', 'password'), transport='ntlm')
...

这样,我们就可以通过对象的「 run_cmd 」和「 run_ps 」函数模拟 CMD、PowerShell 输入命令了

这里以查看 Windows 某个硬盘目录下的日志文件为例

# 连接windows
import winrm
import codecs
...def exec_cmd(self, cmd):"""执行cmd命令,获取返回值:param cmd::return:"""# CMDresult = self.session.run_cmd(cmd)# powerShell# result = self.session.run_ps(cmd)# 返回码# code为0代表调用成功code = result.status_code# 根据返回码,获取响应内容(bytes)content = result.std_out if code == 0 else result.std_err# 转为字符串(尝试通过UTF8、GBK进行解码)# result = content.decode("utf8")# result = codecs.decode(content,'UTF-8')try:result = content.decode("utf8")except:result = content.decode("GBK")print(result)return result
...
# 打开文件D:/py/log/trade.log
# windows使用type命令,查看文件内容
result = self.exec_cmd('D: &cd py\\log &type trade.log')# 查看结果
print(result)

总结

除了可以远程查看 Windows 的文件外,还可以执行 bat 批处理文件,又或者是模拟命令行输入,根据返回值进行其他骚操作
我已经将文中全部代码上传CSDN,文末获取完整源码

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(文末获取!)

温馨提示:篇幅有限,已打包文件夹,获取方式在“文末”!!!

二、Python必备开发工具

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

四、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、Python练习题

检查学习结果。

七、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

用 Python 远程控制 Windows 服务器,简直太方便了~相关推荐

  1. 骚操作!用 Python 远程控制 Windows 服务器,太好用了!

    在很多企业会使用闲置的 Windows 机器作为临时服务器,有时候我们想远程调用里面的程序或查看日志文件 Windows 内置的服务「 winrm 」可以满足我们的需求 它是一种基于标准简单对象访问协 ...

  2. 用 Python 远程控制 Windows 服务器,太好用了!

    在很多企业会使用闲置的 Windows 机器作为临时服务器,有时候我们想远程调用里面的程序或查看日志文件 Windows 内置的服务「 winrm 」可以满足我们的需求 它是一种基于标准简单对象访问协 ...

  3. python向windows服务器上传文件(夹)

    python向windows服务器上传文件(夹) 本人需求分析: 需要从本地将某个指定目录下的文件夹上传至服务器的某个指定目录下. 这次思路是采用python的 paramiko 库.paramiko ...

  4. Python 技术篇-windows服务器flask服务的启用与使用实例演示

    下面展示了 flask 服务启用后对我给的特定请求做的一些处理. 如果想实现连接 windows 服务器,利用 requests 请求进行文件传输,可以看我的这篇文章: Python 技术篇-用 fl ...

  5. 用Python自动化管理邮件简直太方便了,三个实用小例子带你体会!

    ‍‍ 大家好,我是早起. 在之前的文章中我们已经了解如何对自己的邮箱做一些代码操作前的基础配置,以及通过 Python 代码收发.读取邮件.本文将简单复习之前的部分重点内容,并通过 3 个小案例进一步 ...

  6. python局域网大文件_[源码]Python简易http服务器(内网渗透大文件传输含下载命令)...

    Python简易http服务器源码 import SimpleHTTPServer import SocketServer import sys PORT = 80 if len(sys.argv) ...

  7. 学会python之后-【一点资讯】学会Python后,人生简直开挂了!

    你有没有因为"搜一下"烦恼过?虽然说现在搜索引擎很多,但百度早就失去"百度一下你就知道"万能时代了,经常网上一搜,全是没用的鸡肋信息,很多软件也没啥实际用处.前 ...

  8. python3通过winrm远程执行windows服务器dos命令

    Background 在实际项目中,一般使用Linux作为生产服务器,但有时就会出现一些特殊情况,你只能使用windows作为作为服务器,比如说一个用fortran编写的仿真程序,编译环境用的inte ...

  9. 【Python】整理了上千个Python类库,简直太酷啦!

    Python 生态,向来以各种类库齐全而闻名,这也是这门语言如此受欢迎的重要原因.今天就给大家分享一下这几天的战果,宵衣旰食,不眠不休的整理了近千个 Python 库,收藏的同时,给个在看不为过吧! ...

最新文章

  1. 32位java 最大内存_【答疑系列】为什么32位系统只支持最大4G内存?
  2. Oracle 12c In-Memory Option应用解析
  3. 解决服务器上安装不了centos7.4的问题
  4. 深入理解r2dbc-mysql
  5. taro 小程序转h5之后报错_原生小程序转H5
  6. jvisualvm工具
  7. 东北大学材料成型机械设备课后作业答案汇总
  8. 声艺fx16调音台怎么样_声艺FX16II 声艺(Soundcraft) FX16ii 调音台
  9. VBA调用sqlserver带参数的存储过程
  10. windows11截屏快捷键失效
  11. 辛星浅析linux中的accton命令和lastcomm命令
  12. 《linux多线程服务端编程》---- C++基础前奏
  13. c语言局部变量stu,C语言学习笔记
  14. 用js将二维数组转为json格式字符串
  15. 内网建站 NAT穿透 局域网穿透
  16. 上帝掷骰子吗txt_学物理,男女生差异大吗?该怎么学?杭州三位重高老师这么说...
  17. 两车相撞的力怎么计算_两车正面碰撞事故车辆行驶速度计算方法
  18. 软件工程师核心竞争力有那些
  19. PDF解除密码怎么操作?这个方法可以帮到你
  20. ios 三种随机数生成

热门文章

  1. 微软word两排字左右对齐的方法
  2. 招银网络科技2018秋招试题
  3. 杰理之一拖八烧录器烧写外挂flash说明【篇】
  4. 横向合计代码 锐浪报表_锐浪报表/Grid++Report/V5.8/6.0非常好注册正式版
  5. 智能车|直流电机、编码器与驱动器---编码器
  6. 一文学会虚拟机安装操作系统
  7. 用DAEMON TOOLS打开rational ross 的bin文件并安装过程梳理
  8. python正则表达式删除指定符号及其中的内容
  9. 关于镜像文件和虚拟光驱
  10. 计算机材料管理系统功能有材料账表管理,第十章现场材料的计算机管理ppt课件...