Visual Studio Code 中的PowerShell

PowerShell 是一种基于任务的命令行 shell 和基于 .NET 的脚本语言,能够实现 为任何平台的管理员提供强大的工具集。

Microsoft PowerShell for Visual Studio Code(VS Code)提供了丰富的语言 支持和功能,如语法补全、定义跟踪和 PowerShell。使用当前支持的PowerShell 7+版本,扩展应能在所有支持 VS Code 的地方运行。

Windows PowerShell 5.1 的支持是基于尽力而为的。.NET Framework 4.8 或 需要更高的。

VS Code 远程开发支持包括 GitHub CodespacesVS Code Server 在内的环境。

重要

Visual Studio Code for the Web 仅支持有限功能,如 Basic 语法高亮,因为PowerShell引擎无法在此环境中运行。

我们积极测试以下配置:

  • Windows Server 2022,搭载 Windows PowerShell 5.1 和 PowerShell 7+
  • macOS 14.7 with PowerShell 7+
  • Ubuntu 24.04 with PowerShell 7+

在Windows上,我们也会测试是否启用受限语言模式。

安装PowerShell扩展

PowerShell 扩展可通过 Visual Studio Code Marketplace 点击安装按钮安装。你也可以在VS Code内打开安装PowerShell扩展 扩展视图,带有键盘快捷键⇧⌘X(Windows,Linux Ctrl+Shift+X),输入PowerShell, 然后选择PowerShell扩展:

PowerShell 扩展

主要特色

调试

PowerShell扩展利用VS Code内置的调试接口,允许 调试PowerShell脚本和模块。关于调试PowerShell的更多信息,请参见“使用VS Code”。

多版本支持

你可以配置PowerShell扩展,使用安装在上的任何支持版本的PowerShell 按照这些说明作你的机器。

或者从命令面板中运行PowerShell:显示会话菜单命令 (⇧⌘P(Windows,Linux Ctrl+Shift+P)。

CodeLens 支持

CodeLenses 是 VS Code 的一个功能,用于提供可作的、有上下文的信息并显示出来 在源代码中。

CodeLens 的功能包括:

  • 催促测试调试测试

    Pester CodeLens 集成

  • 烦恼符号支持

    CodeLens 纠结符号支持

  • 函数、变量、类及其他符号引用

    CodeLens 引用支持显示符号在你内部被引用的次数 代码允许你跳转到具体的引用。

    CodeLens 函数引用支持

PSScriptAnalyzer 集成

PSScriptAnalyzer 是一个 PowerShell 模块,提供模块的静态源代码检查器 以及剧本。PSScriptAnalyzer 有规则来验证 PowerShell 代码的质量。这些规则 基于PowerShell团队和社区确定的PowerShell最佳实践。PSScriptAnalyzer 生成诊断记录(错误和警告),以告知用户 潜在的代码缺陷并提出改进的可能方案。

PowerShell 扩展默认包含 PSScriptAnalyzer,并自动执行 分析你在VS Code中编辑的PowerShell脚本文件。

PSScriptAnalyzer 内置了一系列规则,用于检查 PowerShell 源代码如未初始化变量的存在、PSCredential 类型的使用 使用调用表达,以及其他。该模块还允许你包含或排除特定内容 规则。

要禁用PSScriptAnalyzer,请打开设置(⌘,(Windows,Linux Ctrl+,),浏览扩展,选择PowerShell扩展,并取消选择脚本的复选框 分析:启用 (PowerShell.scriptAnalysis.enable).

PSScriptAnalyzer 设置

PSScriptAnalyzer 还提供代码格式化。你可以调用自动文档格式化 使用格式化文档命令或(⇧⌥F,Windows Shift+Alt+F,Linux Ctrl+Shift+I)快捷键。

佩斯特积分

Pester 是一个用于执行单元测试的框架,Windows PowerShell 5.1 预装了 Pester 3.40。要更新Pester或安装最新版本 平台,请按照Pester的安装说明作。

PowerShell 扩展设置

你可以在“文件”>偏好设置>设置菜单中自定义VS Code设置

你也可以选择活动栏左下角的齿轮图标。

codeGear

你也可以使用键盘快捷键⌘(Windows,Linux Ctrl+,打开设置。 你仍然可以打开settings.json使用偏好设置的文件:打开用户设置(JSON)命令,来自 命令调色板(⇧⌘P(Windows,Linux Ctrl+Shift+P)或通过更改默认设置编辑器 其中“workbench.settings.editor”环境。

访问用户和工作区设置,了解更多关于配置 VS Code 设置的信息。

Types.ps1xml 和 Format.ps1xml 文件

PowerShell.ps1xml文件用于扩展类型系统并定义输出格式。更多内容 有关这些文件的信息,请参见官方 PowerShell 文档中的 Types.ps1xmlFormat.ps1xml。你可以在创作时获得IntelliSense的功能.ps1xml通过安装文件 由 Red Hat 提供的 XML 扩展。安装后,将以下配置添加到用户设置中:

"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: Open Examples Folder 命令。

开放PowerShell示例

附加资源

PowerShell文档中有更详细的文章。先从使用VS代码开始。

查看故障排除指南,里面有常见问题的答案。

想了解更多关于调试的信息,可以看看“嘿,脚本家!”两部分博客文章系列 由@keithHill编写,关于使用 PowerShell 扩展进行调试:

测试新功能并提供反馈

我们鼓励你尽可能尝试预发布版本。当预发布版本可用时,可以通过Switch从市场安装到 预发布版本按钮。你可以切回稳定版扩展 通过使用出现的“切换至发布版本”按钮来实现。你也可以降级 通过卸按钮旁的箭头,切换到其他版本的扩展,以及 选择安装另一个版本......

截图显示切换到预发布版本的按钮。

如果你发现了bug,请打开问题并恢复到稳定版本,我们会修复它。