系统下载、安装、激活,就到系统天地来!

所在位置: 首页 — 系统文章 — winxp系统教程

wmi服务是什么?wmi服务常见问题及解决技巧!

作者:电脑软件 日期:2018-12-07

(WMI),中文名字叫Windows管理规范。从Windows 2000开始,WMI(Windows 管理规范)就内置于操作系统中,并且成为了Windows系统管理的重要组成部分。WMI不仅可以获取想要的计算机数据,而且还可以用于远程控制。最近很多勒索病毒都是由wmi服务入侵的。这时就需要wmi服务,那么,wmi服务有什么常见问题来?接下来,小编就来分享下wmi服务的常见问题及解决方法。

  

WMI是什么服务?

(WMI),中文名字叫Windows管理规范。从Windows 2000开始,WMI(Windows 管理规范)就内置于操作系统中,并且成为了Windows系统管理的重要组成部分。所以大家很容易就能见到它的,因为我们至少也应该是个Windows 2000的使用者了。下面我将详细介绍它的每个细节,让你从不认识它到喜欢上它。

 

WMI能做什么?

WMI不仅可以获取想要的计算机数据,而且还可以用于远程控制。远程控制计算机可是大家都喜欢的东西。很多远程监视控制类软件通常的做法是:在远程计算机上运行服务端后台程序,在本地计算机上运行一个客户器端控制程序,通过这二个程序的勾结来实现对计算机的远程控制。这种作法的缺点是十分明显的,当服务端程序关了,这种远程监控就无法实现了,因为没有内线了。而WMI实现的远程监视和控制完全不需要另外装什么服务端的东西,系统默认就将WMI服务给开了。具体说来,WMI的本领如下:

1、获取本地和远程计算机的硬件软件信息。

2、监视本地和远程计算机的软件和服务等运行状况。

3、控制本地和远程计算机的软件和服务运行。

4、高级应用。

 

一.  常见问题及解决方法 

1.  当通过WMI添加服务器、Microsoft .NET、Exchange服务器时,提示“验证失败。请确认用户名和密码”。 

解决方法: 请以<domainname><username>格式输入用户名 

注意: OpManger中对于本地WMI验证,不需要输入用户名和密码。 

 

2.  当以WMI模式监控Windows服务器时,内存利用率数据显示错误。 

解决方法: 

在WMI中,我们使用Win32_OperatingSystem获取Windows2003服务器的内存数据。在系统内存超过4GB时,则不能报告准确的信息。这是Windows 2003 SP1的一个问题。请参阅 http://support.microsoft.com/kb/906868/ 了解更多信息,并安装补丁。 

3.  如何重建WMI类? 

解决方法: 

MOF (受管理对象格式)文件是一个机制,通过它关于WMI类的信息进入WMI存储库。存储库中的类定义可能损坏,这种情况下, 重新编译MOF文件,用最初安装操作系统时的类定义将其复写和替换。 

在命令提示符执行以下命令: 

Windows 2003/XP 

* c:windowssystem32wbemMofcomp.exe c:windowssystem32wbemcimwin32.mof 

* c:windowssystem32wbemMofcomp.exe c:windowssystem32wbemcimwin32.mfl 

 

Windows 2000 

* c:winntsystem32wbemMofcomp.exe c:winntsystem32wbemcimwin32.mof 

* c:winntsystem32wbemMofcomp.exe c:winntsystem32wbemcimwin32.mfl 

 

如果提示未找到路径,请使用%windir% (Windows目录名)替换掉windows (如果系统是Windows 2003/XP)或 winnt(如果系统是windows 2000)。 

 

参考以下链接,了解更多信息 

http://www.microsoft.com/technet/scriptcenter/topics/help/wmi.mspx#ECIAC 

 

4.  当通过WMI模式监控Windows机器时,哪些服务应该在远程Windows计算机运行? 

以下服务应该在远程Windows机器运行: 

1) Remote Procedure Call (RPC)远程过程调用 -- 端口: 135 

