Windows Server系统性能计数器和WMI组件的修复

WMI是Windows管理规范的英文缩写。 WMI是微软基于Web的企业管理(WBEM)的实施 - 一种新的管理技术,让软件来监视和控制整个网络的管理资源。这种管理的资源包括硬盘驱动器,文件系统,操作系统设置,进程,服务,股票,注册表设置,网络组件,事件日志,用户,组等。WMI允许以及监视性能计数器。微软的应用程序,如Exchange和SQL Server内置的WMI。许多非微软的应用程序利用WMI和,因此他们可以被监测,以及使用高级主机监视器。WMI也是众多监控软件用来检测windows服务器各项参数和性能指标的依据和方法(WMI、SNMP、SSH、API和Agent)。

        WMI是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源,比如用户可以在远程计算机器上启动一个进程;设定一个在特定日期和时间运行的进程;远程启动计算机;获得本地或远程计算机的已安装程序列表;查询本地或远程计算机的Windows事件日志等等。

问题描述:

Windows Server系统性能计数器和WMI组件的修复_第1张图片

Windows Server系统性能计数器和WMI组件的修复_第2张图片

打开管理-性能 就会提示不能添加这些计数器
\memorry\Available Mbytes
\memorry\%committed bytes in use
\memorry\cache faults/sec
\memorry\cache faults/sec
\physicalDisk(*)\% idle time
\physicalDisk(*)\avg.disk queue length
\network interface(*)\bytes total/sec

问题分析:

问题原因------------------------------------------------------------------
性能监视器对应注册注册表损坏,无法正常使用。
简单的方法来解决:
以管理员身份打开"CMD",输入 lodctr /r  即可恢复。

WMI是英文Windows Management Instrumentation的简写,通过使用WMI,我们可以获取本地或远程服务器的性能参数和进程运行情况,以及大部分硬件信息,但前提是运行的用户要有足够的权限,如administrator组用户等。这也是做负载均衡所需要且比较方便快捷的途径。

使用时首先添加System.Management.dll,然后引用

using System.Management;

在web站点的web.config中添加如下配置

将域账户添加到Performance Monitor Users,使域账户具有远程访问性能计数器的权限。

Windows Server系统性能计数器和WMI组件的修复_第3张图片

2. 打开WMI权限设置 安全 标签

Windows Server系统性能计数器和WMI组件的修复_第4张图片

3. 选中CIMV2,添加 域账户 ,并选中 启用账户、远程启用、读取 权限项,这样域账户就可以远程访问WMI了。

Windows Server系统性能计数器和WMI组件的修复_第5张图片

 

解决方案有五:

1、在cmd下 用管理员身份打开,输入lodctr /R进行修复(本次修复解决采用这个)

Windows Server系统性能计数器和WMI组件的修复_第6张图片

在LR监控时提示“No object choose ”

在windows service 2010 服务器上打开自带性能监控器提示“性能监视器控制,不能添加这些计数器”

解决方法:在服务器上的命令行输入 lodctr /r

Lodctr
注册服务或设备驱动程序的新性能计数器名称和解释文本,同时保存并恢复计数器设置和解释文本。

语法
lodctr [//ComputerName] FileName [/s:FileName] [/r:FileName]

参数
[//ComputerName] filename 
注册初始化文件 FileName 中的性能计数器名称设置和解释文本,.如果不指定 ComputerName,在默认情况下 lodctr 将使用本地本计算机。 
/s:FileName 
将性能计数器注册表设置和解释文本存入 FileName 文件中。 
/r:filename 
恢复文件 FileName 中的性能计数器注册表设置和解释文本。
小心如果使用 lodctr /r 命令,则将利用在指定文件中定义的配置替换性能计数器注册表设置和解释文本,从而将其覆盖。 
要将当前的性能注册表设置和计数器解释文本保存到文件 perf backup1.txt 中,请键入:

lodctr /s:"perf backup1.txt" 

2、系统没有WMI服务,或网路适配器共享时提示WMI错误等均可使用(批处理方法)

使用方法:复制并保存为wmi.bat

@echo on
cd /d c:\temp
if not exist %windir%\system32\wbem goto TryInstall
cd /d %windir%\system32\wbem
net stop winmgmt
winmgmt /kill
if exist Rep_bak rd Rep_bak /s /q
rename Repository Rep_bak
for %%i in (*.dll) do RegSvr32 -s %%i
for %%i in (*.exe) do call :FixSrv %%i
for %%i in (*.mof,*.mfl) do Mofcomp %%i
net start winmgmt
goto End

:FixSrv
if /I (%1) == (wbemcntl.exe) goto SkipSrv
if /I (%1) == (wbemtest.exe) goto SkipSrv
if /I (%1) == (mofcomp.exe) goto SkipSrv
%1 /RegServer

:SkipSrv
goto End

:TryInstall
if not exist wmicore.exe goto End
wmicore /s
net start winmgmt
:End

3、主要是由于注册表中这个键的值错误导致(注册表修复方法)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]
不同的操作系统在这个键下的子键不同,中文简体对应004,英文对应009。

具体问题的解决方法为:
1、定位到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004],记录下Counter和Help中的最后一个值;
2、定位到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib],打开LastCounter,选择十进制并输入第一步中记录的值;
3、定位到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib],打开LastHelp,选择十进制,输入第一步中记录的Help的最后一个值;

