#!/usr/bin/env python# encoding: utf-8import winrmimport codecs# 来源# 公众号:AirPythonclass Foo(object):def __init__(self, username: str, password: str, ip: str, port: int = 5985):# ip地址:端口号# winrm server端口号默认为5985# auth:用户名和密码self.session = winrm.Session("{}:{}".format(ip,port), auth=('username', 'password'), transport='ntlm')def exec_cmd(self, cmd):"""执行cmd命令,获取返回值:param cmd::return:"""# CMDresult = 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 resultdef open_program(self):"""调用bat文件:return:"""# 调用bat命令result = self.exec_cmd('cmd / k "cd /d F:\b2bic&&startup.bat"')print(result)def open_file(self):"""读取文件:return:"""# 文件列表# result = self.exec_cmd('F: &cd b2bic\\log &dir')# windows使用type命令,查看文件内容# 查看文本文件内容# result = self.exec_cmd('F: &cd b2bic\\log &type 1.txt')# 查看日志文件result = self.exec_cmd('F: &cd b2bic\\log &type trade.log')print(result)def start(self):# 1、执行cmd命令,获取返回值# print(self.exec_cmd("whoami"))# print(self.exec_cmd("dir"))# 2、打开程序self.open_program()# 3、查看文件# self.open_file()if __name__ == '__main__':username = 'username'pwd = 'password'ip = '192.168.*.*'port = 5985foo = Foo(username, pwd, ip, port)foo.start()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。