「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インストーラを使用(推奨)
最も簡単で確実な方法です:
- 公式GitHubリリースページにアクセス https://github.com/PowerShell/PowerShell/releases
- 適切なファイルをダウンロード 「Assets」セクションから、お使いのシステムに合ったファイルを選択:
- 64bit Windows:
PowerShell-7.x.x-win-x64.msi
- 32bit Windows:
PowerShell-7.x.x-win-x86.msi
- 64bit Windows:
- インストーラを実行 ダウンロードしたMSIファイルをダブルクリックし、指示に従ってインストール
- インストール先の確認 通常、以下の場所にインストールされます:
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拡張機能のインストール
拡張機能の検索とインストール
- VS Codeを起動
- 左サイドバーの拡張機能アイコン(四角いブロックマーク)をクリック
- 検索ボックスに以下を入力:
PowerShell
- Microsoft製の「PowerShell」拡張機能を選択
- 「インストール」ボタンをクリック
拡張機能の機能
この拡張機能により、以下の機能が利用できます:
- PowerShellスクリプトのシンタックスハイライト
- インテリセンス(自動補完)
- デバッグ機能
- 統合ターミナルでのPowerShell実行
PowerShell 7をデフォルトに設定
セッションメニューからの選択
デフォルトでは、VS CodeはPowerShell 5.1を使用します。PowerShell 7に切り替える手順:
- コマンドパレットを開く
- Windows/Linux:
Ctrl + Shift + P
- Mac:
Cmd + Shift + P
- Windows/Linux:
- セッションメニューを表示 以下のコマンドを入力・選択:
PowerShell: Show Session Menu
- PowerShell 7を選択 表示される一覧から「PowerShell 7.x.x」を選択
- 確認 VS Code下部のターミナルで、PowerShell 7が起動していることを確認
バージョン確認方法
ターミナルで以下のコマンドを実行:
$PSVersionTable.PSVersion
settings.jsonで永続化(推奨)
ユーザー設定での固定
毎回選択するのが面倒な場合、設定ファイルで固定できます:
- settings.jsonを開く
Cmd + Shift + P
(Mac)またはCtrl + Shift + P
(Windows/Linux)- 「Open Settings (JSON)」を選択
- 設定を追加
{ "powershell.powerShellDefaultVersion": "PowerShell 7" }
ワークスペース設定での固定
特定のプロジェクトでのみPowerShell 7を使用したい場合:
- プロジェクトフォルダに設定ファイルを作成
<プロジェクトフォルダ>/.vscode/settings.json
- 同じ設定を記述
{ "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
デバッグ機能のテスト
- 新しい
.ps1
ファイルを作成 - ブレークポイントを設定(行番号の左をクリック)
F5
キーでデバッグ開始- ステップ実行が正常に動作することを確認
VS Code固有の機能確認
インテリセンスの動作
PowerShellコマンドレットを入力中に、自動補完候補が表示されることを確認:
Get-Child # ここで Tab キーまたは Ctrl+Space
エラー表示機能
意図的にエラーのあるコードを書き、リアルタイムでエラー表示されることを確認:
Get-NonExistentCommand
トラブルシューティング
よくある問題と解決方法
PowerShell 7が認識されない
症状: セッションメニューにPowerShell 7が表示されない
解決方法:
- PowerShell 7が正しくインストールされているか確認
pwsh --version
- VS CodeとPowerShell拡張機能を再起動
- 環境変数PATHにPowerShell 7のパスが含まれているか確認
実行ポリシーエラー
症状: スクリプト実行時に「実行ポリシー」エラーが発生
解決方法:
# 現在の実行ポリシーを確認
Get-ExecutionPolicy
# ユーザーレベルで実行を許可(推奨)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
文字化けが発生する
症状: 日本語文字が正しく表示されない
解決方法: VS Codeの設定で文字エンコーディングを指定:
{
"files.encoding": "utf8",
"terminal.integrated.shell.windows": "pwsh.exe"
}
パフォーマンスの問題
症状: PowerShell拡張の動作が重い
解決方法:
- PowerShell拡張を最新版に更新
- 以下の設定を追加:
{ "powershell.integratedConsole.showOnStartup": false, "powershell.scriptAnalysis.enable": false}
ログの確認方法
問題が解決しない場合、PowerShell拡張のログを確認:
Ctrl + Shift + P
でコマンドパレットを開く- 「PowerShell: Show Logs」を選択
- エラーメッセージを確認
高度な設定とカスタマイズ
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を使用するための設定は、以下の手順で完了します:
設定手順のおさらい
- PowerShell 7のインストール(
pwsh
コマンドが使用可能に) - VS CodeにPowerShell拡張機能をインストール
- セッションメニューからPowerShell 7を選択
- 必要に応じてsettings.jsonで設定を永続化
PowerShell 7を使うメリット
- 最新のセキュリティアップデートと機能
- クロスプラットフォーム対応
- 並列処理などの新機能
- 将来性のある開発環境
コメント