admin 管理员组

文章数量: 887021

  上一篇我们介绍了如何使用dism命令对尚未安装系统中的Windows功能进行操作,这样可以在安装系统前就把我们需要的功能开启,微软提供这样的功能真的非常人性化。但有的时候你可能会有更进一步的需求,比如让系统安装完第一次进入桌面就运行一个我们自己的程序,或者对操作系统的服务启动状态进行定制,这样又该怎么做呢?这一篇我们就开始讲如何修改一个尚未安装的Win7系统的注册表内容。

【开始处理】

  像之前一样,如果需要操作一个尚未安装系统的注册表,我们一样是需要将镜像挂载出来。挂载方法见第二篇文章(几篇文章由于是分开写的,所以每次都挂载一次,如果是你自己操作,可以连续起来操作,而只需要挂载和卸载一次,不用重复的挂载和卸载)。

  挂载后我们打开已经挂载的文件夹中X:\Windows\System32\config(X:\代表你挂载的路径)文件夹,我们可以看到如下图的一些文件:


  这些便是系统的注册表存放文件了,但这些文件我们如何像修改本机的注册表一样去修改他们呢?其实方法和简单,微软在很早以前就提供给我们这样的功能,但大多人不知道他如何使用。

首先打开你电脑中的注册表编辑器regedit,然后随便展开一个主键值。如下图:


然后点击左上角的“文件”-“加载配置单元”。如下图:


这时候会让你选择路径,把路径指定到我们刚才打开的文件夹中,如下图:


选择“SYSTEM”文件后确定,他会让你为加载的配置单元命一个名字,如下图:


  这里随便输入一个名字即可,只是为了方便区别而已。我输入Win7后这个尚未安装的系统的注册表文件就被我们挂载出来了,如下图:


  怎么样?剩下的由你决定该怎么操作,想修改哪里就修改哪里,比如我要修改让Windows启动的时候,Windows搜索服务就默认关闭,那么我们展开ControlSet001里面去找Windows搜索服务的注册表信息,然后将其状态修改为4(禁用)就可以了。如下图:


  我们看到,除了ControlSet001以外,还有一个ControlSet002,信息都是一样的,我们到底应该修改哪个呢?要想清楚这个我们,我们先要搞清楚ControlSet001和ControlSet002的关系。ControlSet002储存的只不过是上一次系统成功启动后保留下来的配置信息,他并不是系统启动或运行时的信息,所以我们只需要修改ControlSet001就可以了。

  在修改完成后,记得要卸载掉注册表,否则你无法正常的卸载install.wim挂载的内容。取消注册表挂载也很简单,点击你挂载出来的注册表的主项(我这里是Win7)如下图:


然后点击左上角“文件”-“卸载配置单元”即可,如下图:


  要注意的是,我们刚刚挂载的只不过是系统用于管理服务和驱动的注册表项,如果我们要修改其他位置的注册表,是需要挂载不同的注册表文件的。下图表示了他们之间的关系,可以根据自己的需要挂载对应的注册表进行修改:


  另外一个需要注意的问题是,HKEY_CURRENT_USER注册表下的内容是储存每一个Windows用户的注册表信息,这些信息你没必要在安装操作系统前去修改,因为这个时候用户的信息还没有创建,即使你修改了安装系统后也会被覆盖修正为默认值。所以无法修改也没必要修改。而正确的修改时间应该是系统安装完成后用户登陆到桌面以后再去修改。我们可以挂载“SOFTWARE”注册表文件,在“SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce”(系统启动时执行的程序,并且只执行一次)下创建一个注册表项,让系统启动后执行一个我们的程序,让这个程序来完成这些事情。

本文标签: 原版 操作系统