自 2023 年 1 月 30 日起,可以在启动时启动 WSL(Windows 11 Pro)吗?

Gee*_*y51 5 windows-task-scheduler windows-subsystem-for-linux wsl2 windows-11

很明显,让 WSL 在启动时启动是相当棘手的,并且可以使用多种方法来实现此目标。

对最近一篇文章的回答(2022 年 12 月 24 日)指出,当 WSL 搬到他们的商店时,微软打破了它。WSL 无法再作为服务或计划任务运行,因为它将不再在会话 0 中运行。 关于在 Windows 启动时运行 wsl 的超级用户问题。然后 @andrus 的第二个答案指出,一种有效的方法(截至 2022 年 12 月 25 日)是使用set object = createobject("wscript.shell") object.run "wsl.exe", 0仍然适用于最新的 WSL 和 Windows 11。

大概该代码将用作 vbs 脚本,并且将按照本文的思路从任务计划程序启动。

我没能让它发挥作用。我可以从命令行(powershell)使用 vbs 脚本启动 wsl,但从任务计划程序启动时它不起作用。如果重要的话,我正在运行Windows 11 Pro,从微软商店下载wsl,使用“wsl --install Ubuntu”安装wsl(安装22.04),然后将wsl配置为使用systemd,然后添加相关的“网桥”两个 windows 和 wsl 都发生变化,因此 sshd 启动并且机器获得自己的 IP#。当从命令行(使用 wscript 或 cscript)启动时,所有这些似乎都工作得非常好。但我看不到任何证据表明当从任务调度程序调用 vbs 脚本时 wsl 实际上启动。跟踪任务计划程序的返回代码仅显示“0”返回代码。

那么,任何人都可以确认 Andrus 的声明,即当他们使用通过 Microsoft 商店安装的现代版本的 WSL 2 时,该解决方案仍然适用于他们吗?也许还可以向我指出如何设置它的最佳描述?

wsl --版本返回

WSL version: 1.0.3.0
Kernel version: 5.15.79.1
WSLg version: 1.0.47
MSRDC version: 1.2.3575
Direct3D version: 1.606.4
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.1105
Run Code Online (Sandbox Code Playgroud)

Gee*_*y51 1

目前似乎无法将 WSL 作为服务启动。这个问题现在在这个超级用户问题中得到了更彻底的 讨论,该问题提供了一些基于与 github 上的 Microsoft WSL 团队讨论的文档。也没有任何评论来证实 WSL2 的现代安装是否成功。