Board logo

标题: [技术文章] 注册表 ControlSet001、ControlSet002以及CurrentControlSet 的区别 [打印本页]

作者: shillan    时间: 2010-7-20 23:40     标题: 注册表 ControlSet001、ControlSet002以及CurrentControlSet 的区别

位置:
hkey_local_machine\system\controlset001
hkey_local_machine\system\controlset002
hkey_local_machine\system\currentcontrolset

1.先说一下controlset几个控件组之间的关系。
在注册表hklm\system注册表项中包括用于windows启动的三个控件组(额外还可能存在一个备份控件组),在初始状态下,它们分别是controlset001、 controlset002以及currentcontrolset。这些控件组中包含了操作系统配置的信息,比如服务、驱动、系统控制、枚举信息等等。
默认情况下,controlset001是系统真实的配置信息,但是为了避免序号混乱,windows启动时会从controlset001复制一份副 本,作为操作系统当前的配置信息,也就是currentcontrolset。我们对于计算机配置所作的修改都是直接写入到 currentcontrolset,在修改currentcontrolset中,windows会用currentcontrolset的内容覆盖掉controlset001,以 保证这两个控件组一致。
当操作系统每成功启动一次(指成功登录),它都将controlset001中的数据复制到 controlset002中。这样,controlset002就成了“最近一次成功启动的配置信息”(很熟悉吧?在启动windows前按下f8所调 出的菜单中有这个选项)。所以我们一般系统注册表中都只是有这三个控件组,并且序号都是current、001和002。(此后均用简称)
但是,这个顺序和数目不是一成不变的,改变就发生在使用过“最近一次的正确配置”之后。这个时候,系统会把002当作系统真实的配置信息,而001这个存在问题的控件组会被备份封存起来。系统启动时会从002复制副本到current,启动成功后又会把002和current的信息复制一份到一个新的控件组作为新的“最近一次的正确配置”,也就是003。这个时候系统就存在4个控件组:current、002、003和备份的001,这里的001是一个存在问题的组,除非我们想把系统恢复到上次使用“最近一次正确配置”之前的状态,否则001的内容将不再被使用。
  hklm\system注册表项中还有一个select的子项,其中有几个整数键,分别是:
“current”数据项目表示 windows xp 在这次启动过程中使用的控件组。
“default”数据项目表示 windows xp 在下次启动时将使用的控件组,它与这次启动使用的控件组相同。
“lastknowngood ”数据项目表示您在启动过程中选择“最近一次的正确配置”时 windows xp 将使用的控件组。
“failed”数据项表示 windows xp 在其中保存失败启动产生的数据的控件组。 此控件组在用户第一次调用“最近一次的正确配置”选项之前并不实际存在。
对应上面,系统默认时其顺序是:001、001、002、无;
第一次使用“lastknowngood”后:002、002、003、001
第二次使用“lastknowngood”后:003、003、004、002(之前的备份001被002覆盖掉,001组消失)
第三次使用“lastknowngood”后:004、004、001、003(002被003覆盖,而当004要生成新的“lastknowngood”时,001正好可用,于是001重生,002消失)

依此类推,第四次1、1、2、4,第五次2、2、3、1…………

注意:currentcontrolset与controlset001始终保持一致的,向cuttent里写入某项,同样001里也会立即或者说同时产生这项。。。

2,删除系统服务的方法

方法一: 手工删除,删除hklm/system/currentcontrolset/services 下对应的键值。

方法二:在命令行输入 sc delete 服务名称。

3,注册表legacy等项目删除方法

卸载 legacy_*等项目无法删除,原因一般是权限没有设置造成的因为在这些键下的删除权限只有system即系统,这种超强保护的注册表项怎样删除呢,就需要对权限进行设置,方法如下(以legacy_*为例,但应用不仅限于此):
1.右键选择要删除的键(注册表中类似文件夹图标的东东都叫键,旁边一项一项有白色方块的叫项目,项目后面的数值或文字叫值),在上下文菜单中选择权限。
2.在对话框中看到组或用户名称,如果有我们需要的名称就直接单击名称在下面的权限中设置,如果要删除就选择允许完全控制,即把允许下面的完全控制钩选,并确定。如果没有,请执行下述步骤。
3.没有需要设置的用户请单击添加。
4.在新的选择用户或组对话框中单击高级。
5.拉长的对话框中单击立即查找,在下面的listview列表中查找到需要设置的用户,单击确定,这时选择的用户出现在输入对象名称来选择中,确定。
6.选择用户对话框自动关闭,原legacy_*的权限对话框出现在前台,按照上述方法,选择新添加的用户,并设置为完全控制,确定。
7.删除注册表项。

转自:http://www.53322.com/thread-30792-1-1.html
作者: 灵动美人    时间: 2010-7-23 21:27

current mode有斜率补偿
作者: 泉水边的木槿花    时间: 2010-7-23 21:27

在vista下关闭dep按照网上的答案输入bcdedit.exe/set current nx alwaysoff结果显示:c:\users\mm bcdedit.exe/set{current}nx alwaysoff无法打开启动配置数据存储拒绝访问然后我又指定路径显示:不是内部或外部命令,也不是可运行的程序或批处理文件哪位高手给我讲下急用万分感谢…




欢迎光临 逐梦论坛 (http://temp2023.zhumeng.org/) Powered by Discuz! 7.2