Windows Powershell を5系から7系にアップデートする
概要
- PowerShell でのコマンド操作で
-Encoding UTF8
というオプションを使いたい場面がでてきた - 上記は5系だと使えないので、最新の7系にアップデートを行う
参考
- Windows PowerShell 5.1 から PowerShell 7 への移行 – PowerShell | Microsoft Learn
- Windows への PowerShell のインストール – PowerShell | Microsoft Learn
作業ログ
現行バージョン確認
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 に変更しておく。
$PROFILE の設定
PowerShell の起動時に実行されている設定ファイルについても、5系と7系だとそれぞれ別になっているので移行しておく。
5のほうで以下を実行。起動したメモ帳のほうで中身をコピー。
notepad $PROFILE
7のほうでも上記を実行。ファイルを新規作成するダイアログがでたら許可し、ペーストして保存。
反映されたか確認
一度ターミナルを終了して再起動し、以下を確認する。
- デフォルトで PowerShell 7が開くか
- $PROFILE に設定されている内容が反映されているか
後者については、自分の場合は以下を記述してあるので、文字コードを確認してUTF-8の値がでていればOK。
# コンソールの文字コードをUTF-8に設定
chcp 65001
文字コードは同じ chcp
コマンドをそのまま叩けば確認できる。
> chcp
Active code page: 65001