如果你清除以前的windows安装或临时安装文件,则不能

2022-09-18 11:03:00   编辑:奚鹏诚
导读很多朋友对如果你清除以前的windows安装或临时安装文件,则不能还不了解,今天小绿就为大家解答一下。解决方法:1.插入系统安装光盘,并运行...

很多朋友对如果你清除以前的windows安装或临时安装文件,则不能还不了解,今天小绿就为大家解答一下。

解决方法:

1.插入系统安装光盘,并运行sfc /scannow命令来检测和修复可能损坏和更改的系统文件。

2.在“开始运行”对话框中键入“gpedit.msc”,打开“本地计算机策略计算机配置管理模板系统”窗口,找到“Windows文件保护”。双击右窗格中的“设置Windows文件保护扫描”项目,并将其更改为“禁用”。

3.打开注册表编辑器,在[HKEY _本地_机器\软件\微软\ Windows NT \当前版本\ winlogon]的右窗口中找到“SFCDisable”注册表项,将其更改为“ffffff9d”。如果需要重新启用该功能,只需将其重置为“0”即可。

4.第一,如果被替换的文件不是关键的系统文件(即系统文件被替换后仍然不影响系统的运行),

而且你不喜欢它的提示对话框,那么你可以关闭它的提示。

关闭方法:

【点击开始菜单】【运行】【输入命令:cmd】【然后在弹出窗口直接输入命令:sfc /cancel】呵呵,这样提示应该没了。

还有另一种方法:

当它在弹出窗口中时,您插入系统安装盘,然后根据提示修复被替换的文件。当您安装了一个应用程序,但意外地导致Windows崩溃,这可能是因为该应用程序重写了关键的Windows系统文件,导致系统崩溃。文档被修改后,结果往往是不可预知的。系统可能正常运行,或者出现一些错误,或者完全崩溃。幸运的是,Windows 2000、XP和Server 2003应用了一种称为Windows文件保护(WFP)的机制,可以防止关键的系统文件被覆盖。在这篇文章中,我将解释什么是WFP以及它是如何工作的。我还会告诉你如何改变或忽略WFP的行为。

温馨提示:尽管WFP在Windows 2000、XP和Server 2003上的操作没有区别,但本文中的信息(包括与注册表相关的条目和SFC语法)是针对XP的。

Windows文件保护是如何工作的?

WFP旨在保护Windows文件夹的内容。WFP保护特定的文件类型,如SYS,EXE,DLL,OCX,FON和TTF,而不是防止整个文件夹的任何修改。注册表项决定了WFP保护的文件类型。

当应用程序试图替换受保护的文件时,WFP会检查被替换文件的数字签名,以确定该文件是否来自微软以及版本是否正确。如果两个条件都满足,则允许更换。正常情况下,允许替换系统文件的文件类型包括Windows的服务包、补丁和操作系统升级。系统文件也可以由Windows updater或Windows设备管理器/类安装程序替换。

如果这两个条件不同时满足,受保护的文件将被新文件替换,但很快就会被正确的文件替换。

发生这种情况时,Windows将从您计算机上的Windows安装CD或DLLCache文件夹中复制该文件的正确版本。

Windows文件保护不仅通过拒绝修改文件来保护文件,还可以拒绝删除文件。让我们来看看WFP的做法。打开WINDOWSSYSTEM32文件夹,将CALC.EXE文件重命名为CALC。旧当您执行此操作时,会有一条消息提示您更改此文件的扩展名可能会导致此文件不可用。单击“是”按钮确认该警告。现在,等待几分钟,然后按F5刷新文件系统的视图。完成替换可能需要一些时间。当文件最终被替换时,Windows会在事件日志中做相应的记录。

关于WFP,值得注意的一点是,它与Windows installer紧密集成。每当Windows installer需要安装一个受保护的文件,它会给WFP,而不是试图安装自己。然后WFP判断是否允许安装。

系统文件检查

虽然自动文件替换会节省时间,但有些情况需要手动干预。例如,您可能不想等待WFP来判断受保护的文件是否已被替换。幸运的是,您可以使用名为系统文件检查(SFC)的工具手动控制WFP。

SFC是一个命令行工具,需要在命令提示符窗口中运行。它的语法是这样的:SFC[/scannow][/scanonce][/scanboot][/revert][/purge cache][/cachesize=x]/scannow选项告诉SFC立即扫描所有受保护的系统文件。如果在扫描过程中发现文件的错误版本,错误版本将被替换为正确的Microsoft版本。当然,这意味着您可能需要一张Windows安装光盘、最新的服务包或升级补丁。

/SCANONCE参数告诉WFP在下次启动系统时扫描受保护的系统文件。在扫描过程中,任何错误的文件都将被正确的版本替换。正如该参数名称所表示的,该扫描仅执行一次。之后系统启动会恢复正常,SFC不再运行。

/SCANBOOT参数类似于/SCANONCE选项。不同的是,SCANONCE只在Windows下次启动时扫描受保护的文件,而SCANBOOT参数在每次Windows启动时扫描系统文件。如有必要,这两个参数将替换错误的系统文件,这可能需要您提供正确文件版本的副本。

/REVERT选项用于关闭SFC。例如,假设您使用SCANBOOT选项在每次系统启动时扫描所有受保护的文件。可以想象,它确实增加了计算机启动的总时间。最后,你可能厌倦了漫长的启动时间,想关闭SFC,只需在启动时使用SFC /REVERT关闭SFC即可。

您需要对/PURGECACHE选项保持谨慎。在此之前,我解释了Windows使用缓存文件夹来保存各种系统文件的正确版本的备份。如果运行SFC /PURGECACHE命令,则此文件缓存将被清空,那些备份文件将被删除。此命令还将导致Windows开始扫描所有类型的受保护文件,并在扫描时重建此文件缓存。当然,这可能意味着您必须向Windows提供Windows安装光盘或系统文件升级的副本。

