Visual Studio Code 中的 PowerShell

PowerShell 是一個基於 .NET 的工作導向命令列殼層與指令碼語言,為各種平台上的管理員提供了強大的工具集。

適用於 Visual Studio Code (VS Code) 的 Microsoft PowerShell 擴充功能,為 PowerShell 提供了豐富的語言支援與功能,例如語法自動完成、定義追蹤和語法檢查 (linting)。只要是支援 PowerShell 7+ 當前支援版本的環境,此擴充功能皆可運作。

對 Windows PowerShell 5.1 的支援採取盡力而為 (best effort) 的原則。需要 .NET Framework 4.8 或更高版本。

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

重要

網頁版 Visual Studio Code 僅支援基礎功能(如基本語法標示),因為 PowerShell 引擎無法在此環境中執行。

我們積極測試下列組態:

  • Windows Server 2022 (搭配 Windows PowerShell 5.1 與 PowerShell 7+)
  • macOS 14.7 (搭配 PowerShell 7+)
  • Ubuntu 24.04 (搭配 PowerShell 7+)

在 Windows 上,我們也會測試啟用與停用「限制語言模式」(Constrained Language Mode) 的情況。

安裝 PowerShell 擴充功能

您可以透過點擊 安裝按鈕,從 Visual Studio Code 市集中安裝 PowerShell 擴充功能。您也可以在 VS Code 內部安裝:開啟「擴充功能」檢視(鍵盤快速鍵 ⇧⌘X (Windows, Linux Ctrl+Shift+X)),輸入 PowerShell,然後選擇該擴充功能即可。

PowerShell extension

主要功能

偵錯

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

多版本支援

您可以按照這些指示,將 PowerShell 擴充功能設定為使用機器上安裝的任何支援版本。

或者,從命令選擇區(⇧⌘P (Windows, Linux Ctrl+Shift+P))執行 PowerShell: Show Session Menu 命令。

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 團隊與社群所制定的最佳實踐。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+,) 開啟設定。您仍然可以使用命令選擇區(⇧⌘P (Windows, Linux Ctrl+Shift+P))中的 喜好設定:開啟使用者設定 (JSON) 命令,或透過修改 "workbench.settings.editor" 設定來開啟 settings.json 檔案。

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

Types.ps1xml 與 Format.ps1xml 檔案

PowerShell .ps1xml 檔案用於擴充型別系統並定義輸出格式。有關這些檔案的詳細資訊,請參閱 Types.ps1xmlFormat.ps1xml 的官方 PowerShell 文件。您可以透過安裝 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 命令來開啟範例資料夾。

Open PowerShell Examples

其他資源

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

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

如需更多關於偵錯的資訊,請參考由 @keithHill 撰寫、關於使用 PowerShell 擴充功能進行偵錯的 Hey, Scripting Guy! 兩部分部落格系列:

測試新功能並提供回饋

我們鼓勵您儘可能嘗試「預覽版」(pre-release) 版本。當「預覽版」可用時,可以使用切換至預覽版本按鈕從市集中安裝。您可以使用出現的切換至正式發行版本按鈕切換回穩定版本。您也可以使用「解除安裝」按鈕旁邊的箭頭並選擇安裝另一個版本...,來降級至擴充功能的其他版本。

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

如果您發現錯誤,請開啟問題 (issue),並在我們修復期間切換回穩定版本。

© . This site is unofficial and not affiliated with Microsoft.