Visual Studio Code で PowerShell を使用する
PowerShell は、.NET 上に構築されたタスクベースのコマンドライン シェルおよびスクリプト言語で、あらゆるプラットフォームの管理者に強力なツールセットを提供します。
Microsoft が提供する Visual Studio Code (VS Code) 用の PowerShell 拡張機能は、PowerShell の豊富な言語サポートと、構文補完、定義追跡、Lint 化などの機能を提供します。この拡張機能は、現在サポートされている PowerShell 7 以降のバージョンを使用して、VS Code がサポートされているすべての環境で動作するはずです。
Windows PowerShell 5.1 のサポートは、ベストエフォート basis で提供されます。.NET Framework 4.8 以降が必要です。
GitHub Codespaces や VS Code Server を含む VS Code リモート開発環境がサポートされています。
Visual Studio Code for the Web は、PowerShell エンジンがこの環境で実行できないため、基本的な構文ハイライトなど、限られた機能のみがサポートされます。
私たちは、以下の構成を積極的にテストしています
- Windows PowerShell 5.1 および PowerShell 7 以降を搭載した Windows Server 2022
- PowerShell 7 以降を搭載した macOS 14.7
- PowerShell 7 以降を搭載した Ubuntu 24.04
Windows では、制約付き言語モード (Constrained Language Mode) の有効/無効の両方でテストしています。
PowerShell 拡張機能のインストール
PowerShell 拡張機能は、Visual Studio Code Marketplace からインストール ボタンをクリックしてインストールできます。また、キーボード ショートカット ⇧⌘X (Windows、Linux では Ctrl+Shift+X) で拡張機能ビューを開き、PowerShell と入力して PowerShell 拡張機能を選択することで、VS Code 内からインストールすることもできます。
主な機能
- 構文の強調表示
- 高度な組み込みコード スニペット
- コマンドレットなどのための IntelliSense
- PowerShell Script Analyzer によって報告される問題
- コマンドレット、変数、クラスなどの[定義へ移動]
- コマンドレット、変数、クラスなどの[参照を検索]
- ドキュメントとワークスペースのシンボル ナビゲーション
- シンボルベースのアウトライン ビュー
- F8 を使用して、選択した PowerShell コードを現在のターミナルで実行
- Ctrl + F1 を使用して、カーソル下のシンボルのオンライン ヘルプを起動
- PowerShell デバッガー統合
- デバッガーと対話できる拡張機能ターミナル (
Set-PSBreakpoint
をお試しください) - テーマ ピッカーで利用可能な PowerShell ISE テーマ
- ⇧⌘P (Windows, Linux では Ctrl+Shift+P) を使用して ISE モードを試すこともできます。その後、「ISE モードを有効にする」を検索してください。
デバッグ
PowerShell 拡張機能は、VS Code の組み込みデバッグ インターフェイスを使用して、PowerShell スクリプトとモジュールのデバッグを可能にします。PowerShell のデバッグに関する詳細については、Using 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)) から Preferences: Open User Settings (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 のドキュメントには、より詳細な記事があります。Using VS Code から始めてください。
よくある質問への回答については、トラブルシューティング ガイドをご確認ください。
デバッグの詳細については、@keithHill 氏による PowerShell 拡張機能でのデバッグに関する Hey, Scripting Guy! の 2 部構成のブログ記事シリーズをご覧ください
- Visual Studio Code での PowerShell スクリプトのデバッグ - パート 1
- Visual Studio Code での PowerShell スクリプトのデバッグ - パート 2
新機能のテストとフィードバックの提供
可能な限り、プレリリース版をお試しいただくことをお勧めします。プレリリース版が利用可能な場合、マーケットプレイスから [プレリリース版に切り替える] ボタンを使用してインストールできます。表示される [リリース版に切り替える] ボタンを使用して、拡張機能の安定版に戻すことができます。また、[アンインストール] ボタンの横にある矢印を使用して [別のバージョンをインストール...] を選択することで、拡張機能の他のバージョンにダウングレードすることもできます。
バグを見つけた場合は、issue をオープンし、修正されるまでの間は安定版に戻してください。