winget: Windows Package Manager
Topics
wingetのエラー表示はWingetUIよりも不親切?
wingetを利用したアプリのアップデートの仕方
以下のコマンドで、更新が可能なアプリケーションの一覧が表示されます。
winget upgrade
表示された全てのアプリケーションを更新するには、以下のコマンドを実行します。
winget upgrade --all
IDを指定して、特定のアプリケーションを更新するには、以下のコマンドを実行します。
winget upgrade --id Microsoft.PowerToys
参考
ちなみに、初めてwinget upgrade --all
を実行したときに、エラーが出たり、更新に失敗したりしたアプリケーションがそれなりにありました。
ただ、それらのアプリケーションを1つずつ確認してみると、サポート切れ等で不要となったアプリが大半でしたので、アンインストールすることで大半の問題は解決しました。
また、wingetでインストールしたアプリでない場合は、エラーに関連するものなど一通りをアンインストールした後で、wingetで改めてインストールするというのが有効な場合がありました。
wingetがインストールされているかの確認方法(wingetは、管理者として実行したシェルでないと実行できないことがある)
Windows 10とWindows 11では、わざわざインストール作業をしなくてもwingetがすでに入っていることが多いです。
自分のWindows環境にwingetが入っているか確認する際は、管理者としてPowerShellかコマンドプロンプトを立ち上げて、以下のコマンドでバージョンが表示されるかどうかで確認することがおすすめです。
winget -v
なぜ管理者でのシェルの実行をおすすめするかというと、Windows 10 Pro 22H2で、管理者としてではなく普通に実行したシェルではwingetコマンドが認識されず実行できないことがあったからです。(この問題の修正方法はこちら)
ちなみに、wingetがインストールされているかを確認する他の方法としては、以下の2つもあります。
- ウインドウズキーを押してスタートメニューを開いた直後に「winget」とキーボードから打ち込む。コマンドの検索結果としてwingetがあれば、wingetはインストール済みのはず。
- Microsoft Storeで「アプリ インストーラー」を検索し、「インストール済み」となっていれば、wingetはインストール済みのはず。
ちなみにWindows 10で、管理者として実行したシェルでないとwingetが実行できないという症状を直して、管理者としてではなく普通に実行したシェルでもwingetを実行できるようにするにはどうすればいいかをご存じの方は、教えていただけると嬉しいです。
Microsoft Storeからインストールされたwingetが「アプリ実行エイリアス」によってシェルから実行できるようになっていることまでは分かったのですが、管理者権限の有無によってシェルから実行できたりできなかったりするという違いが発生する理由は分かりませんでした。
管理者として実行したシェルでないとwingetが実行できないという症状について、マイクロソフト コミュニティで質問してみました。
管理者としてではなく普通に実行したシェルでwingetコマンドが認識されず実行できない問題が解決しましたので、その現象と原因、そして修正方法をこちらにまとめました。
なお、この問題の解決にはkou1okadaさんの情報が大きな助けとなりました。この場を借りて御礼申し上げます。
現象
管理者として実行したコマンドプロンプトやPowerShellでは問題なくwingetを利用できる。 しかし、管理者として実行しなかったコマンドプロンプトやPowerShellではwingetが「認識されていません」などとなって実行できない。
原因
環境変数のPathに対応するレジストリの値の種類がREG_SZになっている。
原因がレジストリにあるか確認する方法
PowerShellで以下のコマンドを実行したときの結果を見て、
以下のように、Pathの種類がREG_SZとなっている場合は、問題の原因はこのレジストリの設定です。
修正方法
このWebページに載っている以下のコマンドを実行します。
修正できたかの確認
PowerShellで、以下のように、先ほどと同じコマンドを実行し、Pathの種類がREG_EXPAND_SZに変わったことを確認します。
さらに、管理者として実行していないPowerShellかコマンドプロンプトで以下のコマンドを実行し、バージョンが無事表示されるようになっていれば、修正が出来ています。
なお、レジストリを変更した後は、念のためコンピュータの再起動をしておいた方が良いかもしません。
謝辞
この問題の解決では、前述のkou1okadaさんのWebページの情報が大きな助けとなりました。この場を借りて御礼申し上げます。