python远程控制电脑,python连接远程服务器

  python远程控制电脑,python连接远程服务器

  在很多企业中,闲置的Windows机器被用作临时服务器,有时我们希望远程调用程序或检查日志文件。本文分享使用Python远程控制Windows server的方法。有兴趣的可以学习一下。

  

目录
1.受控端windows启动winrm服务检查winrm服务侦听状态,查看winrm配置信息(可选)。配置winrm客户端以配置winrm服务2。控制端3。练习一下。4.总结在很多企业中,闲置的Windows机器会被用作临时服务器,有时我们想远程调用里面的程序或者查看日志文件。

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

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

  官方网站地址

  

1. 被控端 windows

  以Windows 10系统机器为例。

  具体操作步骤如下:

  

启动 winrm 服务

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

  #启动winrm服务

  winrmquickconfig-q

  如果操作报错,会提示网络类型设置异常

  您可以使用快捷键win i访问网络和互联网,更改网络配置文件,并从公共切换到专用。

  

检查 winrm 服务监听状态

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

  PS:注意,这里的端口号以后会用于连接。

  #检查winrm服务的状态

  winrmewinrm/config/listener

  #结果

  听众

  地址=*

  传输=HTTP

  端口=5985

  主机名

  启用=真

  URLPrefix=wsman

  证书指纹

  ListeningOn=**

  

查看 winrm 配置信息(可选)

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

  #全部

  winrmgetwinrm/config

  #客户端

  winrmgetwinrm/config/client

  #服务

  winrmgetwinrm/config/service

  

配置 winrm client

  #配置winrmclient

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

  codewinrmsetwinrm/config/client @ { trusted hosts= * }/code

  codewinrmsetwinrm/config/client/auth @ { Basic= true }

  

配置 winrm service

  配置完winrm服务和winrm客户端后,我们可以通过步骤1-3检查配置文件,确保配置文件有效。

  #配置winrmservice

  winrmsetwinrm/config/service @ { Allow

  Unencrypted="true"}

  winrm set winrm/config/service/auth @{Basic="true"}

  

  

2. 控制端

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

  

# 控制端安装依赖包

  pip3 install 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

  import winrm

  import codecs

  ...

   def exec_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 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)

  

  

  

4. 总结

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

  到此这篇关于Python远程控制Windows服务器的方法详解的文章就介绍到这了,更多相关Python远程控制Windows服务器内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: