今回は、PowerShellの現状についてまとめてみることにした。なお、Windowsに標準添付されているWindows PowerShellとの違いは、下記の記事を参考にしてほしい(「PowerShellの今を見る 2つあるPowerShellはどっち使えばいい?」)。
単体で入手してインストールがオススメのPowerShell
PowerShellの前身であるWindows PowerShell(powershell.exe)は、Windowsの第3の標準スクリプト言語として登場した。もちろん、最初の言語はcmd.exeのBatch言語で、2つめはWindows Scripting Host(WSH)のVBScriptとJavaScript言語である。
Batch言語は、MS-DOSやWindowsの標準コンソールアプリケーションを操作するためのものだ。WSHは、COMを扱うためのスクリプティング言語で、スクリプト実行環境と言語を分離し、アプリケーション内スクリプティングをサポートするという野心的なものだったが、2023年にVBScriptの廃止が決まり、もはや復活の見込みもない。
Windows 10以降、powershell.exe(Windows PowerShell)が、標準的なコンソールシェル(コマンドラインインタプリタ)となったため、cmd.exeはもはやほとんど利用されていないはずだ。
cmd.exeの内部コマンド(たとえばmklink)を使いたいがために、以前は筆者もたまにcmd.exeを起動していたが、PowerShell側にシンボリックリンクを作るmklink-dという関数を作ったところ、cmd.exeを起動する必要がなくなった。mklink-dの内部は引数を指定したnew-itemコマンドである。
powershell.exeはWindowsに付属する標準版だが、改良が望ましいにも関わらず、過去に作られたスクリプト互換性のために困難な部分が一部ある。そこで、完全な互換性を捨てて、機能向上を目指したのが現在のPowerShell(以下、pwsh.exe)である。これは、第4のWindows標準スクリプト言語とも言える。
ただし、pwsh.exeは、ユーザーが手動でインストールする必要がある。そのための方法は大きく5つある。Microsoftが推奨するのはWinGet(https://learn.microsoft.com/ja-jp/windows/package-manager/)を使う方法だ。
具体的には、以下のコマンドをコンソール(ターミナル)内で実行する。
winget install Microsoft.PowerShell
ただし、初めてPowerShellをインストールする場合に限り、GitHubからMSIファイルをダウンロードして、これをエクスプローラーからダブルクリックしてGUIインストーラーを起動する方法をおすすめしたい。この方法を使うことで、インストール時オプションをGUIから設定できる。
最新版のMSIファイルは、GitHubのPowerShellのリポジトリ(https://github.com/powershell/powershell)のReleaseのページにある最新版のAssetsから「PowerShell-7.?.?-win-x64.msi」(7.?.?はバージョン番号)である。PowerShellの更新ごとに変化するので、以下のコマンドを使うと便利だ。
Invoke-Expression "& { $(Invoke-RestMethod 'https://aka.ms/install-powershell.ps1') } -UseMSI"
シングルクオート内のURLは、バージョンが変わっても、最新版のPowerShellインストールスクリプト(もちろんPowerShellで書かれている)にアクセスするためのもの。このコマンド自体に関しても「install-powershell.ps1」の中に記述がある。
MSIインストールでは、エクスプローラー右クリックメニューとの関連付けやWindows Update経由でのアップデート(後述)のオンオフが可能。WinGetでは、このレジストリ設定がされないため、過去に実行されたMSIインストールの設定のままか、設定なし(デフォルト値)状態のどちらかになる。インストール時オプションは、以下のレジストリに記録されている。
HKLM:\SOFTWARE\Microsoft\PowerShellCore\InstallerProperties
PowerShellから表示させるには、以下のコマンドを使う
Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShellCore\InstallerProperties
Microsoft的には、WinGetを使いMSIXパッケージでのインストールを推奨しているようなので、このインストールオプションの扱いが今後どうなるのかは不明である。というのも、MSIXパッケージでインストールすると、レジストリにオプションの記録が残らないからである。
本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事
-
第528回
PC
Windows 11の標準機能でメモリに問題がないかを診断する -
第527回
PC
Windowsがクラッシュする原因を究明する方法 AIを活用すると結構早い -
第526回
PC
今年6月にPCが起動しなくなる心配はないが、セキュアブートが機能しないとWindowsのセキュリティ機能は一部使えなくなる -
第525回
PC
6月以降「PCが起動不可能に?」と間違った騒がれ方をしている原因の「セキュアブート」とは? -
第524回
PC
Windows Insider Programが変化 チャンネルが3つになって整理される -
第523回
PC
AI傾倒に一息入れて、既存のWindowsの改良を宣言するMicrosoft タスクバーを画面の上下左右に移動可能に!? -
第522回
PC
Windowsでも完全キーボード操作派は注目! PowerToysのコマンドパレット -
第521回
PC
Windowsでアプリをインストールしたときに警告が表示する「Defender SmartScreen」と「Smart App Control」 -
第520回
PC
WindowsターミナルのPreview版 v1.25では「操作」設定に専用エディタが導入 -
第519回
PC
「セキュアブート」に「TPM」に「カーネルDMA保護」、Windowsのセキュリティを整理 - この連載の一覧へ












