0


WSL2启动时提示:参考的对象类型不支持尝试的操作

最近每次开机后打开WSL2时,都会出现

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

的提示:
在这里插入图片描述

在网上找到一种解决方式是:

管理员权限打开Powershell,输入如下命令:

netsh winsock reset

但是这种方法

只能暂时解决问题,使WSL能够正常启动

,下一次开机时,打开WSL时还是会提示同样的错误。

原因分析及解决办法:

WSL是微软的开源项目,在GitHub上WSL项目ISSUE中找到了造成这个问题的原因和解决办法,中文版的翻译如下:

  • 显然,如果Winsock LSP DLL被加载到其进程中,则wsl.exe将显示此错误。 最简单的解决方案是对wsl.exe使用WSCSetApplicationCategory WinAPI调用来防止这种情况。 在幕后,该调用在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog中为wsl.exe创建一个条目。 这告诉Windows不要将LSP DLL加载到wsl.exe进程中。 我们有一个可以进行此调用的工具: www.proxifier.com/tmp/Test20200228/NoLsp.exe 请以管理员身份运行,并以wsl.exe的完整路径作为参数: NoLsp.exe C:\windows\system32\wsl.exe 这已经解决了我的问题。 请让我知道它如何为您工作。

但是这个NoLsp.exe下载地址经常访问不了,有大佬已经把这个exe放到github上了,可以自行下载: https://github.com/dyingsu/nolsp
下载下来后,以

管理员权限

打开powershell,并进入到下载目录:
在这里插入图片描述

cd D:\迅雷下载\nolsp-main\nolsp-main

然后找到wsl的安装目录
在这里插入图片描述
复制wsl.exe所在路径名:
在这里插入图片描述
在powershell中输入

.\NoLsp_fix_WSL2_参考的对象类型不支持尝试的操作.exe C:\windows\system32\wsl.exe

,其中wsl.exe的路径需要替换成你自己的安装路径
在这里插入图片描述
执行完毕,看到有Success的提示则表示设置成功了。

Tips:如果github进不去,也可以手动改注册表解决:

输入

Win+R

弹出运行框,输入

regedit

即可快速打开注册表编辑器
我们要修改的注册表路径为:

计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\AppId_Catalog\0408F7A3

参数值直接参考下表及下图进行修改:
名称类型数据AppFullPath字符串值C:\Windows\System32\wsl.exePermittedLspCategoriesDWORD(32位)值0x80000000
在这里插入图片描述

标签: wsl2 windows

本文转载自: https://blog.csdn.net/fangye945a/article/details/123832623
版权归原作者 fangye945a 所有, 如有侵权,请联系我们删除。

“WSL2启动时提示:参考的对象类型不支持尝试的操作”的评论:

还没有评论