# -*- coding: utf-8 -*-
import wmi,json
import time
import traceback
import sys
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"C:3.bat" #此文件在远程服务器上
cmd_callbat = "start c:3.bat"
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()
print traceback.print_exc(file=sys.stdout)
return False
return False
if __name__=='__main__':
call_remote_bat(ipaddress="192.168.110.131", username="Administrator", password="123456")
以上是远程连接的代码,运行和报错如下:
Traceback (letzter Anruf zuletzt):
Datei „D:/untitled/丶������.py“, Zeile 11, in call_remote_bat
conn = wmi.WMI(computer=ipaddress, user=username, password=password)
Datei „C:Python27libsite-packageswmi.py“, Zeile 1290, in connect
handle_com_error ()
Datei „C:Python27libsite-packageswmi.py“, Zeile 241, in handle_com_error
raise klass (com_error=err)
x_wmi: <x_wmi: Unexpected COM Error (-2147352567, 'xb7xa2xc9xfaxd2xe2xcdxe2xa1xa3', (0, u'SWbemLocator', u'RPC u670du52a1u5668u4e0du53efu7528u3002 ', Keine, 0, 147023174), Keine)>
Keine
Was ist dieser Fehler? Kann ein Experte ihn erklären?
Dieser Fehler wird gemeldet, wenn ich den Code ausführe, nachdem ich die virtuelle Maschine (Remotecomputer) vom Host aus angepingt habe, aber der obige Fehler wird immer noch gemeldet. Was passiert? Kann mir irgendein Experte bei der Antwort helfen? Danke.
看错误提示是服务器不可用啊,你需要确保你远程的服务器可以ping通,另外用户和密码要对的上。