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 服务器。
对于 Visual Studio Code for the Web,由于 PowerShell 引擎无法在此环境中运行,因此仅支持有限功能,例如基本的语法高亮。
我们积极测试以下配置
- Windows Server 2022,带有 Windows PowerShell 5.1 和 PowerShell 7+
- macOS 14.7,带有 PowerShell 7+
- Ubuntu 24.04,带有 PowerShell 7+
在 Windows 上,我们还测试了启用和禁用受限语言模式的情况。
安装 PowerShell 扩展
可以通过单击安装按钮从 Visual Studio Code Marketplace 安装 PowerShell 扩展。您也可以在 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”
调试
PowerShell 扩展使用 VS Code 内置的调试界面来调试 PowerShell 脚本和模块。有关调试 PowerShell 的更多信息,请参阅使用 VS Code。
多版本支持
您可以按照这些说明,将 PowerShell 扩展配置为使用您机器上安装的任何受支持的 PowerShell 版本。
或者从命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 运行 PowerShell: Show Session Menu 命令。
CodeLens 支持
CodeLens 是 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) 命令或通过更改默认设置编辑器使用 "workbench.settings.editor" 设置来打开 settings.json 文件。
有关配置 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 扩展对所有 .ps1xml 文件使用 PowerShell 仓库中的官方 XML 模式。配置这些模式可在 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: Open Examples Folder 命令打开示例。

其他资源
PowerShell 文档中有更详细的文章。从使用 VS Code 开始。
查看故障排除指南,获取常见问题的解答。
有关调试的更多信息,请查阅 @keithHill 撰写的关于使用 PowerShell 扩展进行调试的《Hey, Scripting Guy!》两部分博客系列文章:
测试新功能并提供反馈
我们鼓励您尽可能尝试预发布版本。当预发布版本可用时,可以通过市场中的切换到预发布版本按钮进行安装。您可以通过出现的切换到发布版本按钮切换回扩展的稳定版本。您还可以使用卸载按钮旁边的箭头并选择安装其他版本...来降级到其他版本的扩展。

如果您发现错误,请提出问题并在我们修复它之前恢复到稳定版本。