- 问题现象
Windows 文件资源管理器左侧原本应显示:
Linux
└─ Ubuntu
但实际情况是,WSL 和 Ubuntu 均可正常运行,\wsl.localhost\Ubuntu 也能够访问,文件资源管理器左侧却没有原生的 Linux 导航节点。
该入口并不是"快速访问"快捷方式,而是 WSL 在 Windows 资源管理器中注册的 Shell 命名空间节点。
- 检查 Linux 命名空间注册
在 PowerShell 中执行:
reg query "HKCR\CLSID\{B2B4A4D1-2754-4140-A2EB-9A76D9D7CDC6}" /v System.IsPinnedToNameSpaceTree
当时返回:
错误: 系统找不到指定的注册表项或值。
这说明问题并非简单的导航栏固定状态被关闭,而是 WSL 的资源管理器 Shell 类注册缺失。
- 获取 WSL MSI 产品代码
使用管理员 PowerShell 执行:
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\MSI"
也可以直接读取产品代码:
$product = (
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\MSI"
).ProductCode
$product
正常情况下会得到一个 GUID,例如:
{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
- 修复 WSL 安装注册
在管理员 PowerShell 中执行:
Start-Process msiexec.exe `
-Verb RunAs `
-Wait `
-ArgumentList "/famus $product"
其中:
f 修复产品
a 重新安装全部文件
m 修复计算机级注册表项
u 修复用户级注册表项
s 修复快捷方式
该命令会重新修复 WSL 的 Windows 组件注册、Shell 扩展和相关快捷方式。
- 重启 WSL 与文件资源管理器
修复完成后执行:
wsl --shutdown
Stop-Process -Name explorer -Force
Start-Process explorer.exe
wsl -d Ubuntu -- true
然后重新打开文件资源管理器。
