WMI脚本失败,出现错误0x80041017
问题描述:
我有一个非常简单的WMI测试脚本,我在服务器上本地运行诊断问题,我正在获取WMI某些数据。WMI脚本失败,出现错误0x80041017
实质上,全部我在本机上运行的WMI查询(本地)失败,错误代码为0x80041017
。
Option Explicit
Dim WmiQuery
WmiQuery = "SELECT * FROM Win32_Processor"
Dim objSWbemLocator
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Dim objWMIService
Set objWMIService = objSWbemLocator.ConnectServer("localhost", "root\cimv2")
Dim results
Set results = objWMIService.ExecQuery (WmiQuery)
Dim row
For Each row in results
Next
我甚至想查看的任何属性还没有,但第16行,这是For Each row in results
线失败。
这里是在一个控制台上运行它的输出:
c:\test>cscript test.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
c:\test\test.vbs(16, 1) (null): 0x80041017
奔跑穿过WBEMTEST该查询给出的说明“无效查询”,即使相同的查询在其他服务器上运行。是什么东西没有在WMI中注册?
答
我认为这可能与您如何获取WMI对象有关。
如何:
Option Explicit
Dim wmi,col,itm
Set wmi = GetObject("winmgmts:\\.\root\cimv2")
Set col = wmi.ExecQuery("Select * from Win32_Processor")
For Each itm in col
WScript.Echo itm.Name
Next
Set wmi = Nothing
Set col = Nothing
WScript.Quit
似乎为我工作...不要以为你所需要的所有WBemLocator废话...
什么本质上错了你的脚本。用['WBEMTest'](http://technet.microsoft.com/en-us/library/ee692770.aspx)和/或['WMIDiag'](http://blogs.technet.com/b/)检查WMI askperf /存档/ 2012/02/03/wmidiag-2-1-IS-here.aspx)。 –
尝试[重建WMI存储库](http://blogs.technet.com/b/askperf/archive/2009/04/13/wmi-rebuilding-the-wmi-repository.aspx) – RRUZ