1. トップ
  2. 新着ニュース
  3. IT
  4. パソコン

窓辺の小石 第168回 コマンドラインは行方不明

マイナビニュース / 2024年5月31日 23時55分

画像提供:マイナビニュース

PowerShell 7.4で「Command-Not-Found」が利用可能になった。これは、コマンドが見つからなかったときに、Wingetによる適切なプログラムのインストールなどを提案するものだ。当初、この機能は、PowerToysの機能としてRelease v0.77.0(2024年1月10日)に搭載された。そのためのインターフェースとなるフィードバックプロバイダ(FeedbackProvider)は、昨年3月に公開されたPowerShell v7.4.0-preview 2に搭載された。

現在の安定版はPowerShell v7.4.2(Windows PowerShellではない)である。現在の安定版では、PowerToysからの機能有効化も可能だが、PowerToysをインストールしなくても、Wingetがインストールされていれば、Command-Not-Foundを有効化できる。

まずは、以下のコマンドで、「Microsoft.WinGet.CommandNotFound」モジュールをインストールする。

Install-PSResource -Name Microsoft.WinGet.CommandNotFound

Install-PSResourceコマンドの実行後は、自動的にモジュールがインポートされるのですぐに利用できる。しかし、以後のセッションでも常にCommand-Not-Foundを使えるようにするには、PowerShellの起動時にモジュールをインポートする必要がある。それには、PowerShellのプロファイル($PROFILEで参照可能)に以下のコマンドを手動で入れておく必要がある。

Import-Module -Name Microsoft.WinGet.CommandNotFound

なお、最新のPowerToys(V0.81.0)は、上記と同じモジュールを組み込む。しかし、旧版では、PowerToysに含まれているモジュールWinGetCommandNotFound.psd1(内部でPowerToys.CmdNotFound.dllの組み込みを指定)を組み込む。このとき、PowerShellのプロファイルに注釈行とImport-Moduleコマンドを追加する。場合によっては、このPowerToys旧版の指定が残ることがある。PowerToysのImport-Moduleコマンドは前後に注釈がある。同じImport-Moduleコマンドだが、前後の注釈がないとPowerToysのCommand-Not-Found機能は、未インストールと判断してしまう。2回実行してもエラーにはならず実害はないが、PowerToysを使うなら、手動で設定せず、PowerToysのCommand Not Foundの設定でインストールする方がいいだろう。

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください