【问题标题】:WMI namespace root\cimv2 not available on Win2k?WMI 命名空间 root\cimv2 在 Win2k 上不可用?
【发布时间】:2010-09-09 16:08:05
【问题描述】:

我正在尝试在 Win2k SP4 上运行以下 VBScript 代码:

strComputer = "."    
Set oWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

它在 XP 和 Win7 上运行没有问题,但在这个 2k 盒子上我得到以下错误:

C:\test_wmi.vbs(3, 1) (null): 0x8004100E

错误描述是:找不到指定的命名空间。

当我在 root 上查询命名空间时,使用以下代码:

strComputer = "."

Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root")
Set colNameSpaces = objSwbemServices.InstancesOf("__NAMESPACE")

For Each objNameSpace In colNameSpaces
 Wscript.Echo objNameSpace.Name
Next

我明白了:

DEFAULT
SECURITY
WMI
directory
aspnet

据我所知,CIMV2 命名空间应该在那里。有什么想法???

谢谢!

约克。

【问题讨论】:

    标签: windows vbscript wmi windows-2000


    【解决方案1】:

    我使用的是 Windows Server 2003 Service Pack 2,而 yorch 的解决方案对我不起作用。最后我找到了这个页面,并按照 Server 2003 的说明进行操作:

    http://www.djordjepejic.com/kb68/index.php/article/winmgmt-could-not-initialize-the-core-parts-solved-even/

    对于 Windows Server 2003 使用以下命令检测和修复损坏的 WMI 存储库:

    rundll32 wbemupgd, RepairWMISetup

    【讨论】:

      【解决方案2】:

      是的,它应该在那里。有一个名为 wmidiag.vbs 的工具可以帮助您诊断 WMI 问题,但在使用它之前,请尝试观看一些解释如何使用它的“网络广播”(herehere

      【讨论】:

      • 谢谢,非常有趣的网络广播和一个非常方便的工具,但是当我运行 WMIDiag 工具时,我得到了相同的响应(找不到指定的命名空间)并且没有建议的解决方案。
      【解决方案3】:

      最后,对我有用的是重建 WMI 存储库。这就是我所做的:

      • 停止 WMI 服务 (net stop winmgmt)
      • 转到 %windows%/system32/wbem(在我的 win2k、winnt 中,在 XP 上是 windows)
      • 重命名或删除存储库目录
      • 再次启动 WMI 服务(net start winmgmt)

      此外,此方法可能会有所帮助(将 WMI 重新安装到注册表中):

      winmgmt /clearadap
      winmgmt /kill
      winmgmt /unregserver
      winmgmt /regserver
      winmgmt /resyncperf
      

      感谢 Uros 的帮助,网络广播和工具都非常有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-09
        • 2012-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-11
        • 1970-01-01
        相关资源
        最近更新 更多