VS CodeでPowerShell 7を使う方法|インストールからVS Code連携まで解説

Windows

「WindowsのPowerShellは5.1だけど、最新のPowerShell 7をVS Codeで使いたい」
「どう設定したらVS CodeがPowerShell 7を認識してくれるのか分からない」

そんな疑問を抱えていませんか?多くのWindows開発者が、古いPowerShell 5.1から最新のPowerShell 7への移行を検討しています。

PowerShell 7(正式名称:PowerShell Core)は、クロスプラットフォーム(Windows、Linux、Mac)で動作する新しいPowerShellです。

VS Codeと組み合わせることで、最新の機能を活用した効率的なスクリプト開発が可能になります。

この記事では、PowerShell 7をインストールし、VS Codeで使えるようにするまでの手順を、初心者向けに分かりやすく解説します。

スポンサーリンク

PowerShell 7とは

PowerShell 5.1との違い

PowerShell 7は、従来のWindows PowerShell 5.1とは別の新しいバージョンです。主な違いは以下の通りです:

クロスプラットフォーム対応

  • PowerShell 5.1: Windows専用
  • PowerShell 7: Windows、Linux、macOSで動作

新機能と性能向上

  • パフォーマンスの大幅な改善
  • 新しいコマンドレット(foreach-object -parallel等)
  • JSONハンドリングの強化
  • エラーハンドリングの改善

.NET基盤の違い

  • PowerShell 5.1: .NET Framework 4.x
  • PowerShell 7: .NET Core/.NET 5+

なぜPowerShell 7を使うべきか

現代のスクリプト開発では、PowerShell 7の採用が推奨されています:

  • 最新のセキュリティアップデート
  • 豊富な新機能
  • 将来性(Microsoft の開発フォーカス)
  • クラウド開発との親和性

PowerShell 7のインストール方法

事前確認

インストール前に、現在のPowerShellバージョンを確認しましょう:

$PSVersionTable.PSVersion

Windows 10/11には、デフォルトでPowerShell 5.1がインストールされています。

Windowsの場合

MSIインストーラを使用(推奨)

最も簡単で確実な方法です:

  1. 公式GitHubリリースページにアクセス https://github.com/PowerShell/PowerShell/releases
  2. 適切なファイルをダウンロード 「Assets」セクションから、お使いのシステムに合ったファイルを選択:
    • 64bit Windows: PowerShell-7.x.x-win-x64.msi
    • 32bit Windows: PowerShell-7.x.x-win-x86.msi
  3. インストーラを実行 ダウンロードしたMSIファイルをダブルクリックし、指示に従ってインストール
  4. インストール先の確認 通常、以下の場所にインストールされます: C:\Program Files\PowerShell\7\

Windows Package Manager(winget)を使用

コマンドラインでのインストールを好む場合:

winget install Microsoft.PowerShell

Chocolateyを使用(既にChocolateyを使用している場合)

choco install powershell-core

Linux(Ubuntu/Debian)の場合

Ubuntu 20.04/22.04の例

# 必要なパッケージをインストール
sudo apt-get update
sudo apt-get install -y wget apt-transport-https software-properties-common

# Microsoftのリポジトリを追加
wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"
sudo dpkg -i packages-microsoft-prod.deb

# PowerShell 7をインストール
sudo apt-get update
sudo apt-get install -y powershell

CentOS/RHEL/Fedoraの場合

# RPMパッケージをダウンロード・インストール
sudo yum install -y https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm
sudo yum install -y powershell

macOSの場合

Homebrewを使用(推奨)

# Homebrewでインストール
brew install powershell

直接ダウンロード

GitHubリリースページから.pkgファイルをダウンロードしてインストール

インストール確認

どのOSでも、以下のコマンドでPowerShell 7が正常にインストールされたか確認できます:

pwsh --version

PowerShell 7のプロンプトを起動するには:

pwsh

VS CodeでPowerShell 7を使う設定

PowerShell拡張機能のインストール

拡張機能の検索とインストール

  1. VS Codeを起動
  2. 左サイドバーの拡張機能アイコン(四角いブロックマーク)をクリック
  3. 検索ボックスに以下を入力: PowerShell
  4. Microsoft製の「PowerShell」拡張機能を選択
  5. 「インストール」ボタンをクリック

拡張機能の機能

この拡張機能により、以下の機能が利用できます:

  • PowerShellスクリプトのシンタックスハイライト
  • インテリセンス(自動補完)
  • デバッグ機能
  • 統合ターミナルでのPowerShell実行

PowerShell 7をデフォルトに設定

セッションメニューからの選択

デフォルトでは、VS CodeはPowerShell 5.1を使用します。PowerShell 7に切り替える手順:

  1. コマンドパレットを開く
    • Windows/Linux: Ctrl + Shift + P
    • Mac: Cmd + Shift + P
  2. セッションメニューを表示 以下のコマンドを入力・選択: PowerShell: Show Session Menu
  3. PowerShell 7を選択 表示される一覧から「PowerShell 7.x.x」を選択
  4. 確認 VS Code下部のターミナルで、PowerShell 7が起動していることを確認

バージョン確認方法

ターミナルで以下のコマンドを実行:

$PSVersionTable.PSVersion

settings.jsonで永続化(推奨)

ユーザー設定での固定

毎回選択するのが面倒な場合、設定ファイルで固定できます:

  1. settings.jsonを開く
    • Cmd + Shift + P(Mac)またはCtrl + Shift + P(Windows/Linux)
    • 「Open Settings (JSON)」を選択
  2. 設定を追加 { "powershell.powerShellDefaultVersion": "PowerShell 7" }

ワークスペース設定での固定

特定のプロジェクトでのみPowerShell 7を使用したい場合:

  1. プロジェクトフォルダに設定ファイルを作成 <プロジェクトフォルダ>/.vscode/settings.json
  2. 同じ設定を記述 { "powershell.powerShellDefaultVersion": "PowerShell 7" }

統合ターミナルの設定

デフォルトシェルの変更

VS Codeの統合ターミナルでもPowerShell 7を使用したい場合:

{
  "terminal.integrated.defaultProfile.windows": "PowerShell 7",
  "terminal.integrated.profiles.windows": {
    "PowerShell 7": {
      "path": "pwsh.exe",
      "args": []
    }
  }
}

動作確認とテスト

基本的な動作確認

PowerShell 7特有の機能をテスト

以下のコードをVS Codeで実行し、PowerShell 7が正常に動作することを確認:

# バージョン確認
$PSVersionTable.PSVersion

# PowerShell 7の新機能:Parallel ForEach
1..10 | ForEach-Object -Parallel {
    "Processing $_"
    Start-Sleep 1
} -ThrottleLimit 3

# JSONハンドリングの改善
@{Name="Test"; Value=123} | ConvertTo-Json -Depth 2

デバッグ機能のテスト

  1. 新しい.ps1ファイルを作成
  2. ブレークポイントを設定(行番号の左をクリック)
  3. F5キーでデバッグ開始
  4. ステップ実行が正常に動作することを確認

VS Code固有の機能確認

インテリセンスの動作

PowerShellコマンドレットを入力中に、自動補完候補が表示されることを確認:

Get-Child # ここで Tab キーまたは Ctrl+Space

エラー表示機能

意図的にエラーのあるコードを書き、リアルタイムでエラー表示されることを確認:

Get-NonExistentCommand

トラブルシューティング

よくある問題と解決方法

PowerShell 7が認識されない

症状: セッションメニューにPowerShell 7が表示されない

解決方法:

  1. PowerShell 7が正しくインストールされているか確認 pwsh --version
  2. VS CodeとPowerShell拡張機能を再起動
  3. 環境変数PATHにPowerShell 7のパスが含まれているか確認

実行ポリシーエラー

症状: スクリプト実行時に「実行ポリシー」エラーが発生

