Winrm+python远程连接windows执行命令
WinRM(Windows Remote Management)windows远程管理,这个是基于[powershell](https://baike.baidu.com/item/Windows PowerShell ISE)的功能,一个形象的类比就是ssh之于linux。
winrm可以远程连接windows并执行cmd命令(使用python语言)
WinRM端口是5985和5986(HTTPS)
1、开启服务端winrm的服务
在window服务器上,要打开winrm服务。下面是操作流程:
第一步:用管理员权限打开windows powershell
第二步:首先查看winrm service的运行状态,默认情况是没有开启的;执行命令为空是没有启动。
winrm enumerate winrm/config/listener
第三步:对winrm service进行配置
winrm quickconfig
第四步:为winrm service 配置auth:
winrm set winrm/config/service/auth @{Basic="true"}
# winrm set winrm/config/service/auth '@{CredSSP="true"}' #凭据安全支持提供程序协议 (CredSSP)可以开启加密凭据的传输
第五步:为winrm service 配置加密方式为允许非加密:
winrm set winrm/config/service @{AllowUnencrypted="true"}
检验是否配置成功
winrm get winrm/config/service/auth
2、python代码
python环境中安装依赖包
pip install isodate
pip install xmlwitch
安装pywinrm
pip install pywinrm
使用session方法
import winrmwin = winrm.Session('http://windowsip:5985/wsman',auth=('windows管理员账户','windows管理员密码'))r = win.run_cmd('history') #执行cmd命令 这里cmd中没有history的命令print(str(r.std_out,encoding='gbk')) # 打印获取到的信息print(str(r.std_err,encoding='gbk')) #打印错误信息import winrmwin = winrm.Session('http://windowsip:5985/wsman',auth=('windows管理员账户','windows管理员密码'))r = win.run_ps('history') #执行powershell命令 可以执行一些cmd没有的命令,print(str(r.std_out,encoding='gbk')) # 打印获取到的信息print(str(r.std_err,encoding='gbk')) #打印错误信息#因为cmd默认使用gbk编码,而python默认使用utf-8,所以要用gbk进行解码
使用Protocol方法
import winrm
conn = winrm.Protocol(endpoint='http://10.10.60.14:5985/wsman', transport='plaintext', username='administrator', password='password')shell_id=conn.open_shell()com=conn.run_command(shell_id,"dir") stdout, stderr, return_code = conn.get_command_output(shell_id, com) print "STDOUT: %s" % (stdout)
print "STDERR: %s" % (stderr)
Winrm+python远程连接windows执行命令相关推荐
- ssh远程执行服务器命令,ssh远程连接服务器执行命令
问题 首先说一下使用ssh远程连接服务器执行命令的方法: 为了方便描述,这里把测试服务器称之为A1,目标服务器称之为A2 A1与A2之间首先要建立ssh免密登录,在A1上生成公钥和私钥 ssh-key ...
- python远程登录并执行命令_Python - 远程SSH执行命令
前言 在自动化运维中经常需要通过ssh批量操作服务器,利用Python的paramiko模块就快速完成工作. 安装 pip install paramiko 使用SSHClient类 SSHClien ...
- 【python远程linux、执行命令、读取excel】
import os import paramiko import time import xlrd import pandas as pdclass ServerSsh:def __int__(sel ...
- python远程linux服务器执行命令_基于使用paramiko执行远程linux主机命令(详解)
paramiko是python的SSH库,可用来连接远程linux主机,然后执行linux命令或者通过SFTP传输文件. 关于使用paramiko执行远程主机命令可以找到很多参考资料了,本文在此基础上 ...
- java使用2种方法操作liberoffice把word转pdf,pdf加水印,java远程调用Linux执行命令
文章目录 libreoffice下载地址 安装 (第一种) java调用 (第二种 推荐) java调用Linux命令转pdf java远程连接Linux执行命令(少数情况) linux安装windo ...
- python如何连接自己电脑服务器_Python远程连接windows服务器并上传数据
[芝麻IP代理]大数据时代下,我们对于Python的应用真的是淋漓尽致,第一次玩服务器,电脑端远程连接能连上,可SSH却始终不行,后来才发现,这根本不是一种东西,SSH得在服务器上搭建SSH seve ...
- Python远程连接服务器
在使用 Python 写一些脚本的时候,在某些情况下,我们需要频繁登陆远程服务去执行一次命令,并返回一些结果. 对于直接使用 shell 命令,来执行命令的,可以直接使用管道,或者将标准输出重定向到文 ...
- 【Python】Python 远程连接服务器,用它就够了
在使用 Python 写一些脚本的时候,在某些情况下,我们需要频繁登陆远程服务去执行一次命令,并返回一些结果. 在 shell 环境中,我们是这样子做的. $ sshpass -p ${passwd} ...
- 使用 Powershell 远程连接 windows server
使用 Powershell 远程连接 windows server Intro 最近我们的开发环境增加了一个 windows 服务器,没有界面的,不能直接远程桌面连上去管理,需要使用 Powershe ...
- Python 远程连接服务器,用它就够了
在使用 Python 写一些脚本的时候,在某些情况下,我们需要频繁登陆远程服务去执行一次命令,并返回一些结果. 在 shell 环境中,我们是这样子做的. $ sshpass -p ${passwd} ...
最新文章
- 7 个 jQuery 最佳实践
- 谁是 2021「IT 圈」年度 C 位?快来报名,彰显你的影响力!
- java之redis篇(spring-data-redis整合)
- 复杂的结构化存取(一)
- 初步学习pg_control文件之三
- Mybatis的解析模块基础
- 如何处理Marketing Cloud OData服务的错误消息
- jsp使用cookie实现记住用户名和密码
- 程序员如何跟领导提离职_员工辞职不交接工作被领导怒怼:我不批离职,跟你耗着,结果蒙了...
- echarts 柱状图不显示y坐标轴_Python+matplotlib自定义坐标轴位置、颜色、箭头
- vue-touch不能上下滑动的问题【解决】
- 大巴山计算机教育中心那所学校,大巴山计算机教育中心
- 分布式常见面试题详解
- spPaint3d插件maya安装和介绍教程
- IDEA和MySQL数据库建立连接
- 2021计算机三级数据库大题总结
- .so文件的基本理解,使用。
- Kattis Zamka
- layui表格宽度自适应
- 【每日一读】Large Scale Network Embedding: A Separable Approach
热门文章
- 两平面间8参数变换参数求解简单原理解析(已更新间接平差算法)
- 中国天气网 城市代号
- cell数组变为字符串_cell转字符串 - osc_n3166lwj的个人空间 - OSCHINA - 中文开源技术交流社区...
- 用python来开发webgame服务端(2)
- webgame开发入门
- 什么是 Uptime TIER 数据中心等级认证体系?-孙长青
- Intro.js 简介和用法
- PC端用Itunes备份Iphone时修改备份路径的办法
- 剪辑师:入门级无水印无片头片尾免费视频剪辑工具
- EXCEL密码清除——巧用RAR