在开发应用程序时,我在 WSL2 上运行服务器,我需要从 Windows 主机上的浏览器连接到它。为此,我需要在每次启动 WSL 时绑定一些端口并创建防火墙规则。它是通过位于 Windows 机器上的 powershell 脚本完成的。现在我在任务调度程序中有一个任务,当我登录到 Windows 时运行这个脚本。它工作正常,但是当我手动重新启动 WSL 时它不会触发,我有时会这样做。要在 WSL 中启动时运行脚本,我可以在.profile
或 中调用它.bashrc
,但我想在 Windows 上运行它,而不是在 WSL 中。有没有办法做到这一点?
你在正确的轨道上。只需在您.profile
使用Windows(不是 Linux)PowerShell 解释器中运行 PowerShell 脚本:
/mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe "C:\myscript.ps1"
它可能不需要完全合格,但这样做可能更安全。
如果需要,您还可以将路径从 WSL 转换为 Windows,例如,powershell.exe $(wslpath -w script/myscript.ps1)
如果您想将脚本存储在 WSL ext4 文件系统上(例如,您可能希望它相对于您的主目录)。
当然,pwsh.exe
如果正在使用 PowerShell 核心,则替换。如果 (a) 不在您的路径中或 (b) 您还安装了 Linux PowerShell 核心版本,则完全限定它。
由于您使用的是在 Windows 上运行的 PowerShell 解释器,因此所有命令(端口转发、防火墙规则)都将针对 Windows 主机运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句