Visual Studio Code での PowerShell
PowerShell は、.NET 上に構築されたタスクベースのコマンドラインシェルおよびスクリプト言語であり、あらゆるプラットフォームの管理者に強力なツールセットを提供します。
Visual Studio Code (VS Code) 用の Microsoft PowerShell 拡張機能は、PowerShell 向けの豊富な言語サポートと、構文補完、定義への移動、リンティングなどの機能を提供します。この拡張機能は、現在サポートされている PowerShell 7 以降のバージョンを使用する、VS Code がサポートされているすべての環境で動作します。
Windows PowerShell 5.1 のサポートはベストエフォート方式で提供されます。.NET Framework 4.8 以上が必要です。
VS Code Remote Development 環境(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 上では、制約付き言語モード(Constrained Language Mode)が有効な場合と無効な場合の両方でテストを行っています。
PowerShell 拡張機能のインストール
PowerShell 拡張機能は、Visual Studio Code Marketplace で Install ボタンをクリックすることでインストールできます。また、VS Code 内からインストールするには、キーボードショートカット ⇧⌘X (Windows, Linux Ctrl+Shift+X) で 拡張機能 ビューを開き、「PowerShell」と入力して、PowerShell 拡張機能を選択します。

主な機能
- 構文ハイライト
- 高度な組み込みコードスニペット
- コマンドレットなどのための IntelliSense
- PowerShell Script Analyzer によって報告される問題点
- コマンドレット、変数、クラスなどの定義への移動
- コマンドレット、変数、クラスなどの参照の検索
- ドキュメントおよびワークスペースのシンボルナビゲーション
- シンボルベースのアウトラインビュー
- F8 を使用して、選択した PowerShell コードを現在のターミナルで実行
- Ctrl + F1 を使用して、カーソル位置のシンボルのオンラインヘルプを起動
- PowerShell デバッガーの統合
- デバッガーと対話できる拡張機能ターミナル(
Set-PSBreakpointを試してみてください!) - テーマピッカーで利用可能な PowerShell ISE テーマ
- ⇧⌘P (Windows, Linux Ctrl+Shift+P) を押して「Enable ISE Mode」を検索し、ISE モードも試してみてください。
デバッグ
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 には、未初期化の変数の存在、PSCredential 型の使用、Invoke-Expression の使用など、PowerShell ソースコードのさまざまな側面をチェックする組み込みルールが多数用意されています。また、このモジュールでは特定のルールを含めたり除外したりすることも可能です。
PSScriptAnalyzer を無効にするには、設定 (⌘, (Windows, Linux Ctrl+,)) を開き、拡張機能 を参照し、PowerShell 拡張機能を選択して、Script Analysis: Enable (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 ファイルは、型システムを拡張し、出力フォーマットを定義するために使用されます。これらのファイルの詳細については、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: Open Examples Folder コマンドを使用してサンプルを開くこともできます。

追加リソース
PowerShell ドキュメントには詳細な記事があります。「VS Code の使用」から始めてください。
よくある質問の回答については、トラブルシューティングガイドを確認してください。
デバッグの詳細については、@keithHill による PowerShell 拡張機能でのデバッグに関する Hey, Scripting Guy! シリーズ(2部構成)のブログ投稿を確認してください。
- Visual Studio Code での PowerShell スクリプトのデバッグ - パート 1
- Visual Studio Code での PowerShell スクリプトのデバッグ - パート 2
新機能のテストとフィードバックの提供
可能な限り プレリリース バージョンを試すことをお勧めします。プレリリース が利用可能な場合は、マーケットプレイスの Switch to Pre-Release Version ボタンからインストールできます。安定版の拡張機能に戻すには、表示される Switch to Release Version ボタンを使用してください。また、アンインストール ボタンの横にある矢印から 別のバージョンのインストール... を選択することで、他のバージョンにダウングレードすることも可能です。

バグを見つけた場合は、Issue を開き、修正されるまでの間は安定版に戻してください。