2) Windows Management Instrumentation (WMI) Windows管理规范-- 端口: 445 

如果启用防火墙,应在防火墙开放这些端口。 

5.  当试图通过WMI模式添加服务器监视器时,提示“验证失败或访问被拒绝”。 

1) 域名和IP地址问题 

将 域名用户名作为用户名 

如: ADVENTNETadmin 

若用户名不是域名帐号,尝试使用主机名用户名。 

如:adminadmin 

如果不知道域名或用户名,请通过控制面板 --> 用户帐户确认。您可以查看系统中的用户以及用户所属的域和工作组。 

- 使用 wbemtest 找到当连接远程系统时出现的错误信息 

点击开始 --> 运行 --> wbemtest 

打开Windows管理规范测试器。点击连接按钮。在第一个文本框(rootdefault) ,输入<hostnamerootcimv2>输入用户名和密码。点击连接按钮,如果提示错误,请在主机名处输入IP地址。 

<ipaddressrootcimv2> 

如果正常,您只能通过IP地址访问机器。可能是因为<C:Windowssystem32driversetchosts>文件中的hosts文件中有错误项。移除文件中的错误项,尝试用主机名访问。 

2)DCOM设置 

 

在远程计算机: 

检查在远程计算机是否启用DCOM 

点击开始 --> 运行 --> 输入dcomcnfg,打开组件服务控制台。 

点击组件服务 --> 选择计算机 -->点击我的电脑(右击选择属性)。 

 

点击默认属性标签,检查属性是否配置如下: 

a) 选择"在此计算机上启用分布式COM" 

b)默认身份验证级别为连接 

c)默认模拟级别是模拟或标识 

如果以上属性有改动,请按以上进行配置,再检查在Applications Manager是否可以添加。 

 

然后要确认在注册表也作更改。 

开始 --> 运行 --> 输入regedit,打开注册表编辑器控制台。 

点击我的电脑 -> HKey_Local_Machine ->Software -> Microsoft -> OLE -> EnableDCOM, 设置为 'Y'。 

 

3)检查 COM安全 

点击开始--> 运行 --> 输入dcomcnfg,打开组件服务控制台。 

点击组件服务 --> 选择计算机 -->点击我的电脑(右击选择属性)。 

点击COM安全标签,检查属性是否配置如下: 

点击访问权限中的编辑默认值。然后检查SELF和SYSTEM是否启用远程访问。 

再点击我的电脑,点击DCOM配置,选择Windows Management Instrumentation。然后右击选择属性,检查身份验证级别是否设置为默认。 

 

4) WMI 安全 

在远程计算机: 

 

检查指定用户是否有足够的权限从远程计算机访问WMI。 

点击开始--> 运行 --> 输入,wmimgmt.msc打开Windows管理体系结构控制台。 

右键点击WMI控制,选择属性 -> 安全 -> 安全设置。 

然后检查用户所属的组是否具备全部权限,例如远程启用。如果不具备,选择检查框允许,并保存更改。 

然后尝试在Applications Manager添加服务器。 

如果您不想更改组的权限,请创建一个具备Guest 角色的用户。 

进入控制面板 --> 用户帐户 

添加一个具备Guest 角色的用户。然后进入Windows 管理控制台,点击添加按钮。在Windows 2000中,将列出最新添加的用户。您可以选择,添加并授予全部权限。 

在Windows XP中,在"Enter the Object names to select" 文本框中输入用户名machinenameusername。点击确定,将添加用户并授予权限,保存。 

再尝试添加服务器。 

 

5)验证用户权利 

在远程计算机 

点击开始 --> 运行 --> 输入 gpedit.msc. 打开组策略控制台。 

点击本地计算机策略 -- > 计算机配置 -- > Windows设置 -- > 安全设置 -- > 本地策略 -- > 用户权利指派 -- > 身份验证后模拟客户端。 

添加用户后,再尝试添加服务器。以WMI模式添加Windows监视器,要求用户具有管理员权限。 

 [!--empirenews.page--]

6) 本地安全设置 

如果远程机器是Windows XP计算机, 确保远程登录不强制使用GUEST 帐户。点击开始 --> 运行 --> 输入secpol.msc,打开本地安全设置控制台。点击本地策略 ->安全选项 ->网络访问:本地帐户的共享和安全模式,如果设置为仅来宾,则右键点击属性,更改为经典,然后重启计算机。 

7)对于Windows XP SP2 计算机,要配置防火墙,允许远程控制。方法:打开命令提示符,输入netsh firewall set service RemoteAdmin 。 

 

8)必要的Windows服务 

在远程计算机 

保证所有远程访问和WMI相关服务启用并运行。在Windows XP中,应该运行以下服务或允许用命令启动。 

COM+ Event System 

Remote Access Auto Connection Manager 

Remote Access Connection Manager 

Remote Procedure Call (RPC) 

Remote Procedure Call (RPC) Locator 

Remote Registry 

Server 

Windows Management Instrumentation 

Windows Management Instrumentation Driver Extensions 

WMI Performance Adapter 

Workstation 

 

9) 点击开始 --> 运行 --> 输入wmimgmt.msc ,打开Windows管理体系结构控制台。右键点击属性 ->  日志记录。在远程机器启用“详细”。 

6.  当我给一个服务器配置服务器监视器时,提示以下错误:“错误 # RPC服务器忙,无法完成操作” 

请参考以下链接,解决RPC 服务器的问题。 

http://support.microsoft.com/kb/177446 

http://support.microsoft.com/kb/905700 

7.  当通过WMI模式添加服务器监视器时,提示错误“RPC服务器不可用”。 

1) 尝试使用域名/用户名和只使用用户名添加服务器 

2) 检查从 Applications Manager机器是否能够ping远程windows计算机。尝试使用主机名和IP地址ping。 

3) 检查运行Applications Manager的机器和远程windows计算机之间是否有防火墙。 

如果有防火墙,请开放防火墙中的端口,以便进行监控。端口是135 (RPC) 和445 (WMI)。 

然后再尝试添加监视器。 

如果开放端口后,仍出现相同错误。远程计算机中的WMI可能使用随机端口回复WMI请求(即您从Applications Manage机器向远程服务器发出的请求)。但是您可以限制它只使用一定范围的端口。因此,必须开放这些端口。 

 

关于如何限制端口范围分配,请参考以下链接了解更多信息。 

 

http://support.microsoft.com/kb/300083 

 

应该在要监控的远程计算机上进行以上配置。 

4)检查RPC和WMI服务是否在远程计算机中运行。 

在远程计算机,点击开始--> 运行--> 输入services.msc。 

检查Remote Procedure Call 和 Windows Management Instrumentation服务是否在运行。 

若未运行,请启动这两项服务,然后尝试在Applications Manager中添加监视器。 

5) 使用wbemtest 找到连接远程系统时出现的错误信息。 

点击开始 --> 运行 --> wbemtest 

打开Windows管理规范测试器,点击连接按钮,在第一个文本框 (rootdefault) ,输入<hostnamerootcimv2>。 

输入用户名和密码,点击连接按钮。如果提示错误,请尝试在主机名处输入IP地址,即<ipaddressrootcimv2> 

如果正常,则您只能通过IP地址访问机器。可能是因为<C:Windowssystem32driversetchosts>文件中的hosts文件中有错误项。移除文件中的错误项,尝试用主机名访问。 

8.  <OpManager> WMI 监视器没有运行。始终显示“error # access denied”。 

原因 

登录认证不正确。 

解决方案 

执行以下步骤: 

1.  检验是否按上述提示提供了连接到设备的域管理员用户名和密码。如果设备在域中,则用户名应该类似于“域名管理员名”。 

2.  如果步骤 1 中所指定登录凭据正确,则使用资源监视器 -> 添加监视器 -> 基于 WMI 的监视器 -> 可用/已用磁盘空间(以 MB/GB 为单位)尝试将基于 WMI 的监视器(最好使用以 MB/GB 为单位的可用/已用空间图形)关联到 Exchange Server。此时应得到设备的可用驱动程序列表。 

3.  如果步骤 2 未通过,则尝试在 Windows 系统上启用 WMI、RPC 服务并再次尝试。 

4.  如果 DCOM 设置的配置不正确,则也可能发生此问题。 

 

可以在从命令提示符 

cmd> cd [OpManagerHome]confapplicationscripts 

cmd> cscript cpu.vbs [machinename] [domainname][username] [password] 

运行 vbs 脚本时通过检查确切错误消息查明这一点。 

5.  按照以下方式也可以配置 dcom 设置: 

 

从 Windows 2000服务器的运行提示符,键入 "dcomcnfg" 并展开组件服务 -> 计算机下的树。从图标栏点击我的电脑并选择默认属性。检查以下内容: 

 

启用此计算机上的分布式 COM。 

启用此计算机上的 COM Internet 服务。 

将默认模仿级别选择为"模拟"。 

如果需要,则还可编辑 COM 安全设置。 

6.  如果上述 4 个步骤都没有解决问题,则尝试按以下方式更改服务登录详细信息。 

 

转到 Windows 服务 UI。 

打开“ManageEngineOpManager”服务的“属性”对话框。 

转到“登录”页签。 

在“登录身份”选项中选择“此帐户”并输入有权访问 WMI 数据的域名用户名和密码。 

保存并重新启动OpManager。 

注意:此操作会使托盘图标和启动图片消失。 

二.  Wbemtest测试工具的使用 

 

1.  使用wbemtest工具测试。 

1. 在监视主机上 运行 >wbemtest,点击连接 

2. 名称空间中输入输入 被监视的iprootcimv2 

3. 输入用户名和密码 

4. 查看是否连接成功 

2.  常见错误及解决(ELA) 

访问决绝代码  原因  解决办法 

0x80070005  提供的工作站的登录名和密码是不正确的  检查输入的登录名和密码是否正确 

远程工作站的远程DCOM功能被禁止  检查是否远程DCOM是否开启。如果开启,那么用下面的方式打开: 选择 开始 > 运行 

1.  在输入框中输入dcomcnfg并点击确定 

2.  选择默认属性页签 

3.  选择打开这个机器的分布式的COM复选框 

4.  点击确定 

打开Windows XP主机的DCOM: 

1.  选择 开始 > 运行 

2.  在输入框中输入dcomcnfg并点击确定 

3.  点击组件服务 > 计算机 > 我的电脑 

4.  右键点击并选择属性 

5.  选择默认属性页签 

6.  选择打开这个机器的分布式的COM复选框 

7.  点击确定 

远程主机的用户帐号无效  打开命令行窗口执行下面的命令,检查用户帐号是否有效: 

net use <RemoteComputerName>C$ /u:<DomainNameUserName> "<password>" 

net use <RemoteComputerName>ADMIN$ /u:<DomainNameUserName> "<password>" 

 

如果这些命令显示任何错误,那么提供的目标主机的用户帐号就肯定是无效的。 

0x80041003  提供的用户名没有足够的权限执行扫描操作。有可能,用户不输入此主机的管理员组。  将用户组Move the user to the Administrator Group of the workstation or scan the machine using an administrator (preferably a Domain Administrator) account. 

0x800706ba  远程主机配置了防火墙。这样情况主要在Windows XP (SP 2)默认防火墙开启的情况下。  1.  关闭Windows XP机器的默认防火墙: 

1.  选择 开始 > 运行 

2.  输入Firewall.cpl并点击 确定 

3.  在通常页签中,点击关闭 

4.  点击确定 

2.  如果防火墙不能打开,通过执行下面的命令在远程主机上开启i远程管理: 

netsh firewall set service RemoteAdmin 

扫描之后,你可以用下面的命令关闭远程管理: 

netsh firewall set service RemoteAdmin disable 

