重启 WMI 服务。

重启 WMI 服务。

通常 WMI 服务(winmgmt)总是运行的;任何时候当计算机启动的时候它也启动,并直到计算机关闭的时候才关闭。如果该服务意外地停止了,可以在命令行键入 net start winmgmt 重启。除此之外,每次使用基于 WMI 的工具(例如 Wbemtest)或脚本连接 WMI namespace 的时候,该服务也会自动重启。通常在 WMI 服务停止的情况下运行一段使用 WMI 的脚本也会使其自动重启。

如果遇到关于 WMI 服务的故障,您也许需要手工停止并重启该服务。请按照以下步骤操作:

  1. 首先,启用 WMI 的“详细的日志记录”选项;这将在 WMI 错误日志中提供更加详细的信息,可能有助于故障的诊断。可以配置以下注册表值来启用“详细的日志记录”:

    1. 设置 HKLM\Software\Microsoft\WBEM\CIMOM\Logging为 2

    2. 设置 HKLM\Software\Microsoft\WBEM\CIMOM\Logging file Max Size 为 4000000

  2. 停止 WMI 服务。众所周知,WMI 服务名为“winmgmt”。可以通过执行以下命令来停止该服务:
    winmgmt /kill 
    如果正在运行 Windows XP 或 Windows Server 2003,WMI 服务运行在一个名为 Svchost 的进程之内;该进程还包含运行在同一帐户下的其他服务。除此之外,您还可能看到计算机上运行着多个 Svchost 实例。不要尝试停止 Svchost 本身;相反,请使用以下两个命令来停止 WMI 服务:winmgmt /kill 或 net stop winmgmt

  3. 如果步骤 2 成功,请跳过该步骤,直接进入步骤 4。如果步骤 2 没能成功停止 winmgmt 服务,请重启计算机然后进入步骤 4。

  4. 再次运行脚本。如果脚本运行失败,您可能需要重建 WMI Repository。

重建存储库。

WMI Repository 是 WMI 提供者创建的类定义的集中存储位置,它位于 %systemDrive%\%windir%\system32\wbem\Repository 文件夹。如果感觉存储库已经损坏,您应该重建它。注意:这么做可能会导致存储库中的 WMI 信息丢失。您可能需要手工恢复这些信息,方法是运行可以将信息放入存储库的特定应用程序。要重建存储库,请按以下步骤操作:

  1. 停止 WMI 服务。

  2. 在命令行键入以下命令:

    cd /d %windir%\system32\wbem

    rename Repository Rep_bak

  3. 这个命令将会重命名包含 WMI Repository 的文件。重命名文件之后,操作系统将无法找到存储库。在这种情况下,Windows 会在用户下次访问 WMI 的时候尝试重建存储库。如果 AutoRecover(自动恢复)机制失败,您可以尝试手工重建存储库。

    通过 WMI AutoRecover 机制重建存储库:

    • 建立一个到 Root\Default 的 WMI 连接;可以通过运行一段脚本或者类似 Wbemtest.exe 的基于 WMI 的工具做到这一点。如果连接成功,存储库就会被重建。如果连接失败,请尝试手工重建存储库。

    手工重建 WMI 存储库:

    • 想要手工重建存储库,应该首先编辑一个批处理文件,该文件将会向存储库补充信息。注册表键HKLM\Software\Microsoft\WBEM\CIMOM\Autorecover MOFs 包含一个 WMI(或操作系统) 安装时的 Managed Object Format 文件(MOF 文件)列表。想要重建存储库,请将注册表值中列出的文件名复制到一个名为 WMI_Recover.bat 的批处理文件;确保包含了扩展名为 .MOF 和 .MFL 的文件。(MFL 文件中包含了类、属性和方法的本地化描述。)
      在记事本中,这个批处理文件应该象下面这样:

      C:\WINDOWS\system32\WBEM\cimwin32.mof
      C:\WINDOWS\system32\WBEM\cimwin32.mfl
      C:\WINDOWS\system32\WBEM\system.mof
      C:\WINDOWS\system32\WBEM\wmipcima.mof
      C:\WINDOWS\system32\WBEM\wmipcima.mfl
      
      

    • 在批处理文件的每行开头添加 Mofcomp 命令。Mofcomp.exe 是一个操作系统工具,用于编译 MOF 文件,并将文件中包含的信息添加到 WMI 存储库中。例如,您的批处理文件可能象下面这样:

      Mofcomp C:\WINDOWS\system32\WBEM\cimwin32.mof
      Mofcomp C:\WINDOWS\system32\WBEM\cimwin32.mfl
      Mofcomp C:\WINDOWS\system32\WBEM\system.mof
      Mofcomp C:\WINDOWS\system32\WBEM\wmipcima.mof
      Mofcomp C:\WINDOWS\system32\WBEM\wmipcima.mfl
      
      

    • 运行这个批处理文件。

    • 您也可以使用以下命令编译所有的 MOF 和 MFL 文件:

      cd /d %windir%\system32\wbem

      for %i in (*.mof,*.mfl) do Mofcomp %i

    • 命令完成之后,请检查 .\Logs\Mofcomp.log,查看是否有编译错误发生。

  4. 再次运行脚本。

重新注册 WMI 组件

如果到 root\default 的连接仍然失败,无法被正确注册的 WMI 组件可能是导致故障的原因。WMI 使用的 .DLL 和 .EXE 文件位于 %windir%\system32\wbem。您也许需要重新注册该目录内的所有 .DLL 和 .EXE 文件。如果运行在 64 位的系统之上,您可能还需要检查位于 %windir%\sysWOW64\wbem 的 .DLL 和 .EXE 文件。

  1. 要重新注册 WMI 组件,请在命令提示行运行以下命令:

    cd /d %windir%\system32\wbem

    for %i in (*.dll) do RegSvr32 -s %i

    for %i in (*.exe) do %i /RegServer

  2. 再次运行脚本。

重新安装操作系统

如果仍然无法连接到 root\default,您需要重新安装操作系统。重新安装 Windows,然后尝试再次运行脚本。

联系 Microsoft 产品支持服务

如果 WMI 仍然无法正常工作,您需要联系 Microsoft 产品支持服务(PSS)。更多信息,请访问:http://support.microsoft.com/default.aspx.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值