Windows Powershell を5系から7系にアップデートする

概要

  • PowerShell でのコマンド操作で -Encoding UTF8 というオプションを使いたい場面がでてきた
  • 上記は5系だと使えないので、最新の7系にアップデートを行う

参考

作業ログ

現行バージョン確認

PowerShell を起動して以下を実行。

$PSVersionTable

現行バージョンは 5.1.22621.4391 となっている。

Name                           Value
----                           -----
PSVersion                      5.1.22621.4391
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.22621.4391
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

配布中の最新バージョンを確認

以下を実行。

winget search Microsoft.PowerShell

安定版は 7.5 が最新のもよう。

名前               ID                           バージョン ソース
------------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.5.0.0    winget
PowerShell Preview Microsoft.PowerShell.Preview 7.6.0.3    winget

インストール

以下を実行。

winget install --id Microsoft.PowerShell --source winget

インストーラーが動作するので、許可操作などを行いしばし待つと完了する。

見つかりました PowerShell [Microsoft.PowerShell] バージョン 7.5.0.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://github.com/PowerShell/PowerShell/releases/download/v7.5.0/PowerShell-7.5.0-win-x64.msi
  ██████████████████████████████   107 MB /  107 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました

動作チェック

PowerShell 5系と7系は別のアプリケーションとなっている。

アプリの検索で PowerShell 7 をいれて結果に出てくればOK。

起動してバージョンチェック → 最新の 7.5 が落とせている。

Name                           Value
----                           -----
PSVersion                      7.5.0
PSEdition                      Core
GitCommitId                    7.5.0
OS                             Microsoft Windows 10.0.22631
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

各種設定の更新

ターミナルの設定

PowerShell は普段ターミナル経由で使っているので、既定のプロファイルを PowerShell 7 に変更しておく。

ターミナル設定画面のスクリーンショット。「スタートアップ」タブから、「既定のプロファイル」のプルダウンで PowerShell を選択し、「保存」ボタンを押す。

$PROFILE の設定

PowerShell の起動時に実行されている設定ファイルについても、5系と7系だとそれぞれ別になっているので移行しておく。

5のほうで以下を実行。起動したメモ帳のほうで中身をコピー。

notepad $PROFILE

7のほうでも上記を実行。ファイルを新規作成するダイアログがでたら許可し、ペーストして保存。

反映されたか確認

一度ターミナルを終了して再起動し、以下を確認する。

  • デフォルトで PowerShell 7が開くか
  • $PROFILE に設定されている内容が反映されているか

後者については、自分の場合は以下を記述してあるので、文字コードを確認してUTF-8の値がでていればOK。

# コンソールの文字コードをUTF-8に設定
chcp 65001

文字コードは同じ chcp コマンドをそのまま叩けば確認できる。

> chcp
Active code page: 65001

Comments

  • スパム対策のため、コメント本文にURLが含まれている場合は「承認待ち」となり、すぐに投稿が反映されません。ご了承ください。
  • 公序良俗に反する内容、個人が特定できる情報、スパム投稿と思われるコメント等については、予告なく編集・削除する場合があります。