zoukankan      html  css  js  c++  java
  • python 远程windows系统执行cmd命令

    如果你的服务器是windows系统,不想一台一台mstsc远程到桌面上去操作,python是有模块可以远程处理的:winrm

    pip install pywinrm 安装模块即可

    windows系统服务器需要开启 winrm 服务

    具体开启方法:

    cmd命令行输入:
    
    # 开启服务
    1.winrm quickconfig 会有两次确认 # 查看监听端口等信息 2.winrm e winrm/config/listener # 授权 3.winrm set winrm/config/service/auth @{Basic="true"} # 不加密模式 4.winrm set winrm/config/service @{AllowUnencrypted="true"}

    上面的cmd命令可以写成一个.bat文件,在服务器上直接执行即可:

    bat命令:

    echo y| winrm quickconfig
    echo y| winrm quickconfig
    winrm e winrm/config/listener
    winrm set winrm/config/service/auth @{Basic="true"}
    winrm set winrm/config/service @{AllowUnencrypted="true"}

    因为有两次手动确认的过程,写了两个echo y|解决。

    以上准备工作做好就可以在python里操作了

    举个例子:

     1 # -*- coding = utf-8 -*-
     2 # ------------------------------
     3 # @time: 2020/9/1 17:54
     4 # @Author: drew_gg
     5 # @File: mstsc_windows.py
     6 # @Software: api_locust
     7 # ------------------------------
     8 
     9 import winrm
    10 
    11 con = winrm.Session('http://49.37.168.224:5985/wsman', auth=("administrator", "23423423***"))
    12 # 杀掉进程
    13 con.run_cmd("taskkill /f /pid 6748") 
    “:5985/wsman”每台服务器上应该都是固定相同的。


    关于winrm再扩展一些知识:

    执行以下命令能够以每组多达50个实例的速度获取实例

    winrm set winrm/config @{MaxBatchItems="50"}

    通过增大分配的最大封包大小和超时设置,提高性能

    winrm set winrm/config @{MaxEnvelopeSizekb="150"}

    winrm set winrm/config @{MaxTimeoutms ="60000"}

    获取当前winRM配置

    winrm g winrm/config

    TrustedHosts 是一个数组,用于指定可信的远程计算机的列表;同一工作组中的其他计算机或不同域中的计算机均应添加到此列表中;执行以下命令可将所有计算机都纳入TrustedHosts

    winrm s winrm/config/Client @{TrustedHosts="*"}

    将客户端计算机设置为使用基本身份验证

    winrm s winrm/config/Client/Auth @{Basic="true"}
  • 相关阅读:
    vb 动态添加 timer
    sruts2 国际化 规范
    vb 创建xml
    robots
    android 桌面斗地主
    QT 平台
    云软件 Eucalyptus云
    android intentfilter
    android 布局相关
    Zend Studio PHP
  • 原文地址:https://www.cnblogs.com/drewgg/p/13602169.html
Copyright © 2011-2022 走看看