访问 WSL 应用时,损坏的文件会导致错误“系统无法访问该文件”

访问 WSL 应用时,损坏的文件会导致错误“系统无法访问该文件”

这是一个众所周知的错误,但常见的解决方案似乎不起作用,而且我还看到其他我认为是新的东西,我将介绍每个故障排除步骤,因为我希望其中一些步骤能够帮助那些知道如何解决问题的人和遇到同样问题的人识别这个问题。

当我尝试使用 WSL 打开 Debian 应用程序并尝试wsl在 Powershell 中运行命令时,出现此错误:The file cannot be accessed by the system.。就我而言,几天前通过命令行在我的系统上安装了 WSL 和 Debian(由于不相关的问题,我重新安装了它们)。

常见的解决方案之一是在 Windows 窗口中查找 WSL 应用程序条目Installed Apps,我在那里看不到 WSL 的条目,但我看到一个@{MicrosotCorporationll.WindowsSubsystemForLinux_2.1.5.0_x64_8wekyb3d8bbwe?ms-resource://MicrosoftCorporationll.WindowsSubsystemForLinux/Resources/AppName}(此应用程序的存储使用量为 0 字节)。

总结一下我目前找到的可能的解决方案:

  • 尝试使用Windows 设置repair中的选项Installed Apps,我尝试对上面提到的应用程序和 Debian 应用程序执行此操作,修复已完成 100%,但没有成功
  • dism尝试从提升的终端 ( DISM.exe /Online /Cleanup-image /Scanhealth+ )使用DISM.exe /Online /Cleanup-image /Restorehealth,命令运行成功,但没有起作用
  • C:\Program Files\WindowsApps尝试从窗口更改文件夹的权限Properties/Security,我不太确定在这里要更改什么,但我看到了一些有趣的东西(如下所列)

从文件夹的属性中WindowsApps我看到我的用户的主体似乎已损坏,当我双击它时,出现一个显示以下错误的窗口:This access control entry is corrupt. Delete it and create a new one.

这仅适用于“普通”用户主体,而不适用于同一用户的管理员条目。事实上,然后我尝试以管理员权限启动 WSL,并且可以毫无问题地登录 Debian

由于这似乎是一个文件损坏问题,我启动了sfc scannow它并发现了一个损坏错误并C:\WINDOWS\System32\drivers\bthmodem.sys解决了它,但我仍然在文件夹设置中看到错误消息WindowsApps,并且我仍然无法在没有提升权限的情况下使用 WSL,所以我想这与这个问题无关。

如何修复我的 wsl 安装和/或解决我的非特权用户主体的安全设置问题?

答案1

我得到了一个暗示这个答案并能够通过下载 msi 可执行文件重新安装 WSL来自发布页面,请注意,这也意味着重新安装发行版。

作为参考,我查看了事件查看器并发现了此错误:

软件包 MicrosoftCorporationII.WindowsSubsystemForLinux_2.1.5.0_neutral_~ 的 AppX 部署操作失败8wekyb3d8bbwe 出现错误 0x80073CF1。此故障的具体错误文本为:无法安装软件包 C:\Program Files\WindowsApps\MicrosoftCorporationII.WindowsSubsystemForLinux_2.1.5.0_neutral~_8wekyb3d8bbwe\AppxMetadata\AppxBundleManifest.xml 因为它没有适合 x64 架构的应用程序包。

相关内容