我正在尝试使用wmi模块连接到远程Windows机器。我正在使用基于此链接中的代码的逻辑 - http://code.activestate.com/recipes/577945-execute-remote-commands-on-windows-like-psexec/
当我单独运行此代码并尝试连接到我能够连接的机器时,但是,当我在多线程环境中运行代码时,我收到以下错误之一案例,但在另一个线程中,我能够成功连接。
这是错误 -
2013-11-26 17:26:47,270::Thread-5::6544::Could not connect to machine - <x_wmi: Unexpected COM Error (-2147352567,
'Exception occurred.', (0, u'SWbemLocator',
u'Access is denied. ', None, 0, -2147024891), None)>
这是我的代码
class ConnectMsToMs():
''' This class provide the functionality to transfer
file b/w windows OS. One can also delete/execute
any file on remote computer. '''
def __init__(self, log, ip,
username, password,remote_path=r'c:\\test_script'):
self.log = log
self.ip = str(ip)
self.username = str(username)
self.password = str(password)
self.remote_path = remote_path
try:
pythoncom.CoInitialize()
self.log.thread_log("Establishing connection to %s" % self.ip)
self.connection = wmi.WMI(self.ip, user=self.username,
password=self.password)
self.log.thread_log("Connection established")
#except wmi.x_wmi:
except Exception,err:
self.log.thread_log("Could not connect to machine - %s"%str(err))
raise
这是我连接到ConnectMsToMs对象的结构。
main() - &gt; DTC {继承调用run的线程。} - &gt; dba.sanity(){这是一个不同类的函数,这个fn实习生调用connnect} - &gt; connect(){this fn创建我的ConnectMsToMs的对象并尝试连接到系统}
答案 0 :(得分:0)
我遇到了同样的问题,到目前为止还没有找到有关如何解决问题的任何信息。
我已经使用Windows程序“远程桌面”成功连接到计算机,因此我知道该服务处于活动状态并接受来自此计算机的连接。
我正在尝试使用以下行进行测试
connection = wmi.WMI("192.168.1.5", user="username", password="password")
结果是
x_access_denied: <x_wmi: Unexpected COM Error (-2147352567, 'Exception occurred.', (0, u'SWbemLocator', u'Access is denied. ', None, 0, -2147024891), None)>