linux 远程控制windows系统下的程序(三种方法)

有时候我们需要通过在linux上远程运行windows系统上的程序。

方法一:

通过python中的 winrm模块,前提条件,先提前设置好winrm服务。如何设置请自行百度,winRM服务是windows server下PowerShell的远程管理服务。Python脚本通过连接winRM模块操作windows命令行。

import winrm
def cmd_views(ip,cmd_comand):
  win = winrm.Session('http://'+ip+':5985/wsman', auth=('user', 'password'))#参数为用户名和密码
  r = win.run_cmd(cmd_comand) # 执行cmd命令=
  return r.std_out # 打印获取到的信息

ip="xxx.xxx.xx.xx"
cmd_comand=r"ipconfig"#运行命令

a=cmd_views(ip, cmd_comand)
print(cmd_comand)
print(type(a))
print(a)

经过本人测试这个模块只能执行一些简单的命令,就是那种基本上能一输入就能立马响应结果的命令。碰到一些稍微复杂的,进程就挂掉了。

方法二:

通过python中的telnetlib库进行执行操作,前提设置windows系统中的telnet设置,1,安装telnet客户端和服务器端。2配置telnet用户权限,不会就自行百度设置。

# -- coding: utf-8 --
import telnetlib,time

def telnetlib_views(ipaddress,user,password,cmdname):
  tn=telnetlib.Telnet(ipaddress)
  a=tn.read_until(b'login:')
  tn.write(user.encode('ascii') + b'\r\n')
  tn.read_until(b'password:')
  time.sleep(5)
  tn.write(password.encode('ascii') + b'\r\n')
  time.sleep(2)
  tn.write(cmdname.encode('ascii') + b'\r\n')
  tn.close()
cmdname=r'ifconfig'#运行命令
telnetlib_views(ipaddress="xxx.xxx.xxx.xxx", user="xxx", password="xxxx",cmdname=cmdname)

等待命令调用完成,程序结束。

方法三

利用wmi模块,缺陷只能通过windows-windows,linux-windows行不通,linux相关模块无法安装。

import wmi
def sys_version(ipaddress, user, password,cmdname):
  conn = wmi.WMI(computer=ipaddress, user=user, password=password)
  try:
    cmd_callbat = r"cmd /c call %s" % cmdname
    print("当前执行bat 命令为:",cmd_callbat)
    conn.Win32_Process.Create(CommandLine=cmd_callbat)
  except Exception as e:
    print(e)
cmdname= r"xxx.bat"#运行命令
sys_version(ipaddress="xxx.xx.xx.xx", user="xx", password="xxx",cmdname=cmdname)#

命令被调用,程序结束,无需等待,区别于方法二,缺陷 无法在linux上安装库

应用场景实用,现在我需要在linux上执行程序,将windows系统上的一个PDF格式的文件,传到linux上?

# -- coding: utf-8 --
import winrm
def job():
  # 获得连接
  t = winrm.Session("xxx.xx.xx.xx", auth=("xx", "xxx"))
  # 获得a.pdf内容
  r = t.run_cmd(r'type C:\xxx\xxx\Desktop\test\a.pdf')
  # 将内容转化成字符串
  s0 = str(r.std_out)
  # print(s0)
  with open("c.pdf","wb")as f:
        f.write(s0)
  print("写入完成")
job()

总结

