.png 文件的缩略图和任务栏上的一些图标(计算器、设置、照片查看器等)停止出现(但 .jpg 缩略图一切正常)
我怀疑原因是我弄乱了注册表
我试过:
- 更改与缩略图相关的资源管理器视图设置
- 清除系统的缩略图缓存
- 删除 %LocalAppData%\Microsoft\Windows\Explorer\thumbcache_*.db 文件更新:
- 将 .png 的文件关联重置为默认值
- 重置任务栏固定应用程序以获取丢失的图标
- 运行 SFC 扫描
- 运行 DSIM 工具
我还尝试将与“.png”相关的注册表项与 Win 10 的稳定实例(通过 VM)进行比较,以尝试修复它们,但没有成功
答案1
这个问题似乎是特定于用户的(它只影响单个 Windows 帐户)。它似乎是在安装 Google Drive 后发生的。
我尝试了 Bob 的解决方案,它成功了。您必须在注册表编辑器中删除某个键。
在 上查找您的用户 ID HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist
。
它应该是在值信息中包含用户姓名的条目。例如:\Device\HarddiskVolume2\Users\{USERNAME HERE}\NTUSER.DAT
。
记下条目名称末尾的长字符串。例如:\REGISTRY\USER\{LONG STRING}
。
现在前往HKEY_USERS\{LONG STRING}\software\classes\.png\shellex
并删除E357FCCD-A995-4576-B01F-234630154E96
。
这应该可以修复 png 错误。
答案2
我的 Windows PC 上的此问题已得到解决。简而言之,解决方案如下:
从注册表中删除了以下条目:
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes.png\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001_Classes.png\shellex{E357FCCD-A995-4576-B01F-234630154E96}
注意:S-1-5-21-1093094023-394786674-917728732-1001 是此 PC 上特定用户的标识符。它恰好是我遇到问题的帐户。“-1001”是本次讨论的关键,因为它是特定用户的唯一标识符。
正如我在上一篇文章中所述,此问题仅在特定用户帐户上观察到。那么,当只有一个令人讨厌的用户帐户时,为什么要恢复或重新安装。其他帐户表现正常。令人讨厌的帐户与其他帐户有何不同?为了解释清楚,此 PC 上的用户帐户如下:
- UserA(问题帐户)——通用帐户,95% 的时间都在使用。使用此帐户和管理员密码进行大多数产品安装。用户和家庭用户组的成员。
- 用户 B(不是问题帐户)——管理员帐户,根据需要偶尔使用。管理员组成员。
- UserC(不是问题帐户)——通用备份帐户和管理员帐户,很少使用。用户和家庭用户及管理员组的成员。
注意:诊断此问题的路径或攻击计划完全基于我过去调试大型实时系统的经验。我采取了一些死胡同,但没有造成损害。其他人可以采用不同的攻击方式。如果另一个线程中讨论了这个问题,请提供建议。
我有能力根据每个用户识别和隔离问题。这使我没有像大多数专家建议的那样启动“大爆炸”、从头开始、从已知检查点恢复等。我尝试过全部Eugene 调用的方法都无济于事。所以现在是时候深入研究问题的细节,找到有问题的数据并将其删除。我从哪里开始?以下是我根据过去的经验使用的方法。
探索缩略图缓存角度
我执行了上述所有清除和删除图标缓存并重新关联文件类型的步骤,以及我访问过的所有专家网站所建议和推荐的步骤。没有解决。然后我又重新温习了一下图标缓存的建立。何时、何地以及如何建立。图标缓存是否有最大限制?可能是因为 UserA 有太多文件关联,而 C:\Users\UserA\AppData\Local\Microsoft\Windows\Explorer 位置已达到极限?探索这个问题的一种方法是确定 UserA 使用的存储量与 UserB 和 UserC 的存储量。查看相应的 C:/Users/[UserA|UserB|UserC]/AppData 目录,可以看到 UserA @ 80GB、UserB @ 4GB 和 UserC @ 1.5GB。可能是这样吗?UserA @ 80GB?这让我看到了以下文章 -https://winaero.com/change-icon-cache-size-windows-10/。我按照文章中所述将“最大缓存图标”更改为 4MB。在更改之前,我计算出 UserA 位置中的图标缓存远远达不到文章中提到的 500 KB,但值得一试。尝试了此更改,问题仍然存在。
减少用户 A 的存储使用量
最大的问题是什么?Apple iPhone 和 iPad 备份。最近的备份是否超出了导致损坏的某些限制?我移动了备份位置,以便备份不再放在 C:\Users\UserA\AppData\Roaming 目录中,并将其重定向到其他地方。这有效地将 UserA 的 AppData 存储利用率从 80GB 降低到 10GB。重新启动 PC 并查看会发生什么。问题仍然存在。
检查注册表 – 这些 Shellex(Shell 扩展)是什么
我应该从哪里开始,又应该寻找什么?查看注册表发现了许多有趣的不一致之处。这里肯定有很多东西,但我对它的内容有些熟悉。经过几个小时的梳理和试验,我开始集中精力,找到与“.png”有关的任何内容。毕竟,这似乎是罪魁祸首。任何(实际上是大多数)带有 .png 扩展名的数据都会给用户 A 带来问题,因为任何带有 .png 扩展名的文件都只显示一些通用图标而不是图片。我强调用户 A,因为用户 B 和用户 C 没有出现错误的图标问题。经过几个小时的审查,这些条目似乎最有趣:
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes.png\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001_Classes.png\shellex{E357FCCD-A995-4576-B01F-234630154E96}
注意:S-1-5-21-1093094023-394786674-917728732-1001 是 UserA 的标识符。“-1001”是本讨论的关键,因为它是特定用户的唯一标识符。
对所有登录用户的注册表审查仅显示了 UserA (-1001) 的这些 shellex 条目,但没有显示 UserB (-500) 或 UserC (-1003) 各自的注册表数据。Shellex。它是什么?这里有一篇好文章 -https://learn.microsoft.com/en-us/windows/win32/shell/reg-shell-exts。文章中有趣的部分将 {E357FCCD-A995-4576-B01F-234630154E96} 标识为缩略图处理程序。有趣。这个 Shell 扩展还在哪里实现?对于我的 PC,结果是这样的:
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes.bmp\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes.png\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes\gdoc\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes\gdraw\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes\gform\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes\gjam\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes\glink\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes\gmap\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes\gscript\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes\gsheet\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes\gsite\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes\gslides\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001\SOFTWARE\Classes\gtable\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001_Classes.bmp\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001_Classes.png\shellex{E357FCCD-A995-4576-B01F-234630154E96}
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001_Classes\gdoc\shellex{E357FCCD-A995-4576-B01F-234630154E96}
。
。
。
计算机\HKEY_USERS\S-1-5-21-1093094023-394786674-917728732-1001_Classes\gtable\shellex{E357FCCD-A995-4576-B01F-234630154E96}
它们来自哪里?可能是 GoogleDrive?我早在 10 月份就安装了该产品,但根据专家的建议卸载了它,他们认为这可能是罪魁祸首。但对我来说并非如此。相关文章 -https://learn.microsoft.com/en-us/windows/win32/shell/thumbnail-providers- 还建议通过注册表忽略或绕过扩展 (DisableProcessIsolation = 1) 的方法。这也被证明是一条死路,问题仍然只存在于用户 A 身上。
从注册表中删除(有问题的?)条目
如本文开头所述,删除用户 A 的两个已识别注册表项后,任务栏中便会显示计算器图标(设置、[MS] 商店和照片查看器)。我现在可以(以用户 A 的身份)看到位于 C:\Program Files\WindowsApps\Microsoft.WindowsCalculator_11.2210.0.0_x64__8wekyb3d8bbwe\Assets 中的计算器图标,这些图标是图片图标,而不是某个通用图标。目前,我保留了其余的 .bmp 注册表项和 [可疑] Google 注册表项。我很可能会在以后删除 .bmp 注册表项,因为 .bmp 文件在本次调查期间确实不时出现问题。我还删除了“查看注册表”段落中给出的 DisableProcessIsolation = 1 注册表项。
总结
- 探索缩略图缓存角度——增加缩略图缓存分配并不能解决问题
- 减少用户 A 的存储使用量 – 减少用户 A 的存储量并未解决问题
- 检查注册表 – 这些 Shellex(Shell 扩展)是什么 – 让我找到了有问题的注册表项
- 从注册表中删除(有问题的?)条目 – 解决了我电脑上的问题
综上所述
我不需要执行“大爆炸”,从头开始,从已知检查点恢复等,这似乎是所有与 Windows 相关问题的标准“修复”。在进行这项调查时,我还偶然发现了另一个有趣的现象。对于大多数 UserA 的桌面图标,左下角的箭头都消失了。我只是在重新排列 UserB 桌面的图标以匹配 UserA 的位置时才注意到这一点。在执行此操作时,我截取了 UserA 的桌面,并想知道如何让 UserB 的图标也没有箭头。事实证明,删除 UserA 的注册表 Shell 扩展条目会恢复 UserA 桌面图标的快捷方式箭头。因此,shellex 的实现似乎也掩盖了 UserA 桌面快捷方式图标的不正确显示。至少可以说这是一个微妙但未被注意到的变化。至少我获得了一些有关 Shell 扩展在图标显示方面的知识。我希望这些信息对遇到此问题的其他用户有一定的价值。