骚操作!用 Python 远程控制 Windows 服务器,太好用了!
在良多企业会利用闲置的 Windows 机器做为临时办事器,有时候我们想长途挪用里面的法式或查看日记文件
Windows 内置的办事「 winrm」能够满足我们的需求
它是一种基于尺度简单对象拜候协议( SOAP )的防火墙友好协议,允许来自差别供给商的硬件和操做系统停止互操做
官网:
1. 被控端 windows
那里以 Windows 10 系统机器为例
详细操做步调如下:
1-1 启动 winrm 办事
以办理员权限翻开 CMD 号令窗口,输入下面号令启动 winrm 办事
# 启动winrm办事
winrmquickconfig -q
若是运行报错,提醒收集类型设置异常
能够快速键 win+i 进入到收集和 Internet,更改收集设置装备摆设文件,由公用切换为公用
展开全文
1-2 查抄 winrm 办事监听形态
继续在号令行输入下面号令,查看 winrm 办事的形态
PS: 留意那里的端标语 Port 值后面毗连会用到
# 查看winrm办事的形态
winrme winrm/config/listener
# 成果
Listener
Address = *
Transport = HTTP
Port = 5985
Hostname
Enabled = true
URLPrefix = w *** an
CertificateThumbprint
ListeningOn = **
1-3 查看 winrm 设置装备摆设信息(可选)
通过以下号令能够查看 winrm 全数设置装备摆设信息、client 客户端设置装备摆设信息、service 办事端设置装备摆设信息
# 全数
winrm getwinrm/config
# Client
winrm getwinrm/config/client
# Service
winrm getwinrm/config/service
1-4 设置装备摆设 winrm client
# 设置装备摆设winrm client
winrm setwinrm/config/ client@{AllowUnencrypted= "true"}
winrm setwinrm/config/ client@{TrustedHosts= "*"}
winrm setwinrm/config/ client/auth @{Basic= "true"}
1-5 设置装备摆设 winrm service
在设置装备摆设完 winrm service 和 winrm client 后,我们通过通过步调 1-3 查看设置装备摆设文件,确保设置装备摆设文件已生效
# 设置装备摆设winrm service
winrm setwinrm/config/service @{AllowUnencrypted= "true"}
winrm setwinrm/config/service/auth @{Basic= "true"}
2. 控造端
在控造端,好比:Mac OSX、Linux,我们只需要安拆「 pywinrm」依赖包即可
# 控造端安拆依赖包
pip3install pywinrm
3. 实战一下
做为以上筹办后,我们就能够编写代码对 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
importwinrm
importcodecs
defexec_cmd(self, cmd):
施行cmd号令,获取返回值
:param cmd:
:return:
# CMD
result = self.session.run_cmd(cmd)
# powerShell
# result = self.session.run_ps(cmd)
# 返回码
# code为0代表挪用胜利
code = result.status_code
# 按照返回码,获取响应内容(bytes)
content = result.std_out ifcode == 0elseresult.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)
returnresult
# 翻开文件D:/py/log/trade.log
# windows利用type号令,查看文件内容
result = self.exec_cmd( 'D: &cd py\\log &type trade.log')
# 查看成果
print(result)
4. 总结
除了能够长途查看 Windows 的文件外,还能够施行 bat 批处置文件,又或者是模仿号令行输入,按照返回值停止其他骚操做。
你学会了么?
入门: 最全的零根底学Python的问题 | 零根底学了8个月的Python |实战项目 | 学Python就是那条捷径
干货:爬取豆瓣短评,片子《后来的我们》 | 38年NBA更佳球员阐发 |从万寡等待到口碑扑街!唐探3令人绝望 | 笑看新倚天屠龙记 | 灯谜答题王 | 用Python做个海量蜜斯姐素描图 | 碟中谍那么火,我用机器进修做个迷你保举系统片子
兴趣:弹球游戏 | 九宫格 | 标致的花 | 两百行Python《天天酷跑》游戏!
AI:会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍那么火,我用机器进修做个迷你保举系统片子
小东西: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保留为pdf! |再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 造做一款钉钉低价机票提醒器! |60行代码做了一个语音壁纸切换器天天看蜜斯姐! |
年度爆款案牍
1). *** !Pdf转Word用Python轻松搞定 !
2).学Python实香!我用100行代码做了个网站,帮人PS游览图片,赚个鸡腿吃
3).首播过亿,火爆全网,我阐发了《披荆斩棘的姐姐》,发现了那些奥秘
4). 80行代码!用Python做一个哆来A梦分身
5).你必需掌握的20个python代码,短小精悍,用途无限
6). 30个Python奇淫技巧集
7). 我总结的80页《菜鸟学Python精选干货.pdf》,都是干货
8). 再见Python!我要学Go了!2500字深度阐发 !
9).发现一个舔狗福利!那个Python爬虫神器太爽了,主动下载妹子图片