解决 WSL2 启动报错参考的对象类型不支持尝试的操作

后知后觉 暂无评论

在安装 Proxifier 后,启动 WSL2 虚拟机时会提示报错“参考的对象类型不支持尝试的操作”。

在英文系统下提示的报错为:

The attempted operation is not supported for the type of object referenced.

更新日志

问题

报错如下图

参考的对象类型不支持尝试的操作

这个报错在微软的官方项目中有讨论,原因是 winsock 的 LSP DLL 默认会加载进所有的网络接口程序中,包含 WSL2,因此产生了这个报错。

同理,所有调用 winsock 的代理程序都会触发这个问题,常见的网游加速器比如网易UU加速器、讯游加速器等。

解决

最简单的解决办法,下载由 Proxifier 官方提供的配置工具 NoLsp.exe 即可解决,下载完毕后管理员身份运行 PowerShell,执行命令

NoLsp.exe C:\windows\system32\wsl.exe

这个工具实际上只是配置注册表白名单的程序,如果无法下载这个软件或者对其安全性有担忧,可以使用下面的脚本手动添加 winsock 白名单,效果等同于 NoLsp.exe。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog\0408F7A3]
"AppFullPath"="C:\\\\windows\\\\system32\\\\wsl.exe"
"PermittedLspCategories"=dword:80000000

新建文本文件,写入上面的内容,保存并命名为 wsl2.reg(必须为 reg 后缀,文件名可自行定义)双击打开,并授权管理员权限,回车后即可添加完毕。

更新内容:在新版 Windows 上 WSL 的安装路径变更,脚本变化为:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog\04FC3F2F]
"AppFullPath"="C:\\Program Files\\WindowsApps\\MicrosoftCorporationII.WindowsSubsystemForLinux_1.0.3.0_x64__8wekyb3d8bbwe\\wsl.exe"
"PermittedLspCategories"=dword:80000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog\12AF910F]
"AppFullPath"="C:\\Program Files\\WindowsApps\\MicrosoftCorporationII.WindowsSubsystemForLinux_1.0.3.0_x64__8wekyb3d8bbwe\\wslservice.exe"
"PermittedLspCategories"=dword:80000000
注意:需要自行检查脚本文件中的路径是否匹配,如 C:\\Program Files\\WindowsApps\\MicrosoftCorporationII.WindowsSubsystemForLinux_1.0.3.0_x64__8wekyb3d8bbwe\\wslservice.exe 路径的地址。

附录

参考链接

如果遇到问题或者对文章内容存疑,请在下方留言,博主看到后将及时回复,谢谢!
禁用 / 当前已拒绝评论,仅可查看「历史评论」。