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

Anonymous
2023-02-10T01:44:09+00:00

管理者として実行したコマンドプロンプトやPowerShellでは問題なくwingetを利用できています。

しかし、管理者として実行しなかったコマンドプロンプトやPowerShellではwingetが「認識されていません」となって実行できず、困っています。管理者権限は強い権限ですので、管理者権限の使用は可能な範囲で出来るだけさけたいと思っています。

なお、Microsoft Storeでは、「アプリ インストーラー」は「インストール済み」になっています。

この問題の解決策が分かる方がいらっしゃましたら、問題の原因とその解決策をご教授いただけますと幸いです。

問題の症状

管理者で実行していないコマンドプロンプトの場合

C:\Users\wakai>winget -v
'winget' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

管理者で実行していないPowerShellの場合

PS C:\Users\wakai> winget -v

winget : 用語 'winget' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されま

せん。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してく

ださい。

発生場所 行:1 文字:1

  • winget -v
  • 
        + CategoryInfo          : ObjectNotFound: (winget:String) [], CommandNotFoundException 
    
        + FullyQualifiedErrorId : CommandNotFoundException 
    
    

問題が起きているWindowsの仕様

エディション Windows 10 Pro

バージョン 22H2

インストール日 ‎2021/‎01/‎09

OS ビルド 19045.2486

エクスペリエンス Windows Feature Experience Pack 120.2212.4190.0

家庭向け Windows | Windows 10 | パフォーマンスとシステムの失敗

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。 プライバシーを保護するために、移行された質問のユーザー プロファイルは匿名化されます。

0 件のコメント コメントはありません
{count} 件の投票
Answer accepted by question author
  1. Anonymous
    2023-02-10T08:09:46+00:00

    このWebページを参考にして、以下のようにレジストリを変更したところ、管理者として実行していないコマンドプロンプトでもwingetを利用できるようになりました。いつから、なぜ、PathがREG_SZになってしまっていたのかがよく分からないのは気持ちが悪いですが、治るには治りました。

    返信を寄せいていただいた方々、ありがとうございました。

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

    HKEY_CURRENT_USER\Environment

    Path    REG\_SZ    C:\Users\wakai\bin;;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps 
    

    PS C:\Users\wakai> 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")}

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

    HKEY_CURRENT_USER\Environment

    Path    REG\_EXPAND\_SZ    C:\Users\wakai\bin;;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
    
    0 件のコメント コメントはありません

9 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Hebikuzure aka Murachi Akira 297.4K 評価のポイント MVP ボランティア モデレーター
    2023-02-10T02:02:13+00:00

    winget.exe がインストールされている場所を検索で探して、そのフォルダーのアクセス権に問題がないか(管理者権限でないと読み取り・実行できない場所ではないか)確認してください。

    また設定から「アプリインストーラー」を修復、リセットしてみても良いでしょう。

    0 件のコメント コメントはありません
  2. Anonymous
    2023-02-10T02:52:23+00:00

    そもそも、wingetは、パッケージのインストールやアップグレードをするため管理者権限がないとすべての機能が正常には動作しません。

    wingetはどのようにインストールされたのですか?

    通常のインストール方法であれば、ストアアプリとしてインストールされているはずですから、バージョン表示ぐらいならばパスが通っていなくてもできるはずです。

    githubからmsibundleパッケージをダウンロードしてインストールした場合も同様で、そもそもそのような動作の差が出るようなオプション選択をするインストール方法は存在しません。

    管理者権限が必要なコマンドなので、管理者権限に昇格可能なAdministratorsグループに属していないユーザーでは実行できないということはあるかもしれません。

    0 件のコメント コメントはありません
  3. Anonymous
    2023-02-10T06:07:45+00:00

    Hebikuzure 様

    早速ご返信いただきまして、ありがとうございます。

    まず、winget.exeがインストールされているフォルダのアクセス権を確認しましたが、問題らしきところは見つかりません。

    PCを2台所有しておりまして、この問題が起きていないPCの方とアクセス権の設定を見比べたのですが、問題と関連しそうな違いは見つけられませんでした。

    次に、「アプリ インストーラー」の修復を試しましたが、問題は解決しませんでした。

    なお、データのリセットの方も試しましたが、こちらでも問題は解決しませんでした。

    ちなみに、アンインストールはグレーアウトされており、クリックしても反応しないため、1度アンインストールして再インストールということは試せませんでした。

    参考情報

    winget.exeがインストールされているフォルダのアクセス権の詳細は、以下の通りです。

    画像

    なお、whoamiコマンドで確認した自分のユーザーの権限について、「コンピュータの管理」で確認したところ、所属するグループに「Administrators」はありました。

    0 件のコメント コメントはありません
  4. Anonymous
    2023-02-10T06:23:18+00:00

    Takashi NISHIIE 様

    早速ご返信いただきまして、ありがとうございます。

    learn.microsoft.comの記事で以下の記述を読みましたので、「管理者として実行していないシェルでwingetを実行し必要に応じて管理者に昇格する」という方式を基本としてwingetを運用したいと考えております。

    • 管理者特権を使用せずに winget を実行している場合、アプリケーションによっては、インストールするために昇格が必要になる可能性があります。 インストーラーが実行されると、Windows は、昇格を求めるメッセージを表示します。 昇格しないことを選択すると、アプリケーションのインストールは失敗します。

    wingetのインストールについては、明示的にインストールを行ったことはございません。ですので、Window updateでストアアプリである「アプリ インストーラー」が自動的にインストールされ、それにともないwinget.exeもインストールされたものと推測されます。

    Administratorsグループに属しているかどうかにつきましては、属していることを確認しております。

    具体的には、whoamiコマンドで自分のユーザー名を確認し、そのユーザー名について「コンピュータの管理」で確認したところ、所属するグループに「Administrators」がありました。

    0 件のコメント コメントはありません