Windows 在相同计算机上查询WMI时出现错误80041017。(Win32_性能格式化数据_性能_内存)

Windows 在相同计算机上查询WMI时出现错误80041017。(Win32_性能格式化数据_性能_内存),windows,vbscript,wmi,windows-7-x64,wmi-query,Windows,Vbscript,Wmi,Windows 7 X64,Wmi Query,为什么会出现错误: 代码:80041017 来源:(空) 在这一行: For Each oItem In colItems 在此VBScript中: strComputer = "." Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set cItems = oWMI.ExecQuery("Select

为什么会出现错误:

代码:80041017
来源:(空)

在这一行:

For Each oItem In colItems
在此VBScript中:

strComputer = "."

Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
           & strComputer & "\root\cimv2")
Set cItems = oWMI.ExecQuery("Select * from Win32_PerfFormattedData_PerfOS_Memory")
'wsh.echo cItems.Count

Display "Win32_PerfFormattedData_PerfOS_Memory", FillCol(cItems)

function FillCol(colItems)
  Dim oItem, oProp, s

  For Each oItem In colItems
    For Each oProp In oItem.Properties_
      s =  s & oProp.Name & vbcrlf
      's =  s & oProp.Name & vbtab & oProp.Value & vbcrlf
    Next 'oProp
    Exit For
  Next 'oItem

  FillCol = s
End Function 'FillCol

Sub Display(sTitle, s)
  'Display results in a scrollable window
  height = 600 : width = 800
  Set oIE = CreateObject("InternetExplorer.Application")
  With oIE
    .RegisterAsDropTarget = False
    .Toolbar = False : menubar = False : statusbar = False
    .Width = Width : .Height = Height
    .Navigate "about:blank"
    Do Until .ReadyState = 4 : WScript.Sleep 50 : Loop
    With .Document
      .Open
      .Write  "<xmp>" & s & "</xmp>"
      .Close
      .Title = sTitle
    End With
    .Visible = True
  End With 'oIE
End Sub
致:

两台64位工作站中只有一台具有相同的操作系统(Windows7,均具有当前更新)和相同的硬件规格。这些计算机几乎完全相同,只有一台产生错误

我已尝试修复损坏的WMI数据库:

但当我使用:

Win32_PrinterConfiguration
而不是:

Win32_PerfFormattedData_PerfOS_Memory
我没有错

发生了什么事?我需要做什么才能让脚本在导致错误的工作站上工作

EDIT1:我很确定这个错误实际上是由空返回值引起的。如果是这样,为什么RAM有空值?应该是这样的。对吧?

编辑2:请对要尝试或猜测的事情发表评论

EDIT3:WMI诊断工具()说明:

2894414:15:48(1)!!错误:报告WMI获取操作错误:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。118个错误!
28945 14:15:48(0)**-根/CIMV2,Win32_performattedData_Counters_HTTPServiceRequestQueues,0x0-。
28946 14:15:48(0)**MOF注册:“WMI信息不可用(外部应用程序或第三方WMI提供程序可能会出现这种情况)”
28947 14:15:48(0)**-根/CIMV2,Win32_PerfRawData_Counters_HTTPServiceRequestQueues,0x0-。
28948 14:15:48(0)**MOF注册:“WMI信息不可用(外部应用程序或第三方WMI提供程序可能会出现这种情况)”
28949 14:15:48(0)**-根/CIMV2,Win32_performattedData_Counters_HTTPServiceUrlGroups,0x0-。
28950 14:15:48(0)**MOF注册:“WMI信息不可用(外部应用程序或第三方WMI提供程序可能会出现这种情况)”
28951 14:15:48(0)**-根/CIMV2,Win32_PerfRawData_Counters_HTTPServiceUrlGroups,0x0-。
28952 14:15:48(0)**MOF注册:“WMI信息不可用(外部应用程序或第三方WMI提供商可能会出现这种情况)

……等等

29069 14:15:48(0)**-Root/CIMV2,Win32\u performatteddata\u PerfOS\u内存,0x0-。
29070 14:15:48(0)**MOF注册:“WMI信息不可用(外部应用程序或第三方WMI提供商可能会出现这种情况)

……等等

不过,我还不知道该怎么办

EDIT4:查看此修复程序:

请尝试以下故障排除建议以检查 结果:

Regsvr32%SystemRoot%\System32\wbem\wmidcprv.dll

cd/d%windir%\system32\wbem

对于(*.dll)中的%i,执行RegSvr32-s%i

对于(*.exe)中的%i,执行%i/RegServer

可能会出现Windows Management Instrumentation Tester窗口,如下所示: 是正常的,我们可以继续关闭它

如果不起作用,我还建议您运行以下命令 修复WMI命名空间:

净停止winmgmt

wmic/NAMESPACE:\root路径“\uuu NAMESPACE.name='wmi'”删除

mofcomp%windir%\system32\wbem\wmi.mof

净启动winmgmt

之后,请重新启动计算机以检查结果。如果 问题仍然存在,请尝试以下步骤:

  • 单击开始按钮、所有程序、附件

  • 右键单击“命令提示”,选择“以管理员身份运行”,接受UAC提示

  • 在命令提示下,键入以下命令并按Enter键。请每次键入一条命令

  • winmgmt/verifyrepository

    winmgmt/救助站

    问候,

    李国章

    发件人:
    重新加载性能计数器:

    cd %windir%\system32\
    lodctr /R
    cd %windir%\sysWOW64\
    lodctr /R
    
    可在此处找到:

    注意,上面的解决方案是我最后一次“解决”这个问题;然而,我首先从这个链接做了很多事情:


    不确定是我所做的事情的组合解决了它,还是我把4个命令作为我的答案解决了它。我只知道它现在正在工作

    欢迎来到WMI的不一致世界。听起来你对它有经验。你过去是怎么解决的?老实说,我从来没有找到一个解决方案,最后不得不重建有问题的PC,即使这样也不能保证它会工作。如果WMI决定它不喜欢硬件的某些方面,那么您就没有什么可以做的了。
    Win32_PerfFormattedData_PerfOS_Memory
    
    cd %windir%\system32\
    lodctr /R
    cd %windir%\sysWOW64\
    lodctr /R