1. 首页 > 快讯

Python 远程管理 Windows 服务器简便指南

Windows中内置的服务“winrm”就可以满足我们的需求。

它是基于标准简单对象访问协议(SOAP) 的防火墙友好协议,允许不同供应商的硬件和操作系统进行互操作。

官方网站:https://docs.microsoft.com/en-us/windows/win32/winrm/portal

1. 被控端 windows

这里我们以Windows 10系统机器为例。

具体步骤如下:

1.1 启动 winrm 服务

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

# 启动winrm服务

如果运行winrm Quickconfig -q,会报错,提示网络类型设置异常。

可以使用快捷键win+i进入网络和Internet,更改网络配置文件,从公共切换到私有。

1.2 检查 winrm 服务监听状态

继续在命令行输入以下命令,查看winrm服务的状态。

PS:注意这里的端口号和Port值在后面的连接中会用到。

# 检查winrm服务的状态

winrm e winrm/config/listener

结果

聆听者

地址=*

传输=HTTP

端口=5985

主机名

启用=真

URL前缀=wsman

证书指纹

ListeningOn=**

1.3 查看 winrm 配置信息(可选)

通过以下命令可以查看所有winrm配置信息、客户端配置信息、业务服务器配置信息。

全部

winrm 获取winrm/config

客户

winrm 获取winrm/config/client

服务

winrm get winrm/config/service

1.4 配置 winrm client

# 配置winrm客户端

winrmsetwinrm/config/client @{AllowUnencrypted='true'}

winrmsetwinrm/config/client @{TrustedHosts='*'}

winrmsetwinrm /config/client/auth @{Basic='true'}

1.5 配置 winrm service

配置好winrm服务和winrm客户端后,我们通过步骤1-3检查配置文件,确保配置文件已经生效。

# 配置winrm服务

winrmsetwinrm/config/service @{AllowUnencrypted='true'}

winrmsetwinrm /config/service/auth @{Basic='true'}

2. 控制端

在控制端,例如Mac OSX和Linux,我们只需要安装“pywinrm”依赖包即可。

# 在控制端安装依赖包

pip3 install pywinrm

3. 实战一下

做好上述准备后,我们就可以编写控制Windows的代码了。

首先,我们需要IP地址、端口号、用户名和密码来连接Windows控制终端。

# 连接窗口

导入winrm

.

#ip地址:端口号

# winrm服务器端口号

# auth: 用户名和密码

self.session=winrm.Session('192.168.**.**:5985',auth=('用户名','密码'),transport='ntlm')

.这样我们就可以通过对象的“run_cmd”和“run_ps”函数来模拟CMD和PowerShell输入命令。

下面以查看Windows某硬盘目录下的日志文件为例:

# 连接窗口

导入winrm

导入编解码器

.

def exec_cmd(自我,cmd):

'''

执行cmd命令并获取返回值

:paramcmd:

:返回:

'''

#CMD

结果=self.session.run_cmd(cmd)

#powerShell

# 结果=self.session.run_ps(cmd)

#返回码

# code 0表示调用成功

代码=结果.status_code

#根据返回码,获取响应内容(字节)

content=result.std_outif 代码==0else result.std_err

# 转换为字符串(尝试通过UTF8、GBK解码)

# 结果=content.decode('utf8')

# 结果=codecs.decode(内容,'UTF-8')

尝试:

结果=content.decode('utf8')

除了:

结果=content.decode('GBK')

打印(结果)

返回结果

.

# 打开文件D:/py/log/trade.log

# Windows使用type命令查看文件内容

result=self.exec_cmd('D: cd py\\log 类型trade.log')

# 查看结果

print(result)

4. 总结

除了远程查看Windows文件外,还可以执行bat批处理文件,或者模拟命令行输入,根据返回值进行其他操作。

如果你还想了解更多这方面的信息,记得收藏关注本站。

用户评论

熏染

我现在一直在找这种方法,终于找到了!

    有5位网友表示赞同!

╭摇划花蜜的午后

对我的工作效率简直是个福音啊!

    有19位网友表示赞同!

夜晟洛

平时在办公室里操作Windows机器挺麻烦的,这下方便多了!

    有5位网友表示赞同!

南宫沐风

学Python太值了,这方面的应用真多。

    有10位网友表示赞同!

安好如初

这么厉害的技术,什么时候能用到手机上呢?

    有11位网友表示赞同!

暮光薄凉

有没有其他语言也能远程控制啊?

    有5位网友表示赞同!

|赤;焰﹏゛

要怎么做才能远程安装软件呢?

    有10位网友表示赞同!

摩天轮的依恋

这个技巧看起来超级便捷!

    有7位网友表示赞同!

开心的笨小孩

分享链接吗?想赶紧试试看!

    有12位网友表示赞同!

残留の笑颜

太棒了,我之前也想尝试一下远程控制。

    有12位网友表示赞同!

冷青裳

学习Python真是一个很好的选择啊。

    有13位网友表示赞同!

北朽暖栀

这篇文章很有用,谢谢分享!

    有20位网友表示赞同!

焚心劫

可以远程操控的游戏应该也很酷吧!

    有12位网友表示赞同!

你是梦遥不可及

请问这个方法安全性高吗?

    有9位网友表示赞同!

┲﹊怅惘。

远程控制能解决好多问题,比如同事电脑卡的时候。

    有14位网友表示赞同!

抚笙

感觉像穿越未来一样!

    有9位网友表示赞同!

你的眸中有星辰

我还以为这只能出现在科幻片里呢!

    有20位网友表示赞同!

赋流云

可以远程修改文件了吗?

    有16位网友表示赞同!

柠栀

学习这个方法需要多久?

    有11位网友表示赞同!

微信名字

我想了解一下这个在实际应用中的场景。

    有10位网友表示赞同!

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/6926.html

联系我们

在线咨询:点击这里给我发消息

微信号:666666