Windowsでwingetを使う前に確認したいのは、単にコマンドを覚えることではありません。WinGetは、Windows上でアプリの検索、インストール、更新、削除、設定などをコマンドラインから扱うためのツールです。この記事では、Windowsでwingetを使うための公式インストール要件と使い方を、初回セットアップから自動化に向く指定方法まで順に整理します。
WinGetを使えるWindowsと前提条件
WinGetは、Windows 11、最新のWindows 10、Windows Server 2025で利用できます。Windows 10ではバージョン1809、ビルド17763以降が対象です。WinGet本体は、WindowsデスクトップではApp Installerの一部として提供されます。Windows Server 2025では更新を通じて提供されます。
まず、コマンドプロンプトまたはPowerShellを開き、次のコマンドを実行します。
winget --help
ヘルプが表示されれば、少なくともコマンドラインからWinGetを呼び出せる状態です。バージョンを確認したい場合は、次を使います。
winget --version
初めてWindowsへログインした直後は、Microsoft StoreによるWindows Package Managerの登録が非同期で行われるため、すぐにwingetが使えるとは限りません。少し時間を置いても利用できない場合は、PowerShellで次の登録処理を実行する方法があります。
Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe
App Installer自体が端末にない場合は、先にApp Installerの導入が必要です。なお、Windows SandboxにはWinGetもMicrosoft Storeアプリも含まれません。Sandbox内で使う場合は、PowerShell GalleryからMicrosoft.WinGet.Clientモジュールを導入し、Repair-WinGetPackageManager -AllUsersで安定版をセットアップする手順が用意されています。
最初はsearch、次にshow、最後にinstall
アプリ名をいきなりinstallへ渡すより、検索結果と詳細を見てから導入する方が安全です。たとえばPowerToysを探すなら、次のようにします。
winget search powertoys
候補が複数出た場合は、IDや名前を手掛かりに絞ります。対象の情報や、選択されるインストーラーの詳細を見るにはshowを使います。
winget show powertoys
対象を一意に指定できるなら、IDと完全一致を組み合わせます。
winget install --id Microsoft.PowerToys -e
-e、または--exactは、検索語を部分一致ではなく完全一致として扱う指定です。通常の検索語は、パッケージ名、ID、monikerに対する大文字小文字を区別しない部分一致です。そのため、似た名前の候補を避けたいスクリプトでは、--idと--exactの組み合わせが扱いやすくなります。
バージョンを固定したい場合は、--versionを加えます。
winget install --id Microsoft.PowerToys --version 0.91.1
特定バージョンを指定しなければ、基本的には最も高いバージョンが選ばれます。検証環境と本番環境で同じ構成を再現したい場合は、バージョン固定を候補に入れます。ただし、どのバージョンを採用するかは対象アプリの要件や運用方針に依存します。
権限、同意、サイレントインストールの注意点
管理者権限なしで実行すると、アプリによってはインストール時に昇格を求められます。昇格を拒否した場合、そのアプリのインストールは失敗します。一方、管理者としてコマンドプロンプトを起動して実行すれば、必要なアプリでは昇格プロンプトが表示されません。管理者権限で実行する場合も、信頼できるアプリだけを対象にする運用が前提です。
自動化や初期セットアップでは、対話を減らすオプションが役立ちます。インストーラーの画面を抑制する--silentと、パッケージ側のライセンス同意を自動受諾する--accept-package-agreementsを組み合わせる例は次の通りです。
winget install --id Git.Git -e --silent --accept-package-agreements
ただし、パッケージのライセンス同意と、WinGetのソースに対する同意は別です。ソース側の同意も抑制する場合は--accept-source-agreementsを追加します。
winget install --id Git.Git -e --silent `
--accept-package-agreements --accept-source-agreements
完全な非対話実行を狙っても、アプリ側のインストーラー仕様、再起動、権限、依存関係によって結果は変わります。まず単体の対話実行で導入条件を把握し、その後にサイレント指定へ進むのが切り分けしやすい流れです。
複数台の初期構築で使うコマンド
複数のアプリを一度に入れる場合は、IDを並べて指定できます。
winget install Microsoft.VisualStudioCode Microsoft.PowerShell Git.Git
WinGetは各パッケージを順番にインストールします。新しいPCの開発環境を短時間で作る用途や、同じツール群を同僚と共有する用途に向きます。パッケージ数が多い場合は、個別コマンドを長くするより、winget exportでインストール済みパッケージの一覧を保存し、winget importで復元する方法があります。アプリ以外のマシン設定も含めて望ましい状態へ寄せる場合は、winget configureも候補になります。
ただし、一覧を復元すれば必ず同一状態になるとは限りません。アプリの提供元、利用可能なバージョン、管理者権限、インストール範囲などが端末ごとに異なるためです。導入後はwinget listで状態を見たり、必要に応じてwinget upgradeやwinget uninstallを使ったりします。
失敗したときの切り分け
wingetが認識されない場合は、App Installerの有無、Windowsのバージョン、初回ログイン後の登録、PATH、App Installerの更新状態を順番に見ます。Windows Sandboxでは通常環境と前提が異なるため、Sandbox向けの導入手順を使います。
検索結果が複数ある場合は、--id、--name、--moniker、--sourceで条件を狭めます。複数のソースに同じような項目があるときは、次のようにソースも指定できます。
winget install --id Git.Git -e --source winget
インストールが途中で止まる場合は、ログを確認します。通常のログは次の場所に保存されます。
%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir\*.log
コマンド単位でログの出力先を指定するなら、--logを使います。詳細な記録が必要なときは--verbose-logsも候補です。ローカルYAMLマニフェストを使う--manifestは便利ですが、ローカルマニフェストの導入にはリスクがあり、管理者による機能有効化も必要です。出所が明確なマニフェストだけを扱う運用に向きます。
まとめ:手作業の削減と再現性のどちらを優先するか
WinGetは、Windowsアプリの検索、導入、更新、削除をコマンドから扱えるため、開発環境の初期構築や複数台のセットアップに適しています。個人PCで数本のアプリを入れるだけなら、searchで候補を探し、showで詳細を見て、ID指定のinstallを実行するだけでも十分です。
一方、無人セットアップや継続運用では、ID、完全一致、バージョン、ソース、同意オプション、ログ出力まで明示した方がトラブルを追いやすくなります。まずは対話形式で一つのアプリを導入し、次に複数パッケージ、最後にexport/importやサイレント実行へ広げるのが現実的です。つまり、Windowsでwingetを使う価値は、コマンドを短くすることだけでなく、公式インストール要件と使い方を押さえたうえで、導入作業を再現可能な手順へ変えられる点にあります。
筆者の環境で実際に確認した結果
確認日:2026年10月14日/環境:Windows 11 Home(ビルド26300)、Windows PowerShell 5.1、Python 3.14
筆者の環境での確認結果です。
> winget --version
v1.29.380
> winget source list
msstore https://storeedgefd.dsx.mp.microsoft.com/v9.0
winget https://cdn.winget.microsoft.com/cache
winget-font https://cdn.winget.microsoft.com/fonts
Windows 11には最初から入っていて、ソースは msstore・winget・winget-font の3つでした。会社のPCなどで winget が見つからない場合は、まずこの2つのコマンドでバージョンとソースが表示されるかを確認すると、インストール自体の問題かソースの問題かを切り分けられます。
