powershell で通常 User でも winget を使えるようにする


Posted on Sun, Mar 10, 2024
Tags powershell, windows

PowerShell を通常ユーザーで起動して、winget を実行するとなぜか見つからない

原因は簡単で Path に winget の場所が設定されていないから。ただなぜそうなっているのかは不明。winget は Microsoft のツールだから、最初からパスが設定されていて良いものと思うが

winget search pgAdmin

winget : 用語 'winget'コマンドレット関数スクリプト ファイルまたは操作可能なプログラムの名前として認識されま
せん名前が正しく記述されていることを確認しパスが含まれている場合はそのパスが正しいことを確認してから再試行してく
ださい
発生場所 行:1 文字:1
+ winget search pgAdmin
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (winget:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

$env:Path

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Docker\Docker\resources\bin;

winget は C:\Users\you\AppData\Local\Microsoft\WindowsApps 配下に存在するので path に追加する。

$env:Path += ";C:\Users\you\AppData\Local\Microsoft\WindowsApps"

winget search pgAdmin

名前      ID                 バージョン ソース
-----------------------------------------------
pgAdmin 4 PostgreSQL.pgAdmin 8.4        winget
PS C:\Users\ama> winget install pgAdmin