在安装 Proxifier 后,启动 WSL2 虚拟机时会提示报错“参考的对象类型不支持尝试的操作”。
在英文系统下提示的报错为:
The attempted operation is not supported for the type of object referenced.
更新日志
- 20221225:因 wsl 程序位置变化,注册表脚本内容更新;
问题
报错如下图
这个报错在微软的官方项目中有讨论,原因是 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
路径的地址。
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2022-03-12 15:56 PM