🚀 在 VS Code 中免費取得

Visual Studio Code 中的 PowerShell

PowerShell 是一種以工作為基礎的命令列 Shell 和指令碼語言,建置於 .NET 之上,為任何平台上的管理員提供強大的工具集。

適用於 Visual Studio Code (VS Code) 的 Microsoft PowerShell 擴充功能提供豐富的語言支援和功能,例如語法完成、定義追蹤和 PowerShell 的 Linting。此擴充功能應可在任何支援 VS Code 的地方使用 目前支援版本的 PowerShell 7+

Windows PowerShell 5.1 的支援是盡最大努力提供。需要 .NET Framework 4.8 或更高版本。

支援 VS Code 遠端開發環境,包括 GitHub CodespacesVS Code Server

重要

適用於 Web 的 Visual Studio Code 僅支援有限的功能,例如基本語法醒目提示,因為 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 擴充功能

PowerShell extension

主要功能

偵錯

PowerShell 擴充功能使用 VS Code 的內建偵錯介面,以允許偵錯 PowerShell 指令碼和模組。如需偵錯 PowerShell 的詳細資訊,請參閱使用 VS Code

多版本支援

您可以設定 PowerShell 擴充功能以使用您電腦上安裝的任何支援 PowerShell 版本,方法是依照這些指示進行。

或從命令選擇區執行 [PowerShell: 顯示工作階段功能表] 命令 (⇧⌘P (Windows、Linux Ctrl+Shift+P))。

CodeLens 支援

CodeLens 是 VS Code 功能,可提供在原始碼中顯示的可動作內容資訊。

CodeLens 功能包括

  • Pester 執行測試偵錯測試

    Pester CodeLens Integration

  • Pester 符號支援

    CodeLens Pester Symbol Support

  • 函式、變數、類別和其他符號參考

    CodeLens 參考支援會顯示符號在您的程式碼中被參考的次數,並允許您跳到特定參考。

    CodeLens Function Reference Support

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 Settings

PSScriptAnalyzer 也提供程式碼格式化。您可以使用 [格式化文件] 命令或 (⇧⌥F (Windows Shift+Alt+F、Linux Ctrl+Shift+I)) 鍵盤快速鍵叫用自動文件格式化。

Pester 整合

Pester 是一個用於執行單元測試的架構,以執行,而 Windows PowerShell 5.1 隨附預先安裝的 Pester 3.40。若要更新 Pester 或在其他平台上安裝最新版本,請依照Pester 安裝指示進行。

PowerShell 擴充功能設定

您可以從 檔案 > 喜好設定 > [設定] 功能表項目自訂 VS Code 設定

您也可以選取位於活動列左下角的齒輪圖示。

codeGear

您也可以使用鍵盤快速鍵 ⌘, (Windows、Linux Ctrl+,) 開啟您的設定。您仍然可以使用命令選擇區中的 [喜好設定: 開啟使用者設定 (JSON)] 命令 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 或使用 "workbench.settings.editor" 設定變更預設設定編輯器來開啟 settings.json 檔案。

前往 使用者和工作區設定 以取得設定 VS Code 設定的詳細資訊。

Types.ps1xml 和 Format.ps1xml 檔案

PowerShell .ps1xml 檔案用於擴充類型系統和定義輸出格式設定。如需這些檔案的詳細資訊,請參閱關於 Types.ps1xmlFormat.ps1xml 的官方 PowerShell 文件。當您撰寫 .ps1xml 檔案時,您可以安裝 Red Hat 的 XML 擴充功能來取得 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-<版本>/examples

若要在 VS Code 中開啟或檢視範例,請從您的 PowerShell 命令提示字元執行下列命令

code (Get-ChildItem ~\.vscode\extensions\ms-vscode.PowerShell-*\examples)[-1]

您也可以使用 [PowerShell: 開啟範例資料夾] 命令,從命令選擇區 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 開啟範例。

Open PowerShell Examples

其他資源

PowerShell 文件中有更詳細的文章。從使用 VS Code 開始。

查看疑難排解指南以取得常見問題的解答。

如需偵錯的詳細資訊,請查看由 @keithHill 撰寫的 Hey, Scripting Guy! 關於使用 PowerShell 擴充功能進行偵錯的兩部分部落格文章系列

測試新功能並提供意見反應

我們建議您盡可能嘗試預先發行版本。當預先發行版本可用時,可以從 Marketplace 使用 [切換至預先發行版本] 按鈕來安裝。您可以使用將會出現的 [切換至發行版本] 按鈕切換回穩定版本的擴充功能。您也可以使用 [解除安裝] 按鈕旁的箭號,然後選擇 [安裝另一個版本...] 來降級至其他版本的擴充功能。

Screenshot showing the button to switch to a pre-release version.

如果您發現錯誤,請開啟問題,並在我們修正時還原為穩定版本。