使用 Visual Studio Code 进行远程编辑和调试
对于熟悉 ISE 的用户,你可能会回忆说,你可以从集成控制台运行 psedit file.ps1
以在 ISE 中打开文件(本地或远程)。
此功能在适用于 VSCode 的 PowerShell 扩展中也可用。 本指南说明如何去做这件事。
先决条件
本指南假定你有:
- 有权访问的远程资源(例如 VM、容器)
- 在其中运行的 PowerShell 和主机计算机
- VSCode 和适用于 VSCode 的 PowerShell 扩展
此功能适用于 PowerShell 和 Windows PowerShell。
此功能在通过 WinRM、PowerShell Direct 或 SSH 连接到远程计算机时也有效。 如果你想使用 SSH,但在使用 Windows 时,请查看 Win32 版本的 SSH!
重要
Open-EditorFile
和 psedit
命令仅适用于由适用于 VSCode 的 PowerShell 扩展创建的 PowerShell 集成控制台。
用法示例
这些示例显示从 MacBook Pro 到在 Azure 中运行的 Ubuntu VM 的远程编辑和调试。 此过程在 Windows 上完全相同。
使用 Open-EditorFile 进行本地文件编辑
启动适用于 VSCode 的 PowerShell 扩展并打开 PowerShell 集成控制台后,我们可以键入 Open-EditorFile foo.ps1
或 psedit foo.ps1
在编辑器中打开本地 foo.ps1 文件。
注意
文件 foo.ps1
必须已存在。
从这里,我们可以:
将断点添加到装订线
按 F5 调试 PowerShell 脚本。
调试时,可以与调试控制台交互,查看左侧作用域中的变量,以及所有其他标准调试工具。
使用 Open-EditorFile 进行远程文件编辑
现在,让我们进入远程文件编辑和调试。 这些步骤几乎相同,只需首先执行一项作 - 将 PowerShell 会话输入到远程服务器。
有一个 cmdlet 可以做到这一点。 它叫 Enter-PSSession
。
总之:
Enter-PSSession -ComputerName foo
通过 WinRM 启动会话Enter-PSSession -ContainerId foo
和Enter-PSSession -VmId foo
通过 PowerShell Direct 启动会话Enter-PSSession -HostName foo
通过 SSH 启动会话
有关详细信息,请参阅 Enter-PSSession 的文档。
由于我们要远程处理 Azure 中的 Ubuntu VM,因此我们将使用 SSH。
首先,在集成控制台中运行 Enter-PSSession
。 当 [<hostname>]
显示在提示左侧时,你已连接到远程会话。
现在,我们可以执行与编辑本地脚本相同的步骤。
运行
Open-EditorFile test.ps1
或psedit test.ps1
以打开远程test.ps1
文件编辑文件/设置断点
开始调试远程文件(F5)
如果遇到任何问题,可以在 GitHub 存储库中提出问题。