使用 Visual Studio Code 进行远程编辑和调试
对于熟悉 ISE 的你来说,你可能还记得可以从集成控制台运行 psedit file.ps1
以在 ISE 中打开本地或远程文件。
该功能在适用于 VSCode 的 PowerShell 扩展中也可用。 本指南将演示如何操作。
必备条件
本指南假定你拥有:
- 可访问的远程资源(例如:虚拟机、容器)
- 在其中运行的 PowerShell 和主机计算机
- VSCode 和适用于 VSCode 的 PowerShell 扩展
此功能适用于 PowerShell 和 Windows PowerShell。
当通过 WinRM、PowerShell Direct 或 SSH 连接到远程计算机时,此功能也适用。 如果要使用 SSH,但使用的是 Windows,请查看 Win32 版本的 SSH!
重要
Open-EditorFile
和 psedit
命令仅适用于 PowerShell 集成控制台 (由适用于 VSCode 的 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 存储库中提问。