无法使用python在wmi中创建文件系统对象

无法使用python在wmi中创建文件系统对象,python,wmi,filesystemobject,Python,Wmi,Filesystemobject,我使用wmi连接到远程windows服务器。我想创建filesystem对象来提取远程服务器上文件的文件版本 我的代码是这样的: # mc_name-machine name, login_machine() to login c = login_machine(mc_name) print "logged-in" # erroneous line. fo = c.win32com.client.Dispatch('Scripting.filesystemobject') # path=p

我使用
wmi
连接到远程windows服务器。我想创建filesystem对象来提取远程服务器上文件的文件版本

我的代码是这样的:

# mc_name-machine name, login_machine() to login
c = login_machine(mc_name) 
print "logged-in"
# erroneous line. 
fo = c.win32com.client.Dispatch('Scripting.filesystemobject') 
# path=path of file on remote machine
print fo.GetFileVersion(path)
非常感谢您的帮助

对于上面抛出的代码错误中的错误行:

Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\wmi.py", line 1145, in __getattr__
    return self._cached_classes (attribute)
  File "C:\Python34\lib\site-packages\wmi.py", line 1156, in _cached_classes
    self._classes_map[class_name] = _wmi_class (self, self._namespace.Get (class_name))
  File "<COMObject <unknown>>", line 3, in Get
  File "C:\Python34\lib\site-packages\win32com\client\dynamic.py", line 282, in _ApplyTypes_
    result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'SWbemServicesEx', 'Not found ', None, 0, -2147217406), None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#54>", line 1, in <module>
    fo=c.win32com.client.Dispatch('Scripting.filesystemobject')
  File "C:\Python34\lib\site-packages\wmi.py", line 1147, in __getattr__
    return getattr (self._namespace, attribute)
  File "C:\Python34\lib\site-packages\win32com\client\dynamic.py", line 522, in __getattr__
    raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: <unknown>.win32com

我不确定如何使用此wmi.ProvideConstants对象获取文件版本。

我可以使用以下代码查询远程文件的版本:

c = wmi.WMI('computer', user='domain\\user', password='pass')
result = c.query('SELECT * FROM CIM_DataFile WHERE Name = "C:\\path\to\file"')
for file in result:
    print file.Version
更新:以python对象的形式获取上次修改的时间,并以
dd/mm/yyyy
格式打印出来:

from datetime import datetime
last_modified = datetime(*wmi.to_time(file.LastModified)[:7])
print last_modified.strftime("%d/%m/%Y")

请添加错误跟踪。另外请注意,我的编辑(仅限移动评论)没有改变您代码的行为。非常感谢。如何将LastModified属性转换为正常日期格式,即dd/mm/YYYYSR当我使用此代码段时,它在shell中工作正常,但在我的程序中不工作。c、 查询返回空列表。请帮忙!!这意味着它找不到任何与查询匹配的文件。但是,先生,这样做很好,并且在pythonshell prompit中给出了结果。我犯的错误是在给出文件路径时使用了转义字符。在shell提示符中处理它,但不在代码中工作。谢谢你的帮助。
from datetime import datetime
last_modified = datetime(*wmi.to_time(file.LastModified)[:7])
print last_modified.strftime("%d/%m/%Y")