一些 Windows 10 和 Windows 11 用户报告说,每当他们尝试更新适用于 Linus (WSL) 的 Windows 子系统时,他们都会收到错误消息“ WslRegisterDistribution Failed with Error: 0x80070050 ”。据报道,Windows 10 和 Windows 11 都会出现此问题。
在我们彻底调查此问题后,发现有几种不同的情况可能会直接或间接导致此类行为。以下是您应该注意的事项:
- LXSS Manager 陷入困境——根据一些受影响的用户,您可以在 LXX Manager 服务既未打开也未关闭且因此无法访问的情况下处理此问题。您可以通过访问“服务”屏幕并完全重新启动服务来解决此特定问题。
- LXSS Manager 的状态未设置为自动——事实证明,如果您希望 WSL 更新过程无缝进行,您需要做的第一件事就是确保 LXSS Manager 服务的状态已设置自动。您可以从 Windows 安装的服务屏幕或使用注册表编辑器执行此操作。
- 适用于 Linux 的 Windows 子系统被禁用——您可能希望处理此问题的另一个原因是适用于 Linux 的 Windows 子系统实际上在系统级别被禁用,因此无法更新。要解决此问题,请访问 Windows 功能菜单并重新启用此组件。此外,您可以从提升的 Powershell 窗口执行此操作。
- 最近的系统更改– 如果您只是在执行某个驱动程序安装后或意外的系统中断后才注意到此问题的出现,则可能是最近的系统更改实际上导致了此行为。在这种情况下,您可以尝试将您的 PC 恢复到一切正常运行的状态。
- 过时的驱动程序组——事实证明,如果您当前使用的是过时的驱动程序,您可以预期 Linux 组件的 Windows 子系统会起作用。一些受影响的用户已通过将所有驱动程序组件更新到最新版本来设法解决该问题。
- 过时的 Windows 安装——如果您有待定的 Windows 更新,您一直在推迟,那么在尝试更新 WSL 组件之前先安装它们可能是明智的。几位受影响的用户已经确认,在他们将 Windows 安装到可用的最新版本后,问题立即得到解决。
- 系统文件损坏——根据许多受影响的用户的说法,系统文件损坏也可能是导致此特定问题的原因。我们的建议是首先部署 CHKDSK 扫描以确保没有任何故障扇区,然后快速连续部署 SFC 和 DISM 扫描以修复损坏的系统组件。作为最后的手段,您还应该考虑进行修复安装或全新安装。
- 第 3 方干扰——事实证明,有很多潜在的工具和第 3 方程序最终可能会干扰 Linux 的 Windows 子系统。为确保它们实际上都不会在您的 Windows 安装中导致此行为,请实现干净启动状态并查看您是否仍然无法更新 WSL 组件。
现在我们已经讨论了您可能会遇到此问题的所有潜在原因,让我们回顾一下其他受影响的用户已成功用于解决此问题的一系列修复,这些修复阻止了他们更新适用于 Linux 的 Windows 子系统。
1.重启LXSS管理器
一些受影响的用户声称,当 LXX 管理器服务不可用时,你应该预料到会处理这个问题,因为它既没有打开也没有关闭。通过转到“服务”页面并从头开始重新启动服务,您可以解决此特定问题。
注意:这是受影响用户报告的最常报告的修复程序之一。但请记住,修复可能只是暂时的,因为下次 WSL 需要更新时您将遇到相同类型的问题。
如果您还没有尝试重新启动LXSS 管理器,请按照下面的说明获取有关如何执行此操作的具体说明:
- 按Windows 键 + R打开“运行”对话框。接下来,在文本框中键入“services.msc ”,然后按Ctrl + Shift + Enter打开“服务”屏幕。
- 在用户帐户控制 (UAC) 中,单击是以授予管理员访问权限。
- 进入服务屏幕后,向下滚动服务列表并找到名为LxssManager 的条目。
- 找到LxssManager 后,右键单击它并单击停止以有效停止服务。
- 等待一分钟,然后再次 右键单击LxssManager ,然后单击“开始”以有效地重新启动服务。
如果此问题不允许您解决问题,请转到下面的下一个方法。
2.修改LxssManager的行为
事实证明,如果您希望 WSL 更新过程顺利进行,您需要做的第一件事就是确保 LXSS Manager 服务的状态设置为自动。使用注册表编辑器或 Windows 安装的服务界面,您可以完成此操作。
由于其中一种子方法在您的情况下可能无法遵循,因此我们决定涵盖这两种可能的情况,以便您有两种不同的方式来修改 Lxss Manager 的状态。
2.1. 从服务屏幕修改 LxssManager 的行为
如果您可以访问服务屏幕,这肯定是修改 LxssManager 行为的更简单方法。 您需要做的就是访问“服务”屏幕并将 LxxManager 的启动类型设置为“自动”。
请按照以下说明执行此操作的完整步骤:
- 按Windows 键 + R打开“运行”对话框。接下来,在文本框中键入“services.msc ”,然后按Ctrl + Shift + Enter打开“服务”屏幕。
- 在用户帐户控制 (UAC) 中,单击是以授予管理员访问权限。
- 进入服务屏幕后,向下滚动服务列表并找到名为LxssManager 的条目。
- 右键单击LxssManager ,然后从刚刚出现的上下文菜单中 单击属性。
- 接下来,进入“属性”屏幕后,访问“常规”选项卡并将“启动类型”更改为 “自动 ”,然后单击“应用”以保存更改。
- 重新启动您的 PC,看看问题现在是否已解决。
2.2. 通过注册表编辑器修改 Lxss Manager 的行为
和上面的方法做同样的事情比较难的是依赖Registry Editor来修改Lxss Manager的启动行为。
按照下面的说明,通过注册表编辑器导航到LxssManager的位置并将其值数据更改为2的具体步骤:
- 按Windows 键 + R打开“运行”对话框。接下来,在文本框中键入“regedit” ,然后按Ctrl + Shift + Enter打开具有管理员权限的注册表编辑器。
- 在用户帐户控制 (UAC) 中,单击是以授予管理员访问权限。
- 进入注册表编辑器后,使用左侧菜单导航至以下位置:
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\LxssManager
注意:您可以手动导航到此位置,也可以将该位置直接粘贴到顶部的导航栏中,然后按Enter立即到达那里。
- 进入正确位置后,移至右侧部分并双击“开始”
- 接下来,将Start的基数设置为Hexadecimal,将Value设置为2,然后单击Ok保存更改。
- 操作完成后,关闭注册表编辑器并查看问题现在是否已解决。
如果仍然出现相同类型的问题,请转到下面的下一个方法。
3. 为 Linux 和虚拟机平台启用 Windows 子系统
Linux 的 Windows 子系统在系统级别确实被禁用且无法升级的情况是您可能预计必须处理此问题的另一个原因。从 Windows 功能菜单重新启用此组件将解决此问题。此外,已提升的 powershell 窗口可用于此目的。
更新:事实证明,需要启用一个依赖项(虚拟机平台)才能更新 WSL 组件而不会出现问题。
在下文中,我们将向您展示如何通过 Windows 功能屏幕和提升的 Powershell 启用这些组件。请随意遵循您觉得最舒服的指南。
3.1. 通过 Windows 功能启用 WSL 和虚拟机平台
为了访问Windows 功能屏幕并执行这些修改,您需要首先访问经典的控制面板菜单。
以下是有关如何执行此操作的快速分步指南:
- 按Windows 键 + R打开“运行”对话框。接下来,在文本框中键入“control” ,然后按Ctrl + Shift + Enter打开提升的控制面板窗口。
- 在用户帐户控制 (UAC) 中,单击是以授予管理员访问权限。
- 进入经典控制面板菜单后,搜索“应用程序”,然后单击“程序和功能”。
- 接下来,单击 左侧菜单中的 打开或关闭 Windows 功能 。
- 在Windows 功能屏幕中,选中与适用于 Linux 的 Windows 子系统 和虚拟机平台关联的框,然后单击确定以启用它。
- 重新启动您的 PC 以强制执行更改,然后尝试再次更新 WSL 并查看问题现在是否已解决。
3.2. 通过 Powershell 启用 WSL 和虚拟机平台
如果您想节省一些时间,并且愿意从终端完成工作,您还可以通过提升的 Powershell 命令启用 WSL 和虚拟机平台。
请按照以下说明执行此操作的步骤:
- 按Windows 键 + R打开“运行”对话框。
- 进入“运行”对话框后,键入“powershell”,然后按Ctrl + Shift + Enter打开提升的Powershell窗口。
- 在用户帐户控制 (UAC) 中,单击是以授予管理员访问权限。
- 进入 Powershell 窗口后,键入以下命令并按Enter以启用 WSL + 每个必需的依赖项:
启用-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- 重新启动您的 PC,看看问题现在是否已解决。
如果仍然出现相同类型的问题,请转到下面的下一个方法。
4.使用系统还原实用程序
如果您只是在安装特定驱动程序或意外系统中断后才意识到这一点,那么最近的系统修改很可能实际上导致了此行为。在这种情况下,您可能会尝试将您的 PC 恢复到一切正常运行的状态。
这已帮助许多人解决了他们的问题。
通过使用 Windows 系统还原工具,您可以将计算机恢复到之前的状态。这可用于修复无法更新 WSL 组件的故障系统等问题。
遵循这些方法来修复您的计算机并使其恢复正常工作:
- 按Windows 键 + R启动“运行”命令。
- 在“运行”框中键入“rstrui”,然后按Enter 键启动系统还原向导。
- 在下一个屏幕上,选择不同的恢复点,然后按下一步按钮。
注意:选择在您意识到此错误之前建立的还原点,然后再次单击“下一步”。 - 恢复过程开始后单击完成,然后观察计算机重新启动。
- 重新启动 Windows 计算机并查看是否可以更新 WSL 组件。
如果问题仍未解决,请继续执行以下技术。
5. 安装每个挂起的 Windows 更新
在尝试更新 WSL 组件之前安装任何挂起的 Windows 更新可能是个好主意,如果你一直拖延的话。许多受影响的用户表示,将 Windows 安装更新到最新版本后,问题很快得到解决。
鉴于这个问题可以追溯到 Windows 10,微软有足够的时间来修复它。(即使不成功)。他们最近的举措包括作为 Windows 10 和 Windows 11 的累积更新分发的几个修补程序。要查看问题是否已为您解决,请在您的 Windows 计算机上安装缺少的修补程序。
据报告 Shell Infrastructure 主机 CPU 资源囤积问题的许多客户称,应用所有待处理的 Windows 更新通常会彻底解决该问题。
考虑到 Microsoft 之前发布了一些旨在减少此类问题的升级,这是您应该首先测试的未来解决方案。
要解决此问题,请确保您正在使用 Windows 更新功能运行最新版本的 Windows 11。
要解决“WslRegisterDistribution Failed with Error: 0x80070050”的问题,请按照以下步骤将 Windows 更新更新到最新版本的 Windows 11:
- 按Windows 键 + R打开“运行”对话框。
- 在文本框中,输入“ms-settings:windowsupdate”以打开“设置”应用程序的“Windows 更新”选项卡。
注意:如果您尚未调整默认UAC 设置,您现在可能会遇到帐户控制提示。在这种情况下单击是授予管理员访问权限。 - 接下来,从屏幕右侧的菜单中选择检查更新。
- 在本地完成下载后,单击立即安装以启动更新的本地安装。
- 通过重新启动计算机检查问题是否已解决。
如果你已经安装了每个计划的 Windows 更新但问题仍然存在,请继续阅读下面的下一个可能的修复程序。
6. 部署 CHKDSK 扫描
如果您仍在使用硬盘驱动器 (HDD),则应运行 CHKDSK 以确定异常行为是否与故障磁盘扇区有关。在这种扫描之后,损坏的扇区被换出它们未使用的等价物。
通过执行 CHKDSK 扫描以将损坏的存储扇区换成好的存储扇区,您可以让您的存储硬件运行更长时间并确认这种情况(再持续几个月)。
在这种情况下,运行检查磁盘扫描将通过用健康的扇区替换损坏的扇区来帮助您延长 HDD 的使用寿命。要排除这种情况,请尝试从提升的 CMD 提示符运行 CHKDSK 扫描。
注意:幸运的是,Windows 中内置的 CHKDSK 应用程序可以扫描故障和损坏,并修复任何逻辑错误和可能因强制删除尝试而留下的损坏数据。
重要提示:要授予 CHKDSK 修复损坏文件所需的权限,请在提升的 CMD 窗口中打开它。无论您使用的是哪个版本的 Windows,这些过程都应该起作用。
CHKDSK 扫描完成后,重新启动计算机以查看“WslRegisterDistribution Failed with Error: 0x80070050”错误是否仍然可见。
如果仍然出现相同的错误,请向下移动到下面的下一个方法。
7.执行干净启动操作
事实证明,有很多潜在的工具和第三方应用程序最终可能会干扰适用于 Linux 的 Windows 子系统。确保您的 Windows 安装处于干净启动状态,并检查您是否仍可以更新 WSL 组件。如果不是,其中一个或多个可能是此行为背后的真正罪魁祸首。
如果你走到这一步还没有找到可行的解决方案,你应该开始关注可能参与不稳定的第 3 方违规者以更新 WSL 组件。
据其他受影响的客户称,由于过度防御的安全套件或最终对与电源相关的内核功能产生影响的系统优化程序,您可以预期会处理此类问题。
如果每当您尝试升级 WSL 组件时此问题不断出现,您应该尝试干净启动并查看严重崩溃是否仍在发生。
如果您获得干净启动状态并且错误停止发生,则很明显第三方处理器启动服务是问题所在。找到问题现在只需逐步重新启用每个先前停用的项目,直到您看到错误再次发生。
另一方面,如果即使在干净启动状态后相同类型的问题仍然存在,请继续执行下面的下一个可能的解决方法。
8. 部署 SFC 和 DISM 扫描
如果您仍然无法升级 WSL 组件,下一步应该调查任何系统损坏问题。
可以通过立即运行SFC(系统文件检查器)和DISM(部署映像服务和管理)检查来修复可能导致此错误代码的绝大多数可能问题。
这两个内置实用程序本质上是相同的,但为了增加解决问题的机会而无需执行全新安装或修复安装,我们建议依次快速运行这两种类型的扫描。
SFC 扫描应该是您的第一个行动方案。不需要 Internet 连接,因为此扫描将使用本地存档将损坏的 Windows 文件替换为完整的文件。
一旦此过程开始,请避免停止、重新启动或关闭提升的 CMD 窗口。
这样做可能会导致 PC 的 HDD 或 SSD 出现其他本地问题。
SFC 扫描完成后重新启动计算机,当它恢复正常时,开始 DISM 扫描。
值得注意的是,与 SFC 检查不同,DISM 需要持续的 Internet 连接才能用健康的对应文件替换损坏的文件。这是必需的,因为 DISM 通过 Windows 更新功能接收未损坏的新副本,这与使用本地文件存档的 SFC 不同。
再次重新启动计算机,以查看在 DISM 扫描完成后问题是否已解决。
如果问题仍然存在,请继续执行下面建议的下一个解决方案。
9.执行全新安装或修复安装
如果上述修改均未改善您的情况,则您可能遇到严重的系统文件损坏,这超出了典型技术的范围。如果是这种情况,您应该简单地重置任何可能最终对WSL 组件产生影响的相关 Windows 组件。
为此,您可以执行完整的操作系统驱动器擦除,也可以只选择与您的操作系统相关的文件:
•全新安装——这是两个过程中执行起来比较容易的一个,因为您可以直接从 Windows 版本的菜单中进行安装,而无需使用安装光盘。仅当您不关心当前存储在驱动器上的敏感数据会发生什么时,才建议这样做。
•修复安装——如果操作系统驱动器 (C:) 当前存储了您无法承受丢失的重要信息,则建议使用此方法,也称为就地修复。但是,请记住,您必须使用适当的安装介质才能使其正常运行。此策略的主要优点是保留您的所有个人内容,包括游戏、应用程序和用户偏好。