深入探讨WindowsXP系统文件保护功能( 三 )


SFCDllCacheDir
在这之前,我解释说Windows将DLLCACHE文件夹作为存储系统文件备份的地方 。通常的,这个文件夹位于WINDOWSSYSTEM32目录下 。不过通过修改SFCDllCacheDir注册表键,你可以修改文件缓存的位置 。
文件缓存文件夹一般位于DLLCACHE目录下,但通过修改这个注册表键,你可以修改这个文件夹的位置 。唯一需要注意的一点是你必须指定一个已经存在于本地硬盘驱动器上的地址 。在Windows 2000里,你可以指定一个网络共享作为DLLCACHE的路径,但在Windows XP中没有这个选项 。
SFCShowProgress
另一个与SFC相关的注册表键是SFCShowProgress键 。这个注册表键允许你设置它的DWORD值为0,或1 。缺省值是0,它将禁止显示SFC的进程情况 。设值为1就可以让SFC显示进展情况 。
源文件地址
在这之前,我解释了WFP和SFC是如何工作的,我指出在某些条件下你可能必须提供Windows安装CD或者有效源文件的拷贝 。然而通过修改注册表,向Windows指明一个源文件目录是完全可能的,而无需Windows再向你询问这些文件 。
这个注册表键在注册表的另一部分 。你必须找到下面这个键:
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionSetup
一旦你找到了这个位置,通过使用一个驱动器符号或者路径或者一个UNC,你可以指定Windows系统文件的位置 。
使用这个命令的前提是你必须将文件放在名为I386的目录中 。例如,如果你的Windows系统文件位于一个名为C:I386的目录中,那么你只需在注册表中指定路径为C:,因为Windows假定I386这个目录是存在的 。同样的,如果你打算使用一个UNC共享,I386文件夹必须存在于共享目录下 。例如,如果你打算共享的目录名为FILES,你需要将I386文件夹放在FILES目录下 。然后你可以告诉Windows在server_nameFILES目录下寻找共享文件 。Windows将在server_nameFILESI386目录中寻找系统文件 。

推荐阅读