python调用本地powershell方法
1、现在准备一个简陋的powershell脚本,功能是测试一个IP列表哪些可以ping通:
test_ping args[0]
python简陋的调用方法:
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脚本最后加上已经将策略改回去
3、还有一点需要注意的是powershell脚本里最后必须要调用一下自己的函数,并且函数要有返回值,以便python能接收powershell脚本返回的结果,同时powershell脚本调用函数传参的方式是args[0],args[1]等等,然后在python里的args里传入对应的参数。
如果需要将策略设置为原来的默认状态,在powershell脚本最后加上:Set-ExecutionPolicy Restricted
python远程调用bat执行命令
1、首先安装python的wmi包
2、远程调用bat如下:
logfile = 'logs_%s.txt' % time.strftime('%Y-%m-%d_%H-%M-%S', time.localtime())
#远程执行bat文件
def call_remote_bat(ipaddress,username,password):
try:
#用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")
新闻热点
疑难解答
图片精选