以上所述是小编给大家介绍的linux 远程控制windows系统下的程序(三种方法),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • python通过Windows下远程控制Linux系统

    一.学习目标 [通过Windows下远程控制Linux系统实现对socket模块认识] 二.实验环境 Windows下(模拟客户端 [ IP:192.168.43.87 ] ):python3.6 Linux下(模拟服务端 [ IP:192.168.43.226 ] ):python2.7 三.前提条件 两者能够ping通 服务端关闭防火墙,selinux 四.代码 服务端代码(server.py): #!/usr/bin/env python #coding:utf-8 import sock

  • 利用vnc远程图形界面控制Linux

    Windows下面的远程图形界面的控制大家都已经驾轻就熟了. Linux下面利用vnc来图形界面的控制也是非常简单的.VNC是由两部分组成:一部分是客户端的应用程序(vncviewer):另外一部分是服务器端的应用程序(vncserver). 以redhat linux 8.0下面的安装和使用为例 一 .安装vnc的rpm包 1 安装linux 1.1 图形界面下的安装要是在KDE或者GNOME下,直接点击rpm包,系统会自动开始安装.中间还会提示你设置密码,端口等. 1.2 命令行下的安装.

  • Linux系统中如何实现远程控制

    看着办公室里的同事大李每天下班时间一到就早早打卡回家,在温暖的家中通过远程控制软件来继续工作,还在冷冰冰的办公室里加班的小张暗暗下了决心:不行,我也要早早回家,美美吃上一顿再加班!不过Linux下面可以实现远程控制吗? "当然可以了!像我一样用VNC不就成了?"大李拍拍小张的肩膀,"兄弟一场,我就来教教你吧!" VNC(Virtual Network Computing)是一套著名的远程控制软件,它由两个部分组成.一部分是客户端的应用程序VNC Viewer,另一部

  • 再谈远程控制linux下

    一直以来我都是在windows平台下,用ssh和vnc来远程控制linux肉鸡来实现nt和*inux多系统环境的工作.这个具体实现网络上教程已经很多,我想没有必要再详细的说明拉.       但是最近因为实在是厌恶微软推出所谓的2003,而且据说总总限制,使得我无法在有勇气在我的机器里面保留NT,呵呵其实由于我的机器低配置,实在难以接受多系统的强大压力,所以就删除拉NT,(牙牙的,大堆废话)  呵呵,本来就是原理吗,所以灌灌水.      好了,现在我们进入正题,作为最强大的远程控制软件VNC,

  • linux 远程控制windows系统下的程序(三种方法)

    有时候我们需要通过在linux上远程运行windows系统上的程序. 方法一: 通过python中的 winrm模块,前提条件,先提前设置好winrm服务.如何设置请自行百度,winRM服务是windows server下PowerShell的远程管理服务.Python脚本通过连接winRM模块操作windows命令行. import winrm def cmd_views(ip,cmd_comand): win = winrm.Session('http://'+ip+':5985/wsman

  • Windows 系统下安装 IntelliJ IDEA 的方法(图解)

    首先,进入官网下载 IntelliJ IDEA 可执行文件: https://www.jetbrains.com/idea/ 如上图所示,进入"Download IntelliJ IDEA"页面,显然咱们可以看到 IntelliJ IDEA 分为两个版本,分别为: 旗舰版(Ultimate) 社区版(Community) 其中,旗舰版是收费的,社区版则是免费的.至于两者的区别嘛,就是旗舰版比社区版的功能更为齐全!如果你想用 IntelliJ IDEA 进行大型项目开发的的话,啥也别说了

  • 本地电脑向远程windows服务器传输文件的三种方法汇总

    目录 1.直接复制粘贴 2.Windows远程连接 windows+R,输入mstsc 点击“选项”按钮,打开远程连接选项卡 选择本地资源,点击详细信息 打开驱动器,选择你要共享的盘符 文件管理器 3.FileZilla 的使用 这篇文章主要介绍了本地电脑向windows服务器传输文件的三种方法汇总(本地电脑与远程windows服务器传输文件的方式)的相关资料,需要的朋友可以参考下 那么如何将我们本机的文件传送到云主机上呢? 1.直接复制粘贴 通过远程连接到这个服务器,然后本机到服务器能直接粘贴

  • Windows系统下MySQL添加到系统服务方法(mysql解压版)

    MySQL软件版本:64位 5.7.12 1.首先配置MySQL的环境变量,在系统环境变量Path的开头添加MySQL的bin目录的路径,以";"结束,我的路径配置如下: 2.修改MySQL根目录下的my-default.ini文件的内容:主要修改2个属性:basedir和datadir. basedir:MySQL的根目录: datadir:数据库数据的保存目录(目录需要手动创建): 需要注意的几点: 目录的斜杠最好用反斜杠,要不需要转义或者加双引号: datadir的目录必须事先创

  • windows系统下,如何在C#程序中自动安装字体

    1.1.使用代码安装字体 注意:安装字体时,需要windows的管理员权限. [DllImport("kernel32.dll", SetLastError = true)] public static extern int WriteProfileString(string lpszSection, string lpszKeyName, string lpszString); [DllImport("gdi32")] public static extern i

  • Windows系统下Oracle数据库每天自动备份

    linux和unix下面使用shell可以很方便实现,如果windows环境下可以结合计划任务实现 1.创建备份目录d:\backup, 创建批处理命令Bak.bat,编写备份脚本 exp user/passwd@orcl DIRECT=Y BUFFER=100000 FILE=D:\backup\scdd%date:~0,10% OWNER=('scdd') LOG=D:\backup\data.log forfiles /p "D:\backup" /s /m *.dmp /d -

  • 总结UNIX/LINUX下C++程序计时的方法

    前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较.但要精确测量程序的运行时间并不容易,因为进程切换.中断.共享的多用户.网络流量.高速缓存访问及转移预测等因素都会对程序计时产生影响. 下面看看小编为大家整理几个计时方法 方法一: 如果是想统计某个程序的运行时间,那么可以使用 time ./a.out 方法二: 如果是想对某个函数或者语句进行计时,那么有别的方法.比如说,gettimeofday函数.直接贴示例代码: #include <sys/time.h> v

  • 查看远程 Linux 系统中某个端口是否开启的三种方法

    这是一个很重要的话题,不仅对 Linux 管理员而言,对于我们大家而言也非常有帮助.我的意思是说对于工作在 IT 基础设施行业的用户来说,了解这个话题也是非常有用的.他们需要在执行下一步操作前,检查 Linux 服务器上某个端口是否开启. 假如这个端口没有被开启,则他们会直接找 Linux 管理员去开启它.如果这个端口已经开启了,则我们需要和应用团队来商量下一步要做的事. 在本篇文章中,我们将向你展示如何检查某个端口是否开启的 3 种方法. 这个目标可以使用下面的 Linux 命令来达成: nc

  • Windows系统下安装VirtualBox及安装Ubuntu16.04的详细教程

    1.软件介绍 VirtualBox VirtualBox 是一款免费的开源虚拟机软件,所谓虚拟机软件,就是能够提供各种模拟的硬件环境,并且在其上安装各种操作系统,目前支持Window,Linux,Mac OS X. 其下载地址可以点击这里.点击链接后,因为是要在window下安装,可以参考下面,直接点击红框部分的链接下载widnow版的VirtualBox 下载好了后,直接双击打开,类似下面的图文步骤直接不停点击下一步安装即可 Ubuntu Ubuntu,中文称呼"乌班图",是一个开源

  • Windows 系统下的 Git 2.7 最新下载及安装教程图文详解

    Git是一个开源的分布式版本控制系统,用于高效的管理各种大小项目和文件.有着管理多样化.分享速度快.数据安全 更好的分支支持.方便多人协调等优点,而备受程序猿的喜爱. 下面给大家分享一个在[windows系统]下[Git 图形化界面]的安装教程 ,欢迎大家评鉴与参考.  一.软件下载    官网地址:https://git-scm.com/    1.打开 Git 官网,点击 [Downloads] 2.选择合适的操作系统(本教程是以 Windows 系统为例),选择 [Windows](会根据

随机推荐