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 では、制約付き言語モードを有効にした場合と無効にした場合の両方でテストします。
PowerShell 拡張機能のインストール
PowerShell 拡張機能は、インストールボタンをクリックして Visual Studio Code Marketplace からインストールできます。また、VS Code 内から PowerShell 拡張機能をインストールするには、キーボードショートカット ⇧⌘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) を使用して ISE モードを試すこともできます。その後、「Enable ISE Mode」を検索してください。
デバッグ
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 拡張機能を選択し、スクリプト分析: 有効化 (powershell.scriptAnalysis.enable) のチェックボックスをオフにします。

PSScriptAnalyzer はコードフォーマットも提供します。Format Document コマンドまたは (⇧⌥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)) からPreferences: Open User Settings (JSON)コマンドを使用するか、"workbench.settings.editor"設定でデフォルトの設定エディターを変更することで、settings.jsonファイルを開くこともできます。
VS Code の設定方法の詳細については、ユーザー設定とワークスペース設定を参照してください。
Types.ps1xml および Format.ps1xml ファイル
PowerShell の .ps1xml ファイルは、型システムを拡張し、出力フォーマットを定義するために使用されます。これらのファイルの詳細については、Types.ps1xml および Format.ps1xml に関する公式 PowerShell ドキュメントを参照してください。.ps1xml ファイルの作成時に IntelliSense 機能を利用するには、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"
}
]
この設定は、すべての .ps1xml ファイルに対して、PowerShell リポジトリの公式 XML スキーマを使用するように 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
新機能のテストとフィードバックの提供
可能な限りプレリリース版を試すことをお勧めします。プレリリース版が利用可能な場合、プレリリース版に切り替えるボタンを使用してマーケットプレイスからインストールできます。表示されるリリース版に切り替えるボタンを使用して、拡張機能の安定版に戻ることができます。また、アンインストールボタンの横にある矢印を使用して、別のバージョンをインストール...を選択することで、拡張機能の他のバージョンにダウングレードすることもできます。

バグを見つけた場合は、イシューを開き、修正中は安定版に戻してください。