解決方法:

# 現在の実行ポリシーを確認
Get-ExecutionPolicy

# ユーザーレベルで実行を許可(推奨)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

文字化けが発生する

症状: 日本語文字が正しく表示されない

解決方法: VS Codeの設定で文字エンコーディングを指定:

{
  "files.encoding": "utf8",
  "terminal.integrated.shell.windows": "pwsh.exe"
}

パフォーマンスの問題

症状: PowerShell拡張の動作が重い

解決方法:

  1. PowerShell拡張を最新版に更新
  2. 以下の設定を追加: { "powershell.integratedConsole.showOnStartup": false, "powershell.scriptAnalysis.enable": false}

ログの確認方法

問題が解決しない場合、PowerShell拡張のログを確認:

  1. Ctrl + Shift + Pでコマンドパレットを開く
  2. 「PowerShell: Show Logs」を選択
  3. エラーメッセージを確認

高度な設定とカスタマイズ

PowerShell プロファイルの設定

プロファイルファイルの場所確認

$PROFILE

プロファイルのカスタマイズ例

# PowerShell 7用プロファイル
# エイリアスの設定
Set-Alias -Name ll -Value Get-ChildItem
Set-Alias -Name grep -Value Select-String

# 関数の定義
function Get-GitStatus { git status }
Set-Alias -Name gs -Value Get-GitStatus

# プロンプトのカスタマイズ
function prompt {
    $location = Get-Location
    "PS $location> "
}

デバッグ設定のカスタマイズ

launch.jsonの設定例

.vscode/launch.jsonを作成し、デバッグ設定をカスタマイズ:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "PowerShell: Launch Current File",
            "type": "PowerShell",
            "request": "launch",
            "script": "${file}",
            "cwd": "${workspaceFolder}"
        },
        {
            "name": "PowerShell: Launch with Arguments",
            "type": "PowerShell",
            "request": "launch",
            "script": "${file}",
            "args": ["-Param1", "Value1"],
            "cwd": "${workspaceFolder}"
        }
    ]
}

スニペットの活用

PowerShell用スニペットの設定

コマンドパレットから「Configure User Snippets」→「powershell」を選択し、よく使うコードパターンを登録:

{
    "Try-Catch Block": {
        "prefix": "try",
        "body": [
            "try {",
            "    $1",
            "}",
            "catch {",
            "    Write-Error $_.Exception.Message",
            "    $2",
            "}"
        ],
        "description": "Try-catch error handling block"
    }
}

PowerShell 7の新機能活用例

並列処理機能

PowerShell 7の目玉機能である並列処理を活用:

# 大量のファイル処理を並列実行
Get-ChildItem -Path "C:\LargeFolder" -Recurse | 
ForEach-Object -Parallel {
    # 各ファイルに対する処理
    $fileSize = (Get-Item $_.FullName).Length
    "$($_.Name): $fileSize bytes"
} -ThrottleLimit 10

エラーハンドリングの改善

# エラービューの活用
$Error[0] | Format-List * -Force

# エラーアクション設定
$ErrorActionPreference = "Stop"

JSONとの統合

# 改善されたJSON処理
$data = @{
    Name = "PowerShell 7"
    Version = "7.3.0"
    Features = @("Cross-platform", "Parallel processing")
}

$json = $data | ConvertTo-Json -Depth 3
$restored = $json | ConvertFrom-Json

まとめ

VS CodeでPowerShell 7を使用するための設定は、以下の手順で完了します:

設定手順のおさらい

  1. PowerShell 7のインストールpwshコマンドが使用可能に)
  2. VS CodeにPowerShell拡張機能をインストール
  3. セッションメニューからPowerShell 7を選択
  4. 必要に応じてsettings.jsonで設定を永続化

PowerShell 7を使うメリット

  • 最新のセキュリティアップデートと機能
  • クロスプラットフォーム対応
  • 並列処理などの新機能
  • 将来性のある開発環境

コメント

タイトルとURLをコピーしました