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 CodespacesVS 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 拡張機能を選択します。

PowerShell extension

主な機能

デバッグ

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 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)) から 基本設定: ユーザー設定を開く (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 コマンドを使用してサンプルを開くこともできます。

Open PowerShell Examples

追加リソース

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

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

デバッグの詳細については、@keithHill による PowerShell 拡張機能でのデバッグに関する Hey, Scripting Guy! シリーズ(2部構成)のブログ投稿を確認してください。

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

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

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

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

© . This site is unofficial and not affiliated with Microsoft.