Python wmi在重新启动后的一段时间内不可用

Python wmi在重新启动后的一段时间内不可用,python,wmi,pywin32,Python,Wmi,Pywin32,我在登录时遇到WMI可用性问题 重新启动后,我立即打开cmd并使用python解释器: >>> import wmi >>> c = wmi.WMI() >>> c.Win32_OperatingSystem() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python27\lib\site-pa

我在登录时遇到WMI可用性问题

重新启动后,我立即打开cmd并使用python解释器:

>>> import wmi
>>> c = wmi.WMI()
>>> c.Win32_OperatingSystem()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\wmi.py", line 1147, in __getattr__
    return getattr (self._namespace, attribute)
  File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 516, in
__getattr__
    raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: winmgmts:.Win32_OperatingSystem
>>>
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import wmi
>>> c = wmi.WMI()
>>> c.Win32_OperatingSystem()
[<_wmi_object: \\W520-ALEX-WIN7\root\cimv2:Win32_OperatingSystem=@>]
>>>

注6:WMIDiag工具报告位于

@Lizz感谢您的努力。查询指向本地主机(因此初始化为
wmi.wmi()
,不带主机名和用户/密码参数),并在管理员权限下启动。此外,
wmic
工作正常,“wmicos”查询(这与我尝试使用python所做的相同)输出预期结果。我运行了WMIDiag诊断工具并发现了一些错误,但它们不应该导致我得到的结果。(你可以在我的dropbox中看到:)实际上,错误可能是原因——根据下面的链接,它们指向WMI损坏。幸运的是有一个修补程序。错误为“0x80041002-(未找到WBEM_E_)”,修复程序如下:。你能申请并让我们知道吗?如果在应用和重新启动后未修复,请参阅知识库以禁用策略的结果集(RSoP)日志策略。@Lizz热修复和关闭RSoP日志策略都不起作用。我格式化了硬盘并重新安装了操作系统(包括一些驱动程序和所有windows更新)——这也没用。这让我觉得是机器的问题。这是一款配备i7的功能强大的笔记本电脑(联想w520),我有Pyro 60G SSD。也许问题是速度太快了?或者驱动器可能有故障?速度应该没有问题,但您可以添加500毫秒的睡眠时间来确保。检查系统日志中的HD错误。它安装了哪个操作系统?如果不是太麻烦,可以尝试不同的操作系统,比如XP或7。我相信它不会得到与其他计算机不同的策略(Active Directory、安全性等),也不会有奇怪的软件。为了进行比较,请尝试匹配一台好电脑的设置。由于我们无法完全了解您的环境,因此故障排除需要更多的问答。抱歉:(@Lizz操作系统是Win 7 Enterprise。我已经安装了所有可能的驱动程序并更新了BIOS,但什么都没用。所以我将Win 7 Professional的原始映像放在这台机器上,在所有更新和安装的驱动程序都按预期工作后,WMI工作正常。令我惊讶的是,为什么重新安装企业操作系统还没有解决这个问题。我知道映像on CD很好,我以前在很多机器上都安装过。不管怎样,问题现在解决了。谢谢。
>>> import win32com.client
>>> win32com.client.Dispatch('WbemScripting.SWbemLocator')
<COMObject WbemScripting.SWbemLocator>
>>> wmi_service= win32com.client.Dispatch('WbemScripting.SWbemLocator')
>>> wbem_service =  wmi_service.ConnectServer('.','root/cimv2')
>>> wbem_service
<COMObject <unknown>>
>>> items = wbem_service.ExecQuery('Select * from Win32_OperatingSystem')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<COMObject <unknown>>", line 3, in ExecQuery
  File "C:\Python27\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, u'SWbemServicesEx
', u'Generic failure ', None, 0, -2147217407), None)
>>>
(Mon Oct 29 11:40:07 2012.248587) : ***************************************
(Mon Oct 29 11:40:07 2012.248587) : Could not get pointer to binary resource for file:
(Mon Oct 29 11:40:07 2012.248587) : C:\Windows\system32\drivers\ndis.sys[MofResourceName](Mon Oct 29 11:40:07 2012.248587) : 
(Mon Oct 29 11:40:07 2012.248587) : ***************************************
(Mon Oct 29 11:40:07 2012.248587) : ***************************************
(Mon Oct 29 11:40:07 2012.248587) : Could not get pointer to binary resource for file:
(Mon Oct 29 11:40:07 2012.248587) : C:\Windows\system32\drivers\en-US\ndis.sys.mui[MofResourceName](Mon Oct 29 11:40:07 2012.248587) : 
(Mon Oct 29 11:40:07 2012.248587) : ***************************************
(Mon Oct 29 11:40:07 2012.248603) : ***************************************
(Mon Oct 29 11:40:07 2012.248603) : Could not get pointer to binary resource for file:
(Mon Oct 29 11:40:07 2012.248603) : C:\Windows\system32\DRIVERS\wmiacpi.sys[MofResource](Mon Oct 29 11:40:07 2012.248603) : 
(Mon Oct 29 11:40:07 2012.248603) : ***************************************
(Mon Oct 29 11:40:07 2012.248603) : ***************************************
(Mon Oct 29 11:40:07 2012.248603) : Could not get pointer to binary resource for file:
(Mon Oct 29 11:40:07 2012.248603) : C:\Windows\system32\DRIVERS\monitor.sys[MonitorWMI](Mon Oct 29 11:40:07 2012.248603) : 
(Mon Oct 29 11:40:07 2012.248603) : ***************************************