深入 WIN2000 组册表 (3)
深入 WIN2000 组册表 (3) 测某个计算机管理Snap-In是否可用
尽管M i c r o s o f t提供了一组重要的M M C工具,但是为Windows 2000提供服务应用程序的供应商通常会提供一种能够集成到计算机管理控制台的管理工具,称为MMC Snap-In。在使用S n a p - I n时,常见的问题是由于不正确的安装导致无效的注册表条目,从而引起访问M M CS n a p - I n出错。下面的步骤介绍怎样处理这种情况:
1) 打开“开始”菜单并选择“运行”。单击“浏览”按钮开始浏览直到找到Wi n d o w s
2 0 0 0的根目录(通常是W I N N T )为止。进入S y s t e m目录并找到R e g e d t 3 2 . e x e,将其选入对话框并单击“确定”按钮。注册表编辑器启动,将所有的配置单元分别显示在不同的层叠子窗口中。
2) 选择“窗口”菜单项H K E Y _ L O C A L _ M A C H I N E,其子窗口显示。最大化该窗口以便于使用。
3) 使用窗口左边的树型控件定位到S O F T WA R E \ M i c r o s o f t \ M M C \ S n a p I n s子项。单击该子项选取它。
4) 在S n a p I n s子项中有一组子项。这些子项是COM CLSID(即Class ID,是C O M唯一的文本名称)值。如果你知道丢失的或者工作不正常的S n a p I n的C L S I D,那么只要简单地检查一下就可以确定C L S I D是否在列出的子项中。如果不知道S n a p I n的C L S I D,则应检查每个C L S I D的N a m e S t r i n g值直到发现为止。如果没有找到该条目,那么你就需要重新安装软件(至少重新安装其管理工具)。如果找到了该条目,那么接着你需要切换到H K E Y _ C L A S S E S _ R O O T窗口,搜索其C L S I D值,并查看它的I n P r o c S e r v e r值条目,确保Snap-In COM的D L L在指定的位置上。如果不在指定的位置,则应把S n a p - I n移动到指定位置或者将该条目改为D L L所在的位置。
修复丢失的组件服务元数据DLL
组件服务(Component Service)是Windows 2000新C O M+系统的名称。它为C O M服务器提供了很多强大的新功能,但是它必须建立在已有C O M的配合下,而C O M又非常依赖注册表。如果一个或两个重要的C O M注册表条目被破坏或者不正确,那么C O M+就可能会发生故障。下面介绍在哪里能检查并修复这种致命的问题:
1) 打开“开始”菜单并选择“运行”。单击“浏览”按钮开始浏览直到找到Wi n d o w s
2 0 0 0的根目录(通常是W I N N T )为止。进入S y s t e m目录并找到R e g e d t 3 2 . e x e,将其选入对话框并单击“确定”按钮。注册表编辑器启动,将所有的配置单元分别显示在不同的层叠子窗口中。
2) 选择“窗口”菜单项H K E Y _ C L A S S E S _ R O O T,其子窗口显示。最大化该窗口以便于使用。
3) 使用窗口左边的树型控件定位到C o m P l u s M e t a D a t a S e r v i c e s子项。单击该子项选取它。
4) 记下C L S I D子项的值(该值没有名称)。在H K C R (即H K E Y _ C L A S S E S _ R O O T—译者注)中搜索记下的值。当发现该条目时,对其进行检查,确保该C O M服务器的D L L在指定的位置。如果不在指定的位置,则需要重新安装C O M+或者先确定D L L的位置,然后移动D L L或更改注册表条目。
确定事件为何没有被记录的原因
尽管没有在文档中大肆宣扬,但是Windows 2000功能强大的新事件系统实际上是基于
C O M+技术的。这也就意味着它依赖于一组关键的注册表条目,这样在Windows 2000启动时C O M服务器才能被找到并启动。如果Windows 2000事件系统无法正确获取事件,那么可以肯定某一个C O M服务器在注册表中的条目被破坏了。要查看C O M服务器条目,可按照下面的步骤进行:
1) 打开“开始”菜单并选择“运行”。单击“浏览”按钮开始浏览直到找到Wi n d o w s2 0 0 0的根目录(通常是W I N N T )为止。进入S y s t e m目录并找到R e g e d t 3 2 . e x e,将其选入对话框并单击“确定”按钮。注册表编辑器启动,将所有的配置单元分别显示在不同的层叠子窗口中。
2) 选择“窗口”菜单项H K E Y _ L O C A L _ M A C H I N E,其子窗口显示。最大化该窗口以便于使用。
3) 使用窗口左边的树型控件定位到S O F T WA R E \ M i c r o s o f t \ E v e n t S y s t e m \ . . . \ E v e n t C l a s s e s子项。单击该子项选取它。
4) 单击E v e n t C l a s s e s项中的每一个子项。查看其描述,直到找到你丢失的那个事件为止。接着,在H K C R (即H K E Y _ C L A S S E S _ R O O T—译者注)中搜索其C L S I D (该子项的值)。确保C O M服务器所使用的D L L在正确的位置。如果不在正确的位置,则修改注册表条目或移动D L L。
修改Windows 2000性能库的缺省事件日志功能设置
除了使用系统性能监视器之外,你还可以通过事件查看器跟踪系统问题。你可以通过修改注册表来控制性能库(系统性能监视器的主要代码)向事件查看器所使用的事件日志发送事件的方式:
1) 打开“开始”菜单并选择“运行”。单击“浏览”按钮开始浏览直到找到Wi n d o w s2 0 0 0的根目录(通常是W I N N T )为止。进入S y s t e m目录并找到R e g e d t 3 2 . e x e,将其选入对话框并单击“确定”按钮。注册表编辑器启动,将所有的配置单元分别显示在不同的层叠子窗口中。
2) 选择“窗口”菜单项H K E Y _ L O C A L _ M A C H I N E,其子窗口显示。最大化该窗口以便于使用。
3) 使用窗口左边的树型控件定位到S O F T WA R E \ M i c r o s o f t \ Wi n d o w s N T \C u r r e n t Ve r s i o n \ P e r f l i b子项。单击该子项选取它。
4) 双击E v e n t L o g L e v e l的值打开“D Wo r d编辑器”D Word Editor,你可以将它的值设置为表3 - 1所示的四个值中的一个。
提示E v e n t L o g L e v e l条目可能不存在。如果不存在,你可以使用“编辑” |“添加值”
菜单项创建它。
警告: 这个事件记录注册表条目只影响性能库,而不影响系统性能监视器。本章前面
的直接解决方案“确定事件为何没有被记录的原因”影响系统性能监视器工具的显
示,它必须报告自己的错误。
表3-1 性能库工具的E v e n t L o g L e v e l值
值功能
0 不记录来自性能库的事件
1 只记录错误,这是缺省设置
2 记录错误和警告
3 错误、警告、信息,以及成功/失败都记录
在系统性能监视器中允许使用UNICODE进程标题名
Windows 2000支持U N I C O D E字符,但是会导致某些应用程序的性能受到影响。因此,通常禁止使用U N I C O D E,而只允许使用A N S I字符。缺省时,系统性能监视器的这一特性是关闭的。你可以按照下面的步骤更改注册表,启用系统性能监视器对U N I C O D E的支持:
1) 打开“开始”菜单并选择“运行”。单击“浏览”按钮开始浏览直到找到Wi n d o w s2 0 0 0的根目录(通常是W I N N T )为止。进入S y s t e m目录并找到R e g e d t 3 2 . e x e,将其选入对话框并单击“确定”按钮。注册表编辑器启动,将所有的配置单元分别显示在不同的层叠子窗口中。
2) 选择“窗口”菜单项H K E Y _ L O C A L _ M A C H I N E,其子窗口显示。最大化该窗口以便于使用。
3) 使用窗口左边的树型控件定位到S O F T WA R E \ M i c r o s o f t \ WindowsNT\ CurrentVe r s i o n \P e r f l i b子项。单击该子项选取它。
4) 双击值C o l l e c t U n i c o d e P r o c e s s N a m e s,在D Wo r d编辑器中打开它。缺省值为0,表示禁止该特性。将C o l l e c t U n i c o d e P r o c e s s N a m e s设置为1,可以允许在系统性能监视器的进程标题中使用U N I C O D E。
提示:C o l l e c t U n i c o d e P r o c e s s N a m e s可能不存在。如果不存在,则可以试用“编辑” |“添加值”菜单项来创建它。