经常出现正常运行Windows所需的文件已被替换成无法识别的版本

2024-12-04 04:33:34
推荐回答(5个)
回答1:

有4种方法:
1.插入系统安装光盘,并运行sfc
/scannow命令检测并修复可能受损坏和更改的系统文件.
2、在“开始→运行”对话框中键入“gpedit.msc”,打开“本地计算机策略→计算机配置→管理模板→系统”窗口,找到“Windows文件保护”,在右侧窗格中双击“设置Windows文件保护扫描”项,修改为“已禁用”。
3、打开“注册表编辑器”,找到【HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Winlogon】右侧窗口中的"SFCDisable"键值修改为"ffffff9d",如果需要重新启用该功能,重新设置为"0"就可以了。
4.首先,如果被替换的文件不是关键性的系统文件(即系统文件被替换后仍然不影响系统的运行),而你又不喜欢它那个提示对话框,这时候你就可以把它的提示关闭.
--------------------------
关闭方法是:
[点击开始菜单]→[运行]→[输入命令:cmd]→[然后在弹出的窗口里面直接输入命令:sfc
/cancel]
呵呵,这样提示应该就会没了
__________________________
还有一种方法就是:当它在弹出窗口的时候,你插入系统安装盘,然后根据提示修复被替换的文件.
.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>
.>详细的你可以参考一下Windows文件保护是如何工作的.>
.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>
当你安装一个应用程序却不料引起Windows崩溃的时候,很有可能是因为应用程序改写了关键的Windows系统文件,导致系统崩溃。在文件被修改后,结果往往不可预知。系统可能正常运行,或者出一些错误,或者完全崩溃。幸运的是,Windows
2000,
XP,和Server
2003应用了一个称作Windows文件保护(Windows
File
Protection,
WFP)机制,它可以防止关键的系统文件被改写。在这篇文章中,我将解释何谓WFP和它是如何工作的。我还要告诉你如何修改或忽略WFP的行为。(注释:尽管在Windows
2000,
XP,和Server
2003上,WFP的运行没什么区别,但这篇文章中的信息,包括注册表相关条目和SFC语法,是针对XP的。)
Windows文件保护是如何工作的
WFP被设计用来保护Windows文件夹的内容。WFP保护特定的文件类型,比如SYS、EXE、DLL、OCX、FON和TTF,而不是阻止对整个文件夹的任何修改。注册表键值决定WFP保护的文件类型。
当一个应用程序试图替换一个受保护的文件,WFP检查替换文件的数字签名,以确定此文件是否是来自微软和是否是正确的版本。如果这两个条件都符合,则允许替换。正常情况下,允许替换系统文件的文件种类包括Windows的服务包,补丁和操作系统升级程序。系统文件还可以由Windows更新程序或Windows设备管理器/类安装程序替换。
如果这两个条件没有同时满足,受保护文件将被新文件替换,但将很快被正确的文件替换回来。当这种情况发生时,Windows会从Windows安装CD或者计算机的DLLCache文件夹中复制正确版本的文件。
Windows文件保护并不仅仅通过拒绝修改来保护文件,它还可以拒绝删除。来看看WFP的做法,打开WINDOWSSYSTEM32文件夹并将CALC.EXE文件重命名为CALC.OLD。当你这样做时,一个消息将提示你如果改变这个文件的扩展名可能会导致这个文件不可用。点击Yes按钮确认这个警告。现在,等几分钟后按F5键以刷新文件系统的视图,完成替换可能要花些时间。当文件最终被替换后,Windows会在事件日志中做相应的记录。
关于WFP值得关注的一点是它和Windows安装程序结合的很紧密。无论何时,如果Windows安装程序需要安装一个受保护的文件,它就把这个文件交给WFP,而不是自己试图去安装这个文件。然后由WFP判断是否允许安装。
系统文件检查
虽然自动文件替换会节省时间,但也存在需要手动干预的情况。例如,你可能不愿意空等着WFP去判断受保护的文件是否已经被替换。幸运的是,你可以用一个名为系统文件检查(SFC)的工具手动控制WFP。
SFC是一个命令行工具,需要在命令提示符窗口下运行。它的语法像这样:
SFC
[/SCANNOW]
[/SCANONCE]
[/SCANBOOT]
[/REVERT]
[/PURGECACHE]
[/CACHESIZE=x]
/SCANNOW选项通知SFC立即扫描所有受保护的系统文件。如果在扫描过程中发现一个错误的文件版本,这个错误的版本将被替换为微软正确的版本。当然,这意味着你可能必须有Windows安装CD,最新的服务包或者升级补丁。
/SCANONCE参数通知WFP在系统下次启动的时候扫描受保护的系统文件。在扫描过程中,任何错误的文件将被正确的版本替换。正如这个参数名的意思,这个扫描只进行一次。之后的系统启动将恢复正常,SFC不再运行。
/SCANBOOT参数和/SCANONCE选项类似。区别在于SCANONCE只在Windows下次启动时扫描受保护的文件,而SCANBOOT参数则在Windows每次启动时都扫描系统文件。如果需要,这两个参数将替换错误的系统文件,这可能需要你提供正确文件版本的拷贝。
/REVERT选项用来关闭SFC,例如,假设你使用SCANBOOT选项在每次系统启动的时候扫描所以保护的文件。正如你所能想到的,这确实会增加计算机启动的总时间。最后,你可能厌倦了漫长的启动时间,想关闭SFC。只需要简单的使用SFC
/REVERT,就可以在启动的时候关闭SFC。
对/PURGECACHE选项就需要谨慎些。在这之前,我解释说Windows使用一个缓存文件夹来保存各类系统文件正确版本的备份。如果你运行SFC
/PURGECACHE命令,那么这个文件缓存将被清空,那些备份文件将被删除。这个命令还会导致Windows开始扫描各类受保护文件,并在扫描的同时重建这个文件缓存。当然,这可能意味着你必须向Windows提供Windows安装CD或系统文件升级的拷贝。
最后一个SFC命令选项是/CACHESIZE=x。对于文件缓存的缺省大小确实存在很多自相矛盾的信息,在写这篇文章的时候,我发现三篇不同的微软知识库文章中指定的文件缓存的缺省大小都不一样。一篇文章中建议文件缓存的大小为50
MB,而另一篇建议的大小却是300
MB。更有甚者,第三篇指出这个大小应该是无限的。其实缺省值的大小并不重要,因为你可以根据你的需要,使用CACHESIZE选项来改变这个文件缓存的大小。
在使用CACHESIZE选项时,你必须键入命令SFC
/CACHESIZE=x,这个x是指你想分配给文件缓存的兆字节数。在指定了新的文件缓存大小后,你必须重启系统并运行SFC
/PURGECACHE命令。
通过注册表控制WFP和SFC
在这之前,我解释说注册表控制WFP的一般行为。你可以修改几个不同的注册表键值以控制WFP的行为。你可以在每次运行SFC直接操作这些键的一部分,其他一些有更低级别的功能。比如指定文件缓存或者安装文件的位置。
修改注册表可能是危险的。如果你做了一个错误的修改,可能会导致Windows的崩溃或者破坏你的应用程序,所以我强烈建议在尝试这一节中描述的任何技术之前,先对注册表做一个完整的备份。
为了访问SFC的注册表键,在Run命令中键入REFEDIT命令。这将打开注册表编辑器,现在浏览注册表树找到下面这个键:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows
NTCurrentVersionWinLogon
通常地,注册表中WinLogon键一般用来控制各种不同的启动选项。虽然许多SFC的选项都可控制SFC是否在启动的的时候运行,但微软已经将SFC相关的注册表键放在这个部分。
SFCDisabled
这个注册表键控制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命令。
SFCQuota
SFCQuota注册表键用来控制SFC文件缓存的大小。或许你会记得,之前在我谈到SFC
/CACHESIZE=x
命令时,我提到关于文件缓存的默认大小,存在许多不一致的信息。然而在我的系统上,注册表键SFCQuota的DWORD值默认为0xffffffff。根据微软知识库,这个值对应文件缓存的大小为300
MB。同一篇知识库的文章指出通过修改这个值为FFFFFFFF,你可以缓冲存储所有受保护的系统文件。
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目录中寻找系统文件

