Software

最新コメント

管理者としてではなく普通に実行したシェルではwingetコマンドが認識されないときの対処法

wakairo @wakairo
最終更新

現象

管理者として実行したコマンドプロンプトやPowerShellでは問題なくwingetを利用できる。 しかし、管理者として実行しなかったコマンドプロンプトやPowerShellではwingetが「認識されていません」などとなって実行できない。

原因

環境変数のPathに対応するレジストリの値の種類がREG_SZになっている。

原因がレジストリにあるか確認する方法

PowerShellで以下のコマンドを実行したときの結果を見て、

REG Query HKCU\Environment /V Path

以下のように、Pathの種類がREG_SZとなっている場合は、問題の原因はこのレジストリの設定です。

HKEY_CURRENT_USER\Environment 

    Path    REG_SZ    C:\foobar;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps 

修正方法

このWebページに載っている以下のコマンドを実行します。

if ((gi HKCU:\Environment).GetValueKind("Path") -eq "String") {sp Registry::HKEY_CURRENT_USER\Environment Path (gi HKCU:\Environment).GetValue("Path",$null,"DoNotExpandEnvironmentNames") -Type ExpandString; [Environment]::SetEnvironmentVariable("WM_SETTINGCHANGE","","User")} 

修正できたかの確認

PowerShellで、以下のように、先ほどと同じコマンドを実行し、Pathの種類がREG_EXPAND_SZに変わったことを確認します。

PS C:\Users\wakai> REG Query HKCU\Environment /V Path 

HKEY_CURRENT_USER\Environment 

    Path    REG_EXPAND_SZ    C:\foobar;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps 

さらに、管理者として実行していないPowerShellかコマンドプロンプトで以下のコマンドを実行し、バージョンが無事表示されるようになっていれば、修正が出来ています。

winget -v

なお、レジストリを変更した後は、念のためコンピュータの再起動をしておいた方が良いかもしません。

謝辞

この問題の解決では、前述のkou1okadaさんのWebページの情報が大きな助けとなりました。この場を借りて御礼申し上げます。

0
Raw
https://www.techtips.page/ja/comments/76
😄1
🔄1
🔧1

wingetのエラー表示はWingetUIよりも不親切?

wakairo @wakairo
最終更新

アプリケーションの更新が失敗したときやエラーが発生したときの表示がwingetは不親切な気がしています。
wingetでエラーなどが発生したときに、wingetが返したメッセージを読んでも、次にいったいどうすればいいのかよく分からないことが多いように感じています。

それに比べると、WingetUIはwingetよりも関連する情報を多めに出してくれるので、親切な気がします。
wingetでもやりようはあるのでしょうが、ライトユーザーが日常的なメンテナンスをする分には、WingetUIの方が適しているのかもしれません。

0
Raw
https://www.techtips.page/ja/comments/75

WingetUIのインストール

wakairo @wakairo

公式のGitHubのReadmeにも書かれていますが、
インストールはPowerShellかコマンドプロンプトで以下のコマンドを実行することで簡単にできます。

winget install wingetui

インストーラーをダウンロードして実行することでもインストールできるようですが、せっかくwingetがパッケージ管理をしてくれるのですから、wingetコマンドからのインストールの方が良さそうな気がします。

0
Raw
https://www.techtips.page/ja/comments/74

wingetを利用したアプリのアップデートの仕方

wakairo @wakairo

ちなみに、初めてwinget upgrade --allを実行したときに、エラーが出たり、更新に失敗したりしたアプリケーションがそれなりにありました。
ただ、それらのアプリケーションを1つずつ確認してみると、サポート切れ等で不要となったアプリが大半でしたので、アンインストールすることで大半の問題は解決しました。
また、wingetでインストールしたアプリでない場合は、エラーに関連するものなど一通りをアンインストールした後で、wingetで改めてインストールするというのが有効な場合がありました。

0
Raw
https://www.techtips.page/ja/comments/73

wingetを利用したアプリのアップデートの仕方

wakairo @wakairo

以下のコマンドで、更新が可能なアプリケーションの一覧が表示されます。

winget upgrade

表示された全てのアプリケーションを更新するには、以下のコマンドを実行します。

winget upgrade --all
0
Raw
https://www.techtips.page/ja/comments/72

wingetがインストールされているかの確認方法(wingetは、管理者として実行したシェルでないと実行できないことがある)

wakairo @wakairo

管理者として実行したシェルでないとwingetが実行できないという症状について、マイクロソフト コミュニティで質問してみました。

https://answers.microsoft.com/ja-jp/windows/forum/windows_10-performance/%e7%ae%a1%e7%90%86%e8%80%85%e3%81%a8%e3%81%97/63903580-72f9-4090-95c0-fc2870029fdb

0
Raw
https://www.techtips.page/ja/comments/71

wingetがインストールされているかの確認方法(wingetは、管理者として実行したシェルでないと実行できないことがある)

wakairo @wakairo
最終更新

ちなみにWindows 10で、管理者として実行したシェルでないとwingetが実行できないという症状を直して、管理者としてではなく普通に実行したシェルでもwingetを実行できるようにするにはどうすればいいかをご存じの方は、教えていただけると嬉しいです。

Microsoft Storeからインストールされたwingetが「アプリ実行エイリアス」によってシェルから実行できるようになっていることまでは分かったのですが、管理者権限の有無によってシェルから実行できたりできなかったりするという違いが発生する理由は分かりませんでした。

0
Raw
https://www.techtips.page/ja/comments/70

wingetがインストールされているかの確認方法(wingetは、管理者として実行したシェルでないと実行できないことがある)

wakairo @wakairo
最終更新

Windows 10とWindows 11では、わざわざインストール作業をしなくてもwingetがすでに入っていることが多いです。

自分のWindows環境にwingetが入っているか確認する際は、管理者としてPowerShellかコマンドプロンプトを立ち上げて、以下のコマンドでバージョンが表示されるかどうかで確認することがおすすめです。

winget -v

なぜ管理者でのシェルの実行をおすすめするかというと、Windows 10 Pro 22H2で、管理者としてではなく普通に実行したシェルではwingetコマンドが認識されず実行できないことがあったからです。(この問題の修正方法はこちら

ちなみに、wingetがインストールされているかを確認する他の方法としては、以下の2つもあります。

  • ウインドウズキーを押してスタートメニューを開いた直後に「winget」とキーボードから打ち込む。コマンドの検索結果としてwingetがあれば、wingetはインストール済みのはず。
  • Microsoft Storeで「アプリ インストーラー」を検索し、「インストール済み」となっていれば、wingetはインストール済みのはず。
0
Raw
https://www.techtips.page/ja/comments/69

全選択はC-x hか、もしくは、メニューから

wakairo @wakairo

emacsで全選択するにはC-x h

emacsでは全選択はときどきしかしないため、このキーバインドはなかなか覚えないなと思っていたら、
メニューバーを使うやり方の記事を見つけました。

確かにメニューバーに覚えておいてもらうのも1つの手だなと思いました。

0
Raw
https://www.techtips.page/ja/comments/67

タブを区別して表示する

wakairo @wakairo

ちなみに、タブが混入していたときに、一括して空白に置き換えるにはM-x untabify。 emacsで見ると綺麗にインデントされているが実は空白とタブがグチャグチャになっているようなファイルを空白に統一するときにとても便利です。

参考

https://flex.phys.tohoku.ac.jp/texi/emacs-jp/emacs-jp_104.html

1
Raw
https://www.techtips.page/ja/comments/66