Visual Studio Code 中的 PowerShell
PowerShell 是一种基于任务的命令行 shell 和脚本语言,基于 .NET 构建,为任何平台上的管理员提供强大的工具集。
适用于 Visual Studio Code (VS Code) 的 Microsoft PowerShell 扩展提供了丰富的语言支持和功能,例如 PowerShell 的语法补全、定义跟踪和代码检查。该扩展应在 VS Code 支持的所有地方使用当前支持的 PowerShell 7+ 版本运行。
Windows PowerShell 5.1 的支持将尽力提供。需要 .NET Framework 4.8 或更高版本。
支持 VS Code 远程开发环境,包括 GitHub Codespaces 和 VS Code 服务器。
由于 PowerShell 引擎无法在此环境中运行,因此 Visual Studio Code for the Web 仅支持有限的功能,例如基本语法高亮。
我们积极测试以下配置:
- Windows Server 2022,带有 Windows PowerShell 5.1 和 PowerShell 7+
- macOS 14.7,带有 PowerShell 7+
- Ubuntu 24.04,带有 PowerShell 7+
在 Windows 上,我们还测试了启用和禁用受限语言模式的情况。
安装 PowerShell 扩展
PowerShell 扩展可以从 Visual Studio Code Marketplace 安装,方法是单击安装按钮。您也可以在 VS Code 中安装 PowerShell 扩展,方法是使用键盘快捷键 ⇧⌘X (Windows、Linux Ctrl+Shift+X) 打开扩展视图,输入 PowerShell,然后选择 PowerShell 扩展。
主要功能
- 语法高亮
- 高级内置代码片段
- cmdlet 及其他内容的 IntelliSense
- 由 PowerShell 脚本分析器报告的问题
- cmdlet、变量、类及其他内容的转到定义
- cmdlet、变量、类及其他内容的查找引用
- 文档和工作区符号导航
- 基于符号的大纲视图
- 使用 F8 在当前终端中运行选定的 PowerShell 代码
- 使用 Ctrl + F1 启动光标下符号的在线帮助
- PowerShell 调试器集成
- 一个可以与调试器交互的扩展终端(试试
Set-PSBreakpoint
!) - PowerShell ISE 主题可在主题选择器中找到
- 还可以使用 ⇧⌘P (Windows、Linux Ctrl+Shift+P) 尝试 ISE 模式,然后搜索“Enable ISE Mode”(启用 ISE 模式)
调试
PowerShell 扩展使用 VS Code 内置的调试接口来调试 PowerShell 脚本和模块。有关调试 PowerShell 的更多信息,请参阅使用 VS Code。
多版本支持
您可以按照这些说明配置 PowerShell 扩展以使用计算机上安装的任何受支持的 PowerShell 版本。
或者从命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 运行 PowerShell: Show Session Menu 命令。
CodeLens 支持
CodeLenses 是 VS Code 的一项功能,用于提供在源代码中显示的、可操作的上下文信息。
CodeLens 功能包括:
-
Pester 运行测试和调试测试。
-
Pester 符号支持
-
函数、变量、类及其他符号引用
CodeLens 引用支持显示代码中符号被引用的次数,并允许您跳转到特定的引用。
PSScriptAnalyzer 集成
PSScriptAnalyzer 是一个 PowerShell 模块,为模块和脚本提供静态源代码检查器。PSScriptAnalyzer 拥有验证 PowerShell 代码质量的规则。这些规则基于 PowerShell 团队和社区确定的 PowerShell 最佳实践。PSScriptAnalyzer 生成诊断记录(错误和警告),以告知用户潜在的代码缺陷并提出可能的改进解决方案。
PowerShell 扩展默认包含 PSScriptAnalyzer,并自动对您在 VS Code 中编辑的 PowerShell 脚本文件执行分析。
PSScriptAnalyzer 带有一系列内置规则,用于检查 PowerShell 源代码的各个方面,例如未初始化变量的存在、PSCredential 类型的使用、Invoke-Expression
的使用等。该模块还允许您包含或排除特定规则。
要禁用 PSScriptAnalyzer,请打开您的设置 (⌘, (Windows、Linux Ctrl+,)),浏览扩展,选择 PowerShell 扩展,然后取消勾选脚本分析: 启用 (powershell.scriptAnalysis.enable
) 的复选框。
PSScriptAnalyzer 还提供代码格式化功能。您可以使用 格式化文档 命令或键盘快捷键 (⇧⌥F (Windows Shift+Alt+F、Linux Ctrl+Shift+I)) 调用自动文档格式化。
Pester 集成
Pester 是一个用于运行单元测试的框架,Windows PowerShell 5.1 预装了 Pester 3.40。要在其他平台上更新 Pester 或安装最新版本,请按照Pester 安装说明进行操作。
PowerShell 扩展设置
您可以从 文件 > 首选项 > 设置 菜单项自定义 VS Code 设置。
您还可以选择活动栏左下角的齿轮图标。
您还可以使用键盘快捷键 ⌘, (Windows、Linux Ctrl+,) 打开您的设置。您仍然可以使用命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 中的 首选项: 打开用户设置 (JSON) 命令来打开 settings.json
文件,或者通过更改 "workbench.settings.editor"
设置来更改默认设置编辑器。
有关配置 VS Code 设置的更多信息,请参阅用户和工作区设置。
Types.ps1xml 和 Format.ps1xml 文件
PowerShell .ps1xml
文件用于扩展类型系统和定义输出格式。有关这些文件的更多信息,请参阅 PowerShell 官方文档中关于 Types.ps1xml 和 Format.ps1xml 的内容。通过安装 Red Hat 的 XML 扩展,您可以在编写 .ps1xml
文件时获得 IntelliSense 功能。安装后,将此配置添加到您的用户设置中:
"xml.fileAssociations": [
{
"systemId": "https://raw.githubusercontent.com/PowerShell/PowerShell/master/src/Schemas/Format.xsd",
"pattern": "**/*.Format.ps1xml"
},
{
"systemId": "https://raw.githubusercontent.com/PowerShell/PowerShell/master/src/Schemas/Types.xsd",
"pattern": "**/*.Types.ps1xml"
}
]
此配置告知 XML 扩展将 PowerShell 仓库中的官方 XML 模式用于所有 .ps1xml
文件。配置这些模式可在 ps1xml
文件中启用以下功能:
- 语法错误报告
- 模式验证
- 标签和属性补全
- 自动闭合标签
- 符号高亮
- 文档折叠
- 文档符号和大纲
- 重命名支持
- 文档格式化
示例脚本
示例脚本包含在扩展中,可以在以下路径找到。
~/.vscode/extensions/ms-vscode.PowerShell-<version>/examples
要在 VS Code 中打开或查看示例,请在 PowerShell 命令提示符下运行以下命令:
code (Get-ChildItem ~\.vscode\extensions\ms-vscode.PowerShell-*\examples)[-1]
您还可以通过命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 中的 PowerShell: 打开示例文件夹 命令来打开示例。
其他资源
PowerShell 文档中有更详细的文章。请从使用 VS Code 开始。
查看故障排除指南以获取常见问题的答案。
有关调试的更多信息,请查阅 @keithHill 撰写的关于使用 PowerShell 扩展进行调试的 Hey, Scripting Guy! 两部分系列博客文章:
测试新功能并提供反馈
我们鼓励您尽可能尝试预发布版本。当预发布版本可用时,可以通过 marketplace 中的切换到预发布版本按钮进行安装。您可以使用出现的切换到发布版本按钮切换回扩展的稳定版本。您还可以使用卸载按钮旁边的箭头并选择安装其他版本...来降级到扩展的其他版本。
如果您发现错误,请提出问题,并在我们修复期间恢复到稳定版本。