回答2:

  首先使用杀毒软件检查系统,如果无病毒,可按以下方法关闭该提示框:

  1、点击开始,点击运行,输入gpedit.msc,点击确定;

  2、依次展开计算机配置--管理模板--系统--windows文件保护,找到并双击设置windows文件保护扫描;


  3、弹出对话框中点击已禁用,点击确定即可。

  

回答3:

用系统光盘修复,不能修复时,重装系统。
1、将电脑设置成光驱启动。
2、将XP安装光盘(不要使Ghcst克隆盘)插入光驱,重启,在看到屏幕底部出现CD……字样的时候,及时按任意键,否则计算机跳过光启又从硬盘启动了。
3、首先会出现WINXP安装界面,选择第一项“要现在安装WINXP……”,回车(注意,不要选第二项用恢复控制台修复)。
4、有的光盘出现“Windows XP 安装协议,Windows XP Professional最终用户安装协议”界面中,按下“F8”键,同意接受许可协议。
5、此时系统会自动检测,当出现“如果下列WINXP安装中有一个己损坏,安装可以尝试将其修复”界面时,选第一项“要修复所选的WINXP安装清按R”,按“R”(注意,千万不要选第二项全新安装,那样就会把你原C盘中的文件全清除了)。
6、以下操作,按中文提示进行就可以了。

回答4:

出现这个windows文件保护问题,是因为你改动了Windows的系统文件。比如你安装主题包、XP的自动更新、搜狗拼音的自动更新。就可能出现这种情况,一般插入XP光盘是可以修复的,但使用不久故障依然会出现。
解析:出现这个windows文件保护真正问题有两种
一、北信源的劳拉病毒(试过把系统重新安装仍然出现90%是病毒)
升级你的杀毒软件在安全模式下查杀病毒名称《win32.xorala病毒》想清楚得解病毒可以到清华BBS金山论坛【此情况较少】
二、你的Windows所需的文件已经被替换成无法识别的版本,修复方法有以下几种:
1>Windows文件保护并非时时刻刻都对那些受保护的文件进行扫描,如果你使用的是公用计算机,那么还是安全为好,在“开始→运行”对话框中键入“gpedit.msc”,打开“本地计算机策略→计算机配置→管理模板→系统”窗口,找到“Windows文件保护”组,在右侧窗格中双击“设置Windows文件保护扫描”项你可以去选择启动还是关闭【经测试可行,此方法较为常用】
2>可以在“运行”中输入“regedit”,打开“注册表编辑器”,找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon]右侧窗格中的SFCDisable值,其默认设置是0,即重新启动后不扫描受保护的文件
3>点击左下脚开始—所有程序—附件—系统工具—系统还原即可解决【没有还原点的就不用麻烦了】
4>打到系统盘,用下列办法修复
SFC是系统文件检查器,用于扫描所有受保护的系统文件并用正确的Microsoft版本替换不正确的版本?
命令格式:
SFC[/SCANNOW][/SCANONCE][/SCANBOOT][/REVERT][/PURGECACHE][/CACHESIZE=x]
参数说明
/SCANNOW立即扫描所有受保护的系统文件。
/SCANONCE下次启动时扫描所有受保护的系统文件。
/SCANBOOT每次启动时扫描所有受保护的系统文件。
/REVERT将扫描返回到默认设置。
/PURGECACHE清除文件缓存。
/CACHESIZE=x设置文件缓存大小。
使用该命令时可以通过打开命令控制台来运行,方法如下:
开始--运行,在其中输入command(98等系统)或cmd(2000以上系统),然后就可以用上面介绍的sfc命令了。
正常运行windows所需的文件已经被替换成无法识别的版本。
2008年08月06日星期三23:43当你的电脑老是弹出一个“windows文件保护”窗口提示你“正常运行windows所需的文件已经被替换成无法识别的版本。要保持系统的稳定,windwos必须还原这些文件的原版本。”的时候怎么办呢?
这里我给大家说一种可能,您的电脑可能是中了“感染型病毒Win32.Parite.b”!这是我自身的体验……当然你可能是其他原因。
该Win32.Parite.b病毒为Win32平台下的感染型病毒,它会感染Win32平台下的本地的.Exe和.Scr文件以及局域网映射盘上的.Exe和.Scr文件.并偿试通过网络共享传播自身,且该病毒使用了变形,病毒原体加壳等技术来增加查杀的难度.金山毒霸已经对此病毒作了处理,请用户升级到最新病毒库查杀.
1.在注册表
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
上添加
PINF项
2.感染本地的.Exe和.Scr文件以及局域网映射盘上的.Exe和.Scr文件,由于该病毒使用了延迟算法,使得该病毒在一段时间内只能感染少量的文件,但正是这种技术使用户很难发现自己的机器感染了病毒.
3.通过API得到系统临时文件夹,并在该文件夹下创建一个随机文件,文件名具有如下特征
3个随机字母+4个随机数字+.tmp
这种病毒很难清除,很多杀毒软件都查杀不了!不过没关系,知道是中了什么病毒就好办了,我们可以下载一些专杀工具,这里我用到的是“流行病毒查杀工具”。

回答5:

我是这样做的:我就总是点击取消,然后就会弹出一个提示窗口,问你是否保留这个不可识别的文件版本?我就点击保留,但是这时候窗口还是不会消失的,还是提示文件被换成不可识别的版本,要你插入光盘,你在点击取消,再点击保留,重复这样点击,记住,一定要有耐心,多点几十次就好了,就会消失了,呵呵,这是除了做系统之外最快的解决办法了