VS Codeのエージェントモードを拡張するには、を試してください!

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 CodespacesVS 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 内からインストールすることもできます。

PowerShell extension

主な機能

デバッグ

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 Integration

  • Pester のシンボル サポート

    CodeLens Pester Symbol Support

  • 関数、変数、クラス、その他のシンボル参照

    CodeLens の参照サポートは、コード内でシンボルが参照されている回数を表示し、特定の参照にジャンプすることができます。

    CodeLens Function Reference Support

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 Settings

PSScriptAnalyzer はコードの書式設定も提供します。[ドキュメントのフォーマット] コマンドまたはキーボード ショートカット (⇧⌥F (Windows では Shift+Alt+F、Linux では Ctrl+Shift+I)) で、自動ドキュメント書式設定を呼び出すことができます。

Pester の統合

Pester は、ユニットテストを実行するためのフレームワークであり、Windows PowerShell 5.1 には Pester 3.40 がプリインストールされています。Pester を更新するか、他のプラットフォームに最新バージョンをインストールするには、Pester のインストール手順に従ってください。

PowerShell 拡張機能の設定

VS Code の設定は、[ファイル] > [ユーザー設定] > [設定] メニュー項目からカスタマイズできます。

アクティビティ バーの左下にある歯車アイコンを選択することもできます。

codeGear

また、キーボード ショートカット ⌘, (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.ps1xmlFormat.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 コマンドでサンプルを開くこともできます。

Open PowerShell Examples

追加リソース

PowerShell のドキュメントには、より詳細な記事があります。Using VS Code から始めてください。

よくある質問への回答については、トラブルシューティング ガイドをご確認ください。

デバッグの詳細については、@keithHill 氏による PowerShell 拡張機能でのデバッグに関する Hey, Scripting Guy! の 2 部構成のブログ記事シリーズをご覧ください

新機能のテストとフィードバックの提供

可能な限り、プレリリース版をお試しいただくことをお勧めします。プレリリース版が利用可能な場合、マーケットプレイスから [プレリリース版に切り替える] ボタンを使用してインストールできます。表示される [リリース版に切り替える] ボタンを使用して、拡張機能の安定版に戻すことができます。また、[アンインストール] ボタンの横にある矢印を使用して [別のバージョンをインストール...] を選択することで、拡張機能の他のバージョンにダウングレードすることもできます。

Screenshot showing the button to switch to a pre-release version.

バグを見つけた場合は、issue をオープンし、修正されるまでの間は安定版に戻してください。