0x80040154  1.  远程主机上面的WMI是无效的。这个情况在Windows NT上出现。如果WMI组件没有正确注册,这些错误可能在Windows的更高版本上出现。 

2.  WMI组件没有注册。 1.  在远程主机上安装WMI。可以从微软web网站下载。 

2.  执行下面的命令注册WMI DLL文件: 

winmgmt /RegServer 

0x80080005  这可能是运行WMI服务(winmgmt.exe) 的主机内部错误。主机上的最后的WMI仓库更新失败。  重新启动远程主机上的WMI服务: 

1.  选择 开始 > 运行 

2.  输入 Services.msc并点击确定 

3.  在打开的服务窗口中,选择Windows Management Instrumentation 服务 

4.  右键点击并选择重新启动 

更多错误代码,参考MSDN knowledge base 

 

3.  常见错误及解决(OpManager) 

•  80070005 - 访问被拒绝 

•  80041064 - 无法将用户凭据用于本地连接 

•  800706BA - RPC 服务器不可用 

•  80041010 - 无效类 

•  80041003 - 访问被拒绝 

•  80040154 - 没有注册 WMI 组件 

•  80080005 - WMI 服务中的内部执行故障 

•  8004106C - WMI 占用内存过多 

•  8004100E - 无效命名空间 

•  80041017 - 无效查询 

错误代码和解决办法解释如下: 

80070005 - 访问被拒绝 

原因 

在配置的登录凭据不正确时会发生此错误。 

解决方案 

•  如果设备在域中,则确保配置正确的域名、用户名和密码。如果设备在工作组中,则仅配置用户名和密码就可以了。例如,如果域名为 BigDom,用户名为 admin,则在用户名字段键入 BigDomadmin。 

•  对于具有从安装OpManager的计算机进行访问的权限的设备,不必指定用户名和密码。 

•  如果使用正确凭据之后,仍然遇到问题,则使用以下步骤进一步解决: 

o  通过打开命令提示符并执行以下命令检查用户帐户在目标计算机中是否有效: 

net use <monitored device name>ADMIN$ /u:"<域名用户名>" "<密码>" 

如果此命令抛出错误,则提供的用户帐户在目标计算机中无效。 

o  检查在监视的工作站中是否启用了“Remote DCOM”。如果没有启用,则按以下方式启用它: 

1.  选择开始 > 运行 

2.  在文本框中键入 dcomcnfg 并点击确定 

3.  选择默认属性选项卡 

4.  选择在此计算机上启用分布式 COM 复选框 

5.  点击确定 

[!--empirenews.page--]

在 Windows XP 主机中启用 DCOM 的步骤: 

1.  选择开始 > 运行 

2.  在文本框中键入 dcomcnfg 并点击确定 

3.  点击组件服务 > 计算机 > 我的电脑 

4.  右键点击并选择属性 

5.  选择默认属性选项卡 

6.  选择在此计算机上“启用分布式 COM”复选框 

7.  点击确定 

如果上述步骤不奏效,则尝试按以下方式更改服务登录详细信息: 

•  转到 Windows 服务 UI。 

•  打开“ManageEngineOpManager”服务的“属性”对话框。 

•  转到“登录”选项卡。 

•  在“登录身份”选项选择“此帐户”。 

•  在此配置具有远程计算机访问权限的帐户的用户名和密码。保存然后重新启动OpManager。 

•  再次试用上述 3 个步骤。 

注意:进行这些更改后,将找不到托盘图标和启动图片。 

 

80041064 - 无法将用户认证用于本地连接 

原因 

在指定用于监视运行OpManager的计算机的用户名和密码时遇到此错误。 

解决方案 

不要指定本地主机的用户名和密码。要解决该问题,请从设备快照页面中的“密码”链接移除配置的用户名和密码。 

800706BA - RPC 服务器不可用 

原因 

当没有运行 RPC 和 WMI 服务且不可对设备执行 ping 操作时会遇到此错误。 

解决方案 

