sfc 如何修复dllcache备份目录?

sfc 如何修复dllcache备份目录?

根据系统文件检查器 (sfc) 文档sfc 将遵循某些程序来确定系统文件是否损坏。

  • 如果 sfc 发现受保护的文件已被覆盖,它会从文件夹中检索文件的正确版本 %systemroot%\system32\dllcache,然后替换不正确的文件。
  • 如果%systemroot%\system32\dllcache文件夹损坏或无法使用,请使用sfc /scannowsfc /scanoncesfc /scanboot修复目录的内容Dllcache

这看上去似乎矛盾。

  1. dllcache如果 sfc 使用它作为比较来查找损坏的系统文件,那么它如何知道它已损坏?
  2. dllcache如果sfc 使用该目录作为备份存储,它将如何修复该目录?
  3. sfc 通常如何检查损坏情况?我一直认为它根据目录对系统文件进行了哈希检查,dllcache但前面两个语句似乎表明并非如此。

答案1

Sfc 不会修复 dllcache,而是借助 dllcache 修复其他 dll 文件。如果 sfc.exe 发现问题,它将尝试从 DLL 缓存 (%WinDir%\System32\Dllcache) 中替换有问题的文件。如果文件不在 DLL 缓存中或 DLL 缓存已损坏,系统将提示用户插入 Windows 安装媒体或提供网络安装路径。系统文件检查器根据注册表值 SourcePath 和 ServicePackSourcePath 确定 Windows 安装源路径。如果这些值设置不正确,即使用户提供了安装媒体,它也可能会继续提示用户提供安装媒体。

来源微软

答案2

  1. SFC 使用包含所有受保护文件签名的目录文件。DLLCache 中的文件不用于直接比较。它们也会根据签名进行检查。

  2. 当文件缓存不可用或与目录中的签名不匹配时,SFC 使用预配置的网络路径或请求 Windows 安装媒体。

  3. SFC 使用目录文件与两个位置的签名进行比较。

相关内容