Visual Studio Code 中的 PowerShell
PowerShell 是一個基於任務的命令列 shell 和指令碼語言,構建於 .NET 之上,為任何平臺上的管理員提供了一套強大的工具集。
Microsoft 適用於 Visual Studio Code (VS Code) 的 PowerShell 擴充套件 提供了豐富的語言支援和功能,例如語法補全、定義跟蹤和 PowerShell 的 linting。該擴充套件應能在 VS Code 支援的任何地方使用,目前支援 PowerShell 7+ 的已支援版本。
Windows PowerShell 5.1 的支援基於盡力而為的原則。需要 .NET Framework 4.8 或更高版本。
支援 VS Code 遠端開發環境,包括 GitHub Codespaces 和 VS Code Server。
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 中透過開啟 **擴充套件** 檢視(快捷鍵 ⇧⌘X (Windows、Linux Ctrl+Shift+X)),輸入 *PowerShell*,然後選擇 PowerShell 擴充套件來安裝它。

主要功能
- 語法高亮
- 高階內建程式碼片段
- Cmdlet 等的 IntelliSense
- PowerShell Script Analyzer 報告的“問題”
- Cmdlet、變數、類等的“轉到定義”
- Cmdlet、變數、類等的“查詢引用”
- 文件和工作區符號導航
- 基於符號的結構檢視
- 使用 F8 在當前終端執行選定的 PowerShell 程式碼
- 使用 Ctrl + F1 啟動當前游標所在符號的線上幫助
- PowerShell 偵錯程式整合
- 可與偵錯程式互動的擴充套件終端(嘗試
Set-PSBreakpoint!) - ISE 主題可在主題選擇器中獲得
- 還可以嘗試 ISE 模式,透過 ⇧⌘P (Windows、Linux Ctrl+Shift+P) 開啟命令面板,然後搜尋“啟用 ISE 模式”。
除錯
PowerShell 擴充套件使用 VS Code 的內建除錯介面來除錯 PowerShell 指令碼和模組。有關除錯 PowerShell 的更多資訊,請參閱“使用 VS Code”。
多版本支援
您可以透過遵循這些說明,將 PowerShell 擴充套件配置為使用您計算機上安裝的任何受支援的 PowerShell 版本。
或者,從命令面板(⇧⌘P (Windows、Linux Ctrl+Shift+P))執行 **PowerShell: 顯示會話選單** 命令。
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 檔案用於擴充套件型別系統和定義輸出格式。有關這些檔案的更多資訊,請參閱關於 Types.ps1xml 和 Format.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: 開啟示例資料夾** 命令來開啟示例。

其他資源
PowerShell 文件中有更詳細的文章。從“使用 VS Code”開始。
檢視疑難解答指南,獲取常見問題的答案。
有關除錯的更多資訊,請檢視 @keithHill 撰寫的關於使用 PowerShell 擴充套件進行除錯的《Hey, Scripting Guy!》系列部落格文章(共兩部分)。
測試新功能和提供反饋
我們鼓勵您儘可能嘗試“預釋出”版本。當有“預釋出”版本可用時,可以使用“切換到預釋出版本”按鈕從 marketplace 安裝。您可以使用出現的“切換到釋出版本”按鈕切換回擴充套件的穩定版本。您還可以透過單擊“解除安裝”按鈕旁邊的箭頭並選擇“安裝其他版本...”來降級到擴充套件的其他版本。

如果您發現 bug,請開啟一個 issue,並在我們修復它之前恢復到穩定版本。