本帖最后由 羊羔助手 于 2023-1-19 22:00 编辑
在某些情况下,是无法使用“SFC”和“DISM”命令修复系统的,所以只能通过重装系统来解决。然而重装系统,就意味着自己以前精心打理过的系统会被重置,所有的软件、文档、配置信息都会消失,甚至所有的系统补丁和系统版本都还要重新更新和升级一次。不过自从“Windows Vista”系统开始,只要用户不采取硬盘格式化的方式重装系统,那么新的系统安装完毕后就会将旧的系统打包放在“Windows.old”目录下,并为用户保存一个月后自动删除。
“Windows.old”的目录下还分别有“Windows”、“Program Files”、“Program Files (x86)”和“Users”这四个子目录,它们均是新系统对旧系统几个重要文件和文件夹的备份。所以通过“Windows.old”这个文件夹,我们可以丝毫不差的让新系统恢复到旧系统的面貌。但需要注意的是,只有相同版本号的Windows系统才能使用“Windows.old”进行恢复和还原,否则就会导致系统错乱崩溃!例如“Windows 7”系统的“Windows.old”不能在“Windows 10”系统的基础上进行还原;32位的“Windows 10”系统的“Windows.old”不能在64位的“Windows 10”系统的基础上进行还原。
通过“Windows.old”恢复上一个系统的方法非常简单,你只需要一个“双系统”的环境就可以了。要想获得双系统,强烈推荐U盘启动工具制作“Windows PE”系统,然后开机按“Del”键在BIOS中对双系统进行切换。由于各个主板厂商的BIOS系统不同,配置也不同,所以通过BIOS对磁盘设置启动引导的方法可以查看主板说明书或其它网络教程,本文不再陈述。另外,在用“Windows.old”目录中的文件夹替换新系统的对应文件夹时,最好先对新系统的文件夹做一个备份,千万不要一股脑的去删除它们。因为在替换文件夹的过程中一旦出现差错,还得需要新系统的文件夹来修复还原。
1:恢复之前的Windows系统。
在进入“Windows PE”系统之后,首先要恢复的是“Windows.old”目录中的“Windows”文件夹,因为“Windows”文件夹是旧系统的核心目录。将新系统所在磁盘根目录下的“Windows”文件夹删除或重命名,然后再将“Windows.old”目录下的“Windows”文件夹复制到这个磁盘根目录下。这样,你之前那个Windows系统的核心模块就都被恢复了。这其中包括了驱动信息、软件配置、系统补丁等等……
不过需要注意的是,如果你之前的系统是因为被病毒破坏而无法启动的,可以考虑在“Windows PE”系统下使用杀毒软件查杀一遍病毒后再恢复。或是不替换Windows文件夹,而是将旧系统“Windows\System32”目录下的“config”文件夹与新系统“Windows\System32”目录下的“config”文件夹进行对换。因为“config”目录下储存的是注册表文件,注册表相当于一个系统的神经线,它所包含的配置信息能够指向并关联到系统的各个位置,所以替换“confg”也就等于对你之前的系统恢复了一半。如果旧系统是因为损坏系统文件或注册表信息而无法启动的,且又不知道损坏的具体位置在哪里,那么还是建议保留新系统的“Windows”目录来启动,不要替换。
2:恢复旧系统的软件和程序。
同替换“Windows”目录的方法一样,其次要恢复的是“Windows.old”目录中的“Program Files”文件夹和“Program Files (x86)”文件夹,因为这两个文件夹是旧系统的程序安装目录。将“Windows.old”目录下的“Program Files”和“Program Files (x86)”这两个文件夹与新系统所在磁盘根目录下的“ProgramFiles”和“Program Files (x86)”那两个文件夹进行替换。这样,你在旧系统中的所有软件和程序就都被恢复了,这其中包括了你之前的办公软件、游戏软件等等……
不过需要注意的是,出于Windows系统对系统重要文件夹的保护机制,可能会出现对“Program Files”文件夹重命名无效的情况,最终也就导致了新旧两个“Program Files”文件夹在同目录下发生“共存”的假象。造成这个问题的原因在于“ProgramFiles”目录下存在一个名为“desktop.ini”的系统隐藏文件。该文件内的参数“LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21781”会让当前目录的文件夹去指定显示为某个名称。也就是说“Program Files”的文件名虽然已经被改了,但是在“desktop.ini”这个文件的响应下它的文件名依然还会被显示为“Program Files”。删除“desktop.ini”文件可能还会被系统重建,如果你手快的话可以在删除“desktop.ini”文件的几秒钟内快速在同目录下新建一个与“desktop.ini”文件同名的文件夹,利用同目录同名文件不能共存的原理屏蔽掉“desktop.ini”文件。另外“LocalizedResourceName”这个参数只对拥有“系统”属性的文件夹起作用,也可以通过DOS命令“ATTRIB "%ProgramFiles%" +H”给“Program Files”文件夹去掉“系统”属性,让“desktop.ini”文件对其失效。
3:恢复旧系统的用户和文档。
最后要恢复的就是“Windows.old”目录中的“Users”文件夹了。“Users”文件夹是旧系统的用户组目录,它包含了你在旧系统中的所有用户和账户组。“Users”文件夹在某些系统中可能会被显示为“用户”,原因也是其目录下的“desktop.ini”文件在作怪,不过这并不妨碍对系统的恢复与还原。将“Windows.old”目录下的“Users”文件夹与新系统所在磁盘根目录下的“Users”文件夹进行替换。这样,你在旧系统中的用户名、账户组、我的文档以及桌面图标等就都被恢复了。
不过需要注意的是,出于“Users”在系统中的特殊性,以及Windows系统对用户账户的保护等等,将旧系统的“Users”文件夹复制替换到新系统平台后可能会出现“排斥”反应,甚至还会出现登录异常。那么接下来,本文就介绍几个可能因为“Users”文件夹被替换而导致的问题。
通过“Windows PE”系统替换完“Users”文件夹重启进入已被还原的旧系统桌面后,可能仍会出现旧系统的用户名、账户组、我的文档以及桌面图标等未被恢复的情况。与此同时,桌面右下角还会弹出“您已使用临时配置文件登录。”的提示。之后的每一次开机,系统都会重新配置桌面项目,而注销或重启则会一直反复这个过程。造成这个问题的原因可能是在替换“Users”文件夹之后,导致用户配置信息与系统配置信息不符,所以才会让新系统给使用者分配临时用户登录。解决方法是打开“注册表编辑器”,依次展开注册表分支到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList”,然后在其子项“S-1-5-21-**********-**********-**********-1000”中找到可扩充字符串“ProfileImagePath”,并将其数值数据“C:\Users\TEMP”修改成“C:\Users\你的用户名”即可。最后重启电脑,就可以看到你在旧系统的用户名、账户组、我的文档以及桌面图标等都被恢复了。
在成功修复用户注册信息进入属于自己的用户界面后,却发现自己对系统的操作权限也受到了限制,打开任何程序都遭会到拒绝访问,甚至隶属于“计算机管理员(Administrator)”的自己所享受的权限还不如“来宾用户”。例如打开“此电脑”后,就会弹出“Windows 无法访问指定设备、路径或文件。您可能没有合适的权限访问这个项目。”的对话框。很明显,这是当前用户的资源管理器程序“explorer.exe”的访问权限被限制了。造成这个问题的原因是通过替换“Users”文件夹还原旧系统的用户后,旧系统“Users”文件夹内所包含的用户SID与新系统中的用户SID发生了冲突,从而导致使用旧系统用户登录到新系统平台时被当作“非法用户”处理了,因此才会出现旧系统用户访问新系统受限的情况。出于Windows系统对用户权限的保护,所以必须先要解除旧用户对新用户的访问权限。解决方法是打开“注册表编辑器”,展开注册表分支“HKEY_USERS”,鼠标右键子项“S-1-5-21-**********-**********-**********-1000_Classes”选择“权限”。这时,我们会在这个子项的“组或用户名”中看到一个“未知用户”;而这个未知用户和后面的那一大串数字,就是我们在旧系统的用户和它的SID值。现在删掉这个与新系统用户发生冲突的旧用户,然后选择“高级”——“添加”,将“Everyone”这个用户添加到“权限项目”里,或者直接勾选“包括可从该对象的父项继承的权限”也行。最后点击“确定”,退出“注册表编辑器”。这时,我们神奇的发现“此电脑”可以正常打开访问了。值得一提的是,由于注册表项值“S-1-5-21-**********-**********-**********-1000_Classes”是被系统由当前用户“%LOCALAPPDATA%\Microsoft\Windows”目录下的“UsrClass.dat”注册表文件独立加载的,所以如果你嫌麻烦的话,可以直接用新系统的“UsrClass.dat”文件替换掉旧系统的“UsrClass.dat”文件就可以解决此问题。
在经过对“Windows”、“Program Files”、“Program Files (x86)”和“Users”这四个系统文件夹的还原后,你就会发现那个曾经专属于你的Windows系统又回来了,之前各个随机启动的程序又都重新出现在桌面右下角的托盘处了。
—— 羊羔助手(Lamb Assistant) |