4、WMI Rebuilder 是一个Windows Management Instrumentation服务重建工具,当您需要重建WMI存储库以修复您的 SCCM 环境时,可以使用这个工具来停止WMI服务并重新加载。(工具修复方法)

WMI服务重建工具|WMI RebuilderV1.0下载|好特下载 https://www.haote.com/xz/314304.html

5、系统性能监视器注册表丢失导致

处理办法:
1、找到正常机器的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib注册表,导出,然后再正常机器的注册表到异常的机器上导入即可;
2、使用微软exctrlst.exe工具修复,下载该工具(http://download.microsoft.com/do ... /exctrlst_setup.exe
)并安装,然后手工运行该工具;
选中有提示错误的相关项目,然后勾选上下面的enable即可
3、如果以上2种方法都不行,那就尝试下在cmd下,输入lodctr /R进行修复
Windows Server系统性能计数器和WMI组件的修复_第7张图片

 

知识拓展

WMI + Perfmon入门

如果您阅读有关脚本的书籍和文章,几乎都会提到 WMI。不过,在实际使用 WMI 时,如果忘记其内部构造方式,则会感到非常迷茫,而且 WMI 的构造方式对于它在 Windows PowerShell 中的工作方式极其重要。

        WMI 主要是一个组织类的系统,表示 Windows® 操作系统和其他基于 Windows 的硬件和软件产品的管理信息。类实际上就是对一些给定软件或硬件组件进程的属性和功能的抽象描述。例如,逻辑磁盘类可能描述具有一个序列号、一个固定的存储容量、一定的可用容量等内容的设备。同时,描述 Windows 服务的类可能指定该服务有一个名称、可以启动和停止,以及指定其当前状态等。

在 WMI 中,类表示 WMI 可以管理的所有内容。如果 WMI 没有可用于某些内容的类,则它无法管理该组件。Microsoft 在 msdn2.microsoft.com/aa394554.aspx 中记录了核心 Windows WMI 类;其他产品(如 Internet 信息服务、SQL Server™)分别记录了它们的 WMI 类。

由于存在特别多的类,因此 WMI 将它们组织到命名空间层次结构中。例如,包含核心Windows OS 类的命名空间称为 root/cimv2,而 Microsoft IIS 6.0 将其类存储在 root/MicrosoftIISv2中。方便的是,root/cimv2 命名空间是 WMI 的默认命名空间(由 Windows PowerShell 共享的设置),这使得它可以更容易地与这些核心类一起使用。

“实例”是一种实际存在的类。例如,如果您的计算机有两个逻辑磁盘,则会有Win32_LogicalDisk 类的两个实例。如果在您的计算机上运行 50 个服务,在 WMI 上将会看到Win32_Service 类的 50 个实例。使用 WMI 实际上就是请求 WMI 为您提供一个或多个实例,然后,要么检查这些实例的属性以发现您需要的管理信息,要么执行这些实例的方法来进行管理更改(例如启动或停止服务)。

WMI 使用客户端-服务器体系结构。Windows 2000 以后的每个 Windows 版本都内置了 WMI(后续版本扩展了可用类的数量),这意味着为您同时提供了 WMI 客户端和 WMI 服务器软件。在使用WMI 时,您实际上是向在您关注的计算机上运行的 WMI 服务发送请求。该 WMI 服务检索您指定的 WMI 实例,并将其返回给您以供使用。这就是 Windows PowerShell 的作用,它简化了请求实例、返回实例和使用实例的过程。

Windows Server系统性能计数器和WMI组件的修复_第8张图片

你可能感兴趣的:(Windows Server系统性能计数器和WMI组件的修复)