最后一个SFC命令选项是/cache=X.关于文件缓存的默认大小,有很多相互矛盾的信息。在撰写本文时,我发现在三篇不同的Microsoft知识库文章中指定的文件缓存的默认大小是不同的。一篇文章建议文件缓存大小为50 MB,而另一篇文章建议文件缓存大小为300 MB。更何况第三条指出这个大小应该是无限的。实际上,默认值的大小并不重要,因为您可以根据需要使用缓存选项来更改这个文件缓存的大小。

使用缓存选项时,必须键入命令sfc/caching=x,其中x是指要分配给文件缓存的兆字节数。指定新的文件缓存大小后,必须重新启动系统并运行SFC /PURGECACHE命令。

WFP和证监会由注册管理机构控制。

在此之前,我解释了注册表控制WFP的一般行为。您可以修改几个不同的注册表项来控制WFP的行为。你可以在每次运行SFC的时候直接操作这些键中的一部分,而另一部分则有更低级的功能。例如指定文件缓存或安装文件的位置。

修改注册表可能很危险。如果您进行了错误的修改,可能会导致Windows崩溃或损坏您的应用程序,因此我强烈建议您在尝试本节描述的任何技术之前,对注册表进行完整的备份。

要访问SFC的注册表项,请在Run命令中键入REFEDIT命令。这将打开注册表编辑器,现在浏览注册表树找到以下键:HKEY _本地_机器软件micoroftwindows ntcurrentversionWinLogon一般情况下,注册表中的WinLogon键一般用于控制各种启动选项。虽然许多SFC选项可以控制SFC是否在启动时运行,但微软已经将SFC相关的注册表项放在了这一部分。

sfc禁用

该注册表项控制SFC是激活还是无效。实际上,只要改变DWORD的值,就可以得到四个不同的选项。默认的DWORD值是0。这个设置激活sfc。通常你不需要改变这个值。但是,您可以在0到4之间修改该值来激活SFC,但不要让它弹出。

如果挂起内核调试器,最好关闭SFC,如果使用的是内核调试器,可以将注册表项的DWORD值改为1,这样会关闭SFC,并在每次启动时提示是否再次激活SFC。

还可以通过将DWORD设置为2来关闭SFC。该选项仅在下次启动时关闭SFC。没有重新激活SFC的选项,因为在此之后,SFC将在启动时自动激活。

SFCScan

在此之前,我解释了SFC的SCANONCE、SCANBOOT和REVERT选项。只要使用这些选项,SFC实际上就是在修改SFCScan注册表项。您可以通过更改其DWORD赋值来修改该键。的默认值为0。该值意味着启动时不需要扫描受保护的文件。此设置相当于运行SFC /REVERT命令。将DWORD值更改为1意味着每次启动时都要扫描受保护的文件。将SFCScan的值设置为1相当于运行SFC /SCANBOOT命令。

最后,将DWORD值设置为2会告诉SFC在下次启动时扫描受保护的文件,但不是所有后续启动。

这相当于运行SFC /SCANONCE命令。

sfc配额

SFCQuota注册表项用于控制SFC文件缓存的大小。大家可能还记得我之前讲sfc/cache=x命令的时候提到过,关于文件缓存的默认大小有很多不一致的信息。但是,在我的系统上,注册表项SFCQuota的DWORD值默认为0xffffffff。根据Microsoft知识库,该值对应于300 MB的文件缓存大小。同一知识库中的一篇文章指出,通过将该值更改为FFFFFFFF,可以缓冲所有受保护的系统文件。

在此之前,我解释过Windows使用SFCDllCacheDir文件夹作为存储系统文件的备份位置。通常,该文件夹位于WINDOWSSYSTEM32目录中。但是,通过修改SFCDllCacheDir注册表项,可以修改文件缓存位置。

文件缓存文件夹通常位于DLLCACHE目录中,但是您可以通过修改该注册表项来修改该文件夹的位置。唯一需要注意的是,您必须指定一个在本地硬盘上已经存在的地址。在Windows 2000中,您可以指定一个网络共享作为DLLCACHE的路径,但是在Windows XP中该选项不可用。

SFCShowProgress

另一个与SFC相关的注册表项是SFCShowProgress项。该注册表项允许您将其DWORD值设置为0或1。默认值为0,这将禁止显示SFC的进度。值1允许SFC显示进度。

源文件地址

在此之前,我解释了WFP和证监会的工作方式。我指出,在某些情况下,您可能必须提供Windows安装CD或有效源文件的副本。但是,通过修改注册表,完全可以向Windows指示源文件目录,而Windows不会再次要求您提供这些文件。

该注册表项在注册表的另一部分。您必须找到以下注册表项:HKEY _本地_计算机软件软件Windows微软WindowsCurrentVersionSetup找到该位置后,您可以使用驱动器号或路径或UNC来指定Windows系统文件的位置。

使用这个命令的前提是,您必须将文件放在名为I386的目录中。例如,如果您的Windows系统文件位于名为C:I386的目录中,那么您只需在注册表中将路径指定为C:即可,因为Windows假定I386目录存在。同样,如果您打算使用UNC共享,I386文件夹必须存在于共享目录中。例如,如果您打算共享的目录名为FILES,您需要将I386文件夹放在FILES目录中。然后,您可以告诉Windows在\server_nameFILES目录中查找共享文件。Windows将在\ server _ nameFILESI386目录中查找系统文件。

以上问题已解答完毕,如果想要了解更多内容,请关注本站

免责声明:本文由用户上传,如有侵权请联系删除!

猜你喜欢

最新文章