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 以降が必要です。
GitHub Codespaces と VS Code Server を含む VS Code Remote Development 環境がサポートされています。
Web 用 Visual Studio Code は、この環境で PowerShell エンジンを実行できないため、基本的な構文ハイライトなどの限られた機能のみがサポートされます。
以下の構成で積極的にテストを行っています。
- Windows PowerShell 5.1 および PowerShell 7+ を搭載した Windows Server 2022
- PowerShell 7+ を搭載した macOS 14.7
- PowerShell 7+ を搭載した Ubuntu 24.04
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) を押してから「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 拡張機能を選択し、スクリプト分析: 有効 (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 ドキュメントを参照してください。.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"
}
]
この設定により、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
新機能のテストとフィードバックの提供
可能な限り、プレリリース版を試すことをお勧めします。プレリリース版が利用可能な場合、プレリリースバージョンに切り替えボタンを使用してマーケットプレイスからインストールできます。表示されるリリースバージョンに切り替えボタンを使用して、拡張機能の安定版に戻すことができます。また、アンインストールボタンの横にある矢印を使用して別のバージョンをインストール...を選択することで、拡張機能の他のバージョンにダウングレードすることもできます。
バグを発見した場合は、イシューを開き、修正が完了するまで安定版に戻してください。