PowerShellのバージョンは6にアップすることをオススメします。理由は文字コードのデフォルト設定が「UTF8」に変更になったことです。これまでは文字コードが「UTF8 BOM」になっていたため色々とトラブルの原因にもなっていました。(特に複数人でエディタがバラバラの場合など)
今回、私の仮想環境内で動作しているWindows10のPowershellを6.2にアップしたためその手順を紹介します。
現バージョン確認
アップデート前はこんな感じです。
> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.18362.145
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.18362.145
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
ちなみに文字コードが「UTF8」だとこんな感じに文字化けします。文字化けして実行もできません。これがなかなかイラつくのです。
> powershell.exe .¥replace.ps1
発生場所 ¥¥Mac¥Home¥Desktop¥PowerShell¥replace.ps1:19 文字:49
+ Write-host '?繧貞叙繧企勁縺・繧ィ繧ケ繧ア繝シ繝玲枚蟄・繝舌ャ繧ッ繧ケ繝ゥ繝・す繝・)¥縺悟ソ・ヲ・
+ ~
式またはステートメントのトークン ')' を使用できません。
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken
ちなみにファイルの文字コードが「UTF8 BOMあり」であれば正しく表示されます。
> powershell.exe .¥replace.ps1
Test1:replaceを使って文字列置換
ハイフンを取り除く
Githubからのインストーラーダウンロード
PowerShell 6 からはGithubで公開されています
https://github.com/PowerShell/PowerShell/releases
2019年12月時点ではすでにVersion7のRC版も出てまずが、今回はVersion 6を探し出します。

インストーラーをダウンロードします。

インストーラーをクリックすると、奇妙なキャラクターが出てきて変なソフトか?と思いましたが大丈夫です。Poewrshellの公式キャラクターでした、名称はそのまま「Powershell」みたいです。顔の部分がPowerShellのアイコンみたいになってますね。
そのままインストールを進めます。





インストール完了しました。プログラムを確認すると既存のPowerShellの上書きではなく、別のアプリとしてインストールされています。アイコンと黒に変わってます。

バージョン確認
正しくバージョンアップされてます。
> $PSVersionTable
Name Value
---- -----
PSVersion 6.2.1
PSEdition Core
GitCommitId 6.2.1
OS Microsoft Windows 10.0.18362
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
さいごに
PowerShell 6 ではだいぶ見た目が変わっていますが、他にも多く変わっている部分があり、私が気になったのは以下です。
・既定のエンコードが BOM なしの UTF-8 に変更
・.NET Framework から .NET Core への移行
・macOS と Linux のサポート
・SSH ベースの PowerShell リモート処理
変更点の詳細は以下にありますので、気になった方は確認してみてください。
https://docs.microsoft.com/ja-jp/powershell/scripting/whats-new/what-s-new-in-powershell-core-60?view=powershell-6
以上です。
コメント