•  检查设备是否已启动、在运行和可执行 ping 操作。 

•  检查 Remote Procedure Call(RPC) 和 Windows Management Instrumentation(WMI) 服务是否在运行。 

1.  选择开始 > 运行。 

2.  在文本框中键入“services.msc”并点击确定。 

3.  在列出的服务中,查看 RPC 和 WMI 服务的状态是否显示为已启动。 

4.  如果没有启动,则启动这些服务。 

•  在远程计算机上可能配置防火墙。启用默认 Windows 防火墙时,在 Windows XP(带有 SP 2)中很可能发生这类异常。禁用 Windows XP 计算机中默认防火墙的步骤如下: 

1.  选择开始 > 运行。 

2.  键入 Firewall.cpl 并点击确定。 

3.  在常规选项卡中,点击关闭。 

4.  点击确定。 

•  如果无法禁用防火墙,则通过在远程计算机上执行以下命令启用远程管理(用于管理员):“netsh firewall set service RemoteAdmin” 

•  防火墙可能阻塞 WMI 流量。要在防火墙中访问 WMI 流量,需要打开防火墙中的端口 445、135。 

80041010 - 无效类 

原因 

没有注册所需 WMI 类时会发生此错误。 

解决方案 

•  检查是否安装了所需应用程序。 

•  注册安装的应用程序的所有 WMI 类的步骤。运行以下命令: 

o  对于 Windows 2000,从所监视设备运行“winmgmt /resyncperf”命令。 

o  对于 Windows XP 和 2003,从所监视设备运行“wmiadap /f”命令。 

80041003 - 访问被拒绝 

原因 

当提供的用户名不具备执行操作的足够访问权限时会发生此错误。 

解决方案 

1.  可能此用户不属于此主机计算机的管理员组。 

2.  尝试将用户移动到工作站的管理员组。 

3.  试用管理员(最好是域管理员)帐户。 

80040154 - 没有注册 WMI 组件 

原因 

当远程 Windows 工作站中的 WMI 不可用时会遇到此错误。此问题在 Windows NT 中发生。如果 WMI 组件注册不正确,这类错误代码在较高版本的 Windows 中也可能发生。 

解决方案 

•  在远程工作站安装 WMI 核心。WMI 核心可从 Microsoft 网站下载。 

•  通过在命令提示符执行以下命令注册 WMI DLL 文件: 

 

winmgmt /RegServer 

•  通过下载以下 exe 为 Windows NT 安装 WMI: 

 

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=C174CFB1-EF67-471D-9277- 4C2B1014A31E 

80080005 - WMI 服务中的内部执行故障 

原因 

在主机计算机中运行的 WMI 服务 (winmgmt.exe) 中存在某些内部执行故障时会发生此错误。该工作站中 WMI 储存库的最后更新可能失败。 

解决方案 

重新启动远程工作站中的 WMI 服务: 

1.  选择开始 > 运行。 

2.  键入 Services.msc 并点击确定。 

3.  在打开的服务窗口中,选择 Windows Management Instrumentation 服务。 

4.  右键点击并选择重新启动 

8004106C - WMI 占用内存过多 

原因 

在 WMI 占用过多内存时会发生此错误。这可能由内存可用性低或 WMI 使用内存过多引起。 

解决方案 

•  WMI 占用内存过多。 

•  这可能由内存可用性低或 WMI 使用内存过多引起。 

•  尝试重新启动或重新安装 wmi 服务。 

8004100E - 无效命名空间 

原因 

命名空间编译器无效不是正常错误。可能没有正确安装使用命名空间的相关应用程序。 

解决方案 

•  尝试单独重新安装应用程序或 WMI 服务。 

•  利用日志与 http://support.opmanager.com 联系。 

80041017 - 无效查询 

原因 

“Query was not syntactically valid”不是正常错误。可能没有正确安装使用命名空间的相关应用程序。 

解决方案 

•  尝试单独重新安装应用程序或 WMI 服务。 

•  利用日志与支持人员联系。