http://support.microsoft.com/kb/300956
重要此部分、方法或任务包含告诉您如何修改注册表的步骤。但是,如果不正确地修改了注册表,可能会出现严重问题。因此,请确保仔细遵循这些步骤。为增加保护,请您对其进行修改之前备份注册表。然后,可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756
如何在 Windows XP 中备份和还原注册表
当使用系统监视器工具时,某些计数器可能丢失或不包含计数器数据。
一组基本的性能计数器库可能会损坏,可能需要重新生成。
此外,您可能需要重新生成的任何自定义 (创建的.NET Framework 应用程序) 计数器或任何可扩展计数器。
如果某些可扩展计数器损坏的注册表中,或者某些 Windows 管理规范 WMI 基于程序修改注册表,可能会发生此行为。
重新生成基本的性能计数器
可扩展计数器信息存储在两个以下位置:- 下面的注册表子项:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\009
- %Systemroot%\System32\Perfc009.dat 文件和 %Systemroot%\System32\Perfh009.dat 文件
- 展开Perfc009.dat文件和Perfh009.dat文件。这些文件位于 Windows 安装光盘上。压缩的文件位于驱动器号: \i386\perfc009.da_,并在驱动器号: \i386\perfh009.da_。替换 %Systemroot%\System32 文件夹中的文件。
- 启动注册表编辑器,然后在注册表中找到以下项:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib
- 在注册表中,将最后一个计数器的值更改为1846年(十进制),并帮助最后一个值更改为1847年(十进制)。
- 找到下面的注册表项,以搜索具有 Performancesubkey 的服务:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
- 从性能子项 (如果它们存在) 中删除下列值:
- 第一个计数器
- 第一个帮助
- 上一次计数器
- 上一次的帮助
注意删除注册表中的性能子项的值可能会导致任何已安装的.NET Framework 应用程序无法工作在启动下一次。如果发生这种情况,使用lodctr /R命令中的"重新添加可扩展计数器"部分,以重新生成性能计数器。如果您继续启动.NET Framework 应用程序时遇到问题,请参阅本文中的"重新安装的任何自定义.NET Framework 程序集的性能计数器"一节。
重新添加可扩展计数器
您必须重新添加可扩展计数器从服务列表。 执行此操作之前,必须确定用于加载计数器的.ini 文件:- 打开命令提示符窗口。
- 在命令提示符下,键入cd %Systemroot%\System32,然后按 ENTER。
- 在命令提示符下,键入findstr 名 *.ini,然后按 ENTER。
- 请注意列表中的每个驱动的.ini 文件的名称。
- 在命令提示符处,键入下面的命令,然后按 ENTER 键:
lodctr <inifile>注意 在此命令中, <inifile></inifile>表示要重新加载的驱动程序的.ini 文件的名称。例如,如果您想要重新加载 ASP 驱动程序,您在步骤 4 中记下的列表将显示 Axperf.ini 是 ASP 驱动程序 (axperf.ini:drivername=ASP) 的.ini 文件。因此,若要重新加载 ASP 驱动程序,请在命令提示符下,键入lodctr axperf.ini,然后按 ENTER 键。
- 为列表中的每个.ini 文件重复步骤 5。
- 重新启动计算机。
cd\windows\system32
lodctr /R
注释
- /R 是大写形式。若要成功执行此命令的计算机上,您必须具有管理权限。
- 在计算机上运行 32 位版本的 Windows XP, Lodctr /r: <filename>文件名命令是性能计数器注册表字符串和信息使用恢复的文件名称的标准方法。
注释
- 如果您正在运行群集或数据中心的产品,您必须故障转移节点以刷新计数器列表。您必须执行此操作后执行的基本计数器和可扩展计数器的"添加可扩展计数器"下的步骤。
- 在正在运行的应用程序中添加他们自己的性能计数器,如 Microsoft Exchange 或 SQL Server 的系统上用于加载性能计数器的.ini 文件不可能位于 %Systemroot%\System32。通常可以在应用程序文件夹结构下找到这些.ini 文件。
- 如果使用前面的步骤时,您会收到有关性能库的错误消息,可能需要卸载并重新加载 IIS 性能动态链接库 (Dll)。有关如何执行此操作的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
267831 当加载性能计数器时记录事件 ID 2003 警告消息
- 如果您继续启动.NET Framework 应用程序时遇到问题,请参阅"重新安装的任何自定义.NET Framework 程序集的性能计数器"部分。
重新安装的任何自定义.NET Framework 程序集的性能计数器
如果继续,则在执行此处列出的步骤后,启动.NET Framework 应用程序时遇到问题,您可能需要重新生成自定义.NET Framework 应用程序的性能计数器。 若要执行此操作,请使用"/ 我".NET Framework 安装程序工具 (Installutil.exe) 中的选项。 您必须知道创建性能计数器的 DLL 文件的文件名。示例
如果您按照这些步骤并从已安装的 Microsoft 系统中心操作管理器 2007系统上安装的所有服务的注册表中删除计数器,您可能损坏管理服务器。 这是因为可扩展计数器 INI 文件中的窗体中未提供用于配置服务、 SDK 服务和数据库编写模块的计数器。 相反,它们是在安装时注册。 因此,当您尝试启动系统中心操作管理器 2007年,您可能会收到一条错误消息类似于以下,因为缺少的性能计数器:
事件类型: 错误
事件来源: OpsMgr SDK 服务
事件类别: 无
事件 ID: 26380
日期的日期:
时间:时间
用户: 不适用
计算机: MOM
说明: 由于未处理的异常系统中心操作管理器 SDK 服务失败。
若要解决此问题,系统中心操作管理器 2007年中的,必须重新安装创建性能计数器的.NET Framework 程序集。 若要执行此操作,用.NET Framework 安装程序工具 (Installutil.exe) /i 选项重新安装下列程序集:
- Microsoft.Mom.ConfigService.dll
- Microsoft.Mom.Sdk.ServiceDataLayer.dll
- Microsoft.Mom.DatabaseWriteModules.dll
- Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll
InstallUtil Microsoft.Mom.ConfigService.dll /i
InstallUtil Microsoft.Mom.Sdk.ServiceDataLayer.dll /i
InstallUtil Microsoft.Mom.DatabaseWriteModules.dll /i
InstallUtil Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll /i
注意
要成功地执行这些命令的计算机上,您必须具有管理权限。
InstallUtil Microsoft.Mom.Sdk.ServiceDataLayer.dll /i
InstallUtil Microsoft.Mom.DatabaseWriteModules.dll /i
InstallUtil Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll /i