已解决 — 请参阅下面选择的答案。
我最近设置了一台新的 Windows 10 PC(当时是 v20H2),在对其进行自定义时,我将默认的“新电子邮件”声音 (C:\Windows\Media\Windows Notify Email.wav) 替换为 Win8.1 版本,它我更喜欢。但是,我通过用 Win8.1 覆盖原始 Win10 音频文件来做到这一点,而不是仅仅将 Win8.1 文件添加到同一目录并重命名它(“Windows Notify Email_Win8.1.wav”或其他)。我会为此后悔的。
我已经将 Windows 更新到 v21H1。今天早些时候,我第一次在这个系统上运行 SFC /scannow,它“发现了损坏的文件,但无法修复其中一些”。在 CBS 日志中,我发现:
2021-06-06 02:39:15, Info CSI 00000217 Hashes for file member [l:24]'Windows Notify Email.wav' do not match.
Expected: {l:32 ml:33 b:b04f63d689ae7d627a5dc7895bbe53fb3bf470a43c4f1f6339dd4ab8890ffa6f}.
Actual: {l:32 b:7897e75ba5b52a8e53431e7af5758a84acdf2d50d6d2a9dd2d90fee0034e11c0}.
2021-06-06 02:39:15, Info CSI 00000218 [SR] Cannot repair member file [l:24]'Windows Notify Email.wav' of Microsoft-Windows-Shell-Sounds, version 10.0.19041.1, arch amd64, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
2021-06-06 02:39:15, Info CSI 00000219 Hashes for file member [l:24]'Windows Notify Email.wav' do not match.
Expected: {l:32 ml:33 b:b04f63d689ae7d627a5dc7895bbe53fb3bf470a43c4f1f6339dd4ab8890ffa6f}.
Actual: {l:32 b:7897e75ba5b52a8e53431e7af5758a84acdf2d50d6d2a9dd2d90fee0034e11c0}.
2021-06-06 02:39:15, Info CSI 0000021a [SR] Cannot repair member file [l:24]'Windows Notify Email.wav' of Microsoft-Windows-Shell-Sounds, version 10.0.19041.1, arch amd64, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
2021-06-06 02:39:15, Info CSI 0000021b [SR] This component was referenced by [l:154]'Microsoft-Windows-Client-Desktop-Required-Package~31bf3856ad364e35~amd64~~10.0.19041.1023.ACD49602CE22B8D2FE76CB65181A0F3C34476C610F7967574610C8CF843FB4AB'
这是我尝试过的所有内容的简要说明:
- 我跑了
sfc /scannow
多次,但错误从未消失。 - 然后我运行
dism /online /cleanup-image /restorehealth
, 然后运行 ,dism /online /cleanup-image /checkhealth
发现没有组件存储损坏。 - 然后再传
sfc /scannow
几遍;仍然损坏。 - CBS.log 然后提到“商店中的版本也已损坏”。
- 我下载了 21H1 Media Creation Tool,我用它来下载一个新的 Win10 v21H1 ISO,我将它安装到 I:。
- 我跑了
dism /online /cleanup-image /restorehealth /source:I:\sources\install.esd /limitaccess
。顺利完成。 dism /online /cleanup-image /checkhealth
. 清洁组件存储的健康清单。sfc /scannow
, 几次通过。还是不修。- 也许如果我手动替换文件?
- 我直接从新 ISO 的 install.esd 中提取了“Windows\Media\Windows Notify Email.wav”,并将其复制到我驱动器上损坏的文件上。更换成功,没有任何错误。
sfc /scannow
. 仍然损坏,SFC 仍然无法修复。(那时我摘录了上面的 CBS.log 摘录。)- 我尝试从 C:\Windows\Media 中删除受影响的文件(实际上只是将它移动到我的桌面)。
sfc /scannow
给出了同样的错误,奇怪的是,CBS.log 说的和以前一样——哈希不匹配,而不是“文件丢失”或类似的东西。(没有给我新的副本。)- 顺便说一句,我检查了 C:\Windows\Media 文件夹权限并启用了对 TrustedInstaller 的完全控制。没有改变任何东西。
- (未提及:为了安全起见,在所有这些过程中都重新启动了几次。)
我没主意了。即使直接用全新 ISO 的副本手动替换据称损坏的文件也不起作用。更奇怪的是,当我通过散列工具运行文件时,它给了我与 CBS 日志所说的 SFC 正在寻找的完全相同的散列 (SHA256) (“b04…………a6f”),而不是“实际”的散列。据我所知,这是一个非常好的副本,但 SFC 一直将其标记为已损坏。而且我拒绝做一些极端的事情,比如重置我的电脑,撤销数周的设置工作(大量的应用程序和配置),只是为了让 SFC 停止被一个微不足道的 160 KB .wav 文件绊倒。
任何帮助弄清楚这一点将不胜感激。
操作系统:Win10 Pro x64 21H1 (19043.1023)
更多信息:我刚刚再次尝试删除“C:\Windows\Media\Windows Notify Email.wav”并运行SFC /scannow
以查看它是否会替换它,似乎这样做是导致 SFC 将此特定错误放入 CBS 日志的原因:
Could not reproject corrupted file \??\C:\Windows\Media\\Windows Notify Email.wav; source file in store is also corrupted
需要说明的是,我根本没有接触过商店(我什至不知道它在哪里);我只从 C:\Windows\Media 中删除了“损坏的”文件。这是否提供了任何有用的信息,还是只是更多的噪音?
解决它!Windows 10 论坛上的某个人将我指向组件存储文件夹 SFC 一直试图替换文件 -
C:\Windows\WinSxS\amd64_microsoft-windows-shell-sounds_31bf3856ad364e35_10.0.19041.1_none_cd0389b654e71da2
(我在 CBS 日志中看到但认为它只是一些随机代码,没有意识到它是一个文件夹) - 当我去那里时,我发现“Windows Notify Email.wav”文件不知何故是Win8.1版本,而不是原来的Win10版本。不知道这是怎么发生的,除非这是 Windows 在更新到 v21H1 期间所做的事情。不管怎样,我把它换成了 C:\Windows\Media 里的 Win10 文件,跑了
sfc /scannow
,这次终于给我了Windows Resource Protection did not find any integrity violations
。哈利路亚。感谢所有参与其中的人。如果将来出现任何灾难性错误,请务必牢记维修安装。