如何用python 调用powershell打开python

Python中调用PowerShell、远程执行bat文件实例_PowerShell
作者:用户
本文讲的是Python中调用PowerShell、远程执行bat文件实例_PowerShell,
python调用本地powershell方法
1、现在准备一个简陋的powershell脚本,功能是测试一个IP列表哪些可以ping通:
复制代码 代码如下:
function test_ping($iplist)
python调用本地powershell方法
1、现在准备一个简陋的powershell脚本,功能是测试一个IP哪些可以ping通:
复制代码 代码如下:
function test_ping($iplist)
foreach ($myip in $iplist)
$strQuery = "select * from win32_pingstatus where address = '$myip'"
# 利用 Get-WmiObject 送出 ping 的查詢
$wmi = Get-WmiObject -query $strQuery
if ($wmi.statuscode -eq 0)
return "Pinging`t$myip...`tsuccessful"
return "Pinging`t$myip...`tErrorCode:" + $wmi.statuscode
test_ping args[0]
python简陋的调用方法:
复制代码 代码如下:
# -*- coding: utf-8 -*-
import subprocess
def python_call_powershell(ip):
args=[r"powershell",r"D:\jzhou\test_ping.ps1",ip]
#args参数里的ip是对应调用powershell里的动态参数args[0],类似python中的sys.argv[1]
p=subprocess.Popen(args, stdout=subprocess.PIPE)
dt=p.stdout.read()
except Exception,e:
return False
if __name__=="__main__":
ip=["1.1.1.1","2.2.2.2","3.3.3.3"]
print python_call_powershell(ip)
可能会报下面的错误(如果服务器本身开启了运行了powershell策略的权限可能没有这个问题):
第二种调用方法可以解决这个方法
2、调用时设置powershell执行策略,这种方法一旦将策略设置好后,后面就通用了,如果需要的话再在powershell脚本最后加上已经将策略改回去
复制代码 代码如下:
def python_call_powershell(ip):
args=[r"C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe","-ExecutionPolicy","Unrestricted", r"D:\jzhou\test_ping.ps1",ip]
p=subprocess.Popen(args, stdout=subprocess.PIPE)
dt=p.stdout.read()
except Exception,e:
return False
3、还有一点需要注意的是powershell脚本里最后必须要调用一下自己的函数,并且函数要有返回值,以便python能接收powershell脚本返回的结果,同时powershell脚本调用函数传参的方式是args[0],args[1]等等,然后在python里的args里传入对应的参数。
如果需要将策略设置为原来的默认状态,在powershell脚本最后加上:Set-ExecutionPolicy Restricted
python远程调用bat执行命令
1、首先安装python的wmi包
2、远程调用bat如下:
复制代码 代码如下:
# -*- coding: utf-8 -*-
import wmi,json
import time
logfile = 'logs_%s.txt' % time.strftime('%Y-%m-%d_%H-%M-%S', time.localtime())
#远程执行bat文件
def call_remote_bat(ipaddress,username,password):
#用wmi连接到远程服务器
conn = wmi.WMI(computer=ipaddress, user=username, password=password)
filename=r"D:\apps\autorun.bat"
#此文件在远程服务器上
cmd_callbat=r"cmd /c call %s"%filename
conn.Win32_Process.Create(CommandLine=cmd_callbat)
#执行bat文件
print "执行成功!"
return True
except Exception,e:
log = open(logfile, 'a')
log.write(('%s, call bat Failed!\r\n') % ipaddress)
log.close()
return False
return False
if __name__=='__main__':
call_remote_bat(computer="192.168.1.2", user="testuser", password="testpwd")
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索python
调用PowerShell
远程执行bat文件
powershell 调用bat、python调用powershell、python调用bat文件、python 调用bat、bat 调用python脚本,以便于您获取更多的相关知识。
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
开发者常用软件,超百款实用软件一站式提供
云栖社区()为您免费提供相关信息,包括
,所有相关内容均不代表云栖社区的意见!Powershell 编写和运行脚本 - PowerShell 中文博客2008年12月 Linux/Unix社区大版内专家分月排行榜第二
2009年3月 Linux/Unix社区大版内专家分月排行榜第三
2012年9月 Windows专区大版内专家分月排行榜第一2012年9月 C/C++大版内专家分月排行榜第一2012年8月 Windows专区大版内专家分月排行榜第一
2012年9月 其他开发语言大版内专家分月排行榜第二2012年8月 VC/MFC大版内专家分月排行榜第二2012年8月 其他开发语言大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。Python远程执行window powershell/bat问题【python吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:155,043贴子:
Python远程执行window powershell/bat问题收藏
求大神指点,WMI包是不是一定要安装到windows服务器?Linux有类似的包吗,想从一台Linux服务器搭建python环境,去批量管理windows服务器
登录百度帐号推荐应用}

我要回帖

更多关于 powershell 开python 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信