はじめに
Wingetは、コマンド一つで、Windowsソフトウェアのインストール・更新・アンインストールを自動化できる管理ツールだ。従来は手作業で行っていた各種アプリの導入やアップデートを、wingetを使えばスクリプト化・一括実行できる。Windows 10以降に標準搭載されている。
本記事では、wingetの基本コマンドと推奨オプション、実際に利用中に遭遇しやすい注意点を整理し、安全かつ効率的に運用する手順を示す。
sec.1. Wingetとは?基本概要
WingetはWindows Package Manager(以下winget)の通称であり、Microsoftが公式に提供するCLI(コマンドプロンプトやPowerShell)ベースのパッケージ管理ツールだ。歴史的にはChocolatey(2011年登場)に続き、Microsoftが2020年5月にwingetを正式リリースして後追い開発された。
Windows 10以降に標準搭載済みで、コマンドラインからすぐに利用可能だ。コマンド一つでソフトウェアのインストール・アップデート・アンインストールを行い、手動インストールの手間を省き、環境構築の自動化・スクリプト化を実現する。
Wingetでインストール後は、「アプリと機能」および「プログラムと機能」に表示され、GUI管理との両立が可能だ。Microsoft StoreアプリとMSI/EXEインストーラーの両方をサポートしている。
winget パッケージを検索・閲覧できる主なサイト
- Microsoft winget-pkgs リポジトリ: https://github.com/microsoft/winget-pkgs/tree/master/manifests Wingetパッケージの定義情報(マニフェスト)が公式に管理されているGitHub上のリポジトリ。直接的な閲覧サイトではないが、最新かつ公式の情報源
- winstall (コミュニティサイト): https://winstall.app/ 公式リポジトリの情報を分かりやすいインターフェースで閲覧・検索できるコミュニティサイト
- winget.run (コミュニティサイト): https://winget.run/ winstallと同様に、公式リポジトリの情報を基にパッケージを検索・閲覧できるコミュニティサイト
sec.2. WingetとChocolateyの成り立ちと違い
Windowsには、Wingetの他にもChocolateyという人気のパッケージ管理ツールがある。どちらもコマンドラインからソフトウェアを管理できるが、いくつかの違いがある。
※Chocolateyの導入記事はこちら。https://maruq.net/chocolatey-install/
項目 | Chocolatey | winget |
---|---|---|
登場年 | 2011年 | 2020年 |
導入方法 | インストールが必要 | Windows 10以降に標準搭載 |
管理対象パッケージ | 多様な形式(EXE/MSI/ZIPなど)に対応。開発者向けツールなどが多い傾向 | 多様な形式(MSI/EXEなど)に対応。Microsoft Storeアプリにも対応 |
パッケージ数 | 約10,000 | 約8,000 |
GUI管理連携 | 「プログラムと機能」に表示されない場合がある | 「アプリと機能」「プログラムと機能」に確実に表示 |
更新コマンド | choco upgrade all -y | winget upgrade –all |
管理情報の一貫性に関する注意
Chocolateyは自前のデータベースにインストール履歴を保持し、choco listやchoco upgradeはそこを参照して動作する。WingetはレジストリやStore情報を参照し、winget list/winget upgradeではそこから取得した情報を使う。
ただし同一アプリをお互いでアンインストールできる場合がある。たとえばChocolateyで導入したMSIベースのアプリを、winget uninstallで削除できることもある。逆に、wingetで入れたアプリをchoco uninstallで消せる場合もあるが、メタデータ不整合で失敗することが多い。
ゆえに、運用ルールは“一貫管理”が鉄則だ。
- Chocolatey導入分 → choco upgrade/choco uninstall
- winget導入分 → winget upgrade/winget uninstall
こうしてパッケージごとに管理ツールを明確に分けることで、データ不整合や操作ミスを防げる。
アプリケーションによる使い分けの傾向
wingetが適しているケース
Microsoft製品やストアアプリ、有名フリーソフト(VLC、Firefox、Chrome、Gitなど)を手軽に管理したいとき。OS標準機能として素早く導入・更新したいとき。
Chocolateyが適しているケース
FFmpegやRuby、Makeなど、ややニッチな開発ツールやライブラリをインストールしたいとき。特定バージョンを固定したいとき。社内環境をChocolateyで既に構築しているとき。
これらを組み合わせ、基盤的な開発ツールはChocolatey、エンドユーザー向けのGUIアプリはwingetで管理するハイブリッド運用も有効だと思われる。
sec.3. Wingetを使ってみる—準備編
Wingetを安心して使い始めるために、以下の3点を事前に確認しておく。
Wingetの動作確認: -v
または--version
PowerShell/コマンドプロンプト/Windows Terminalを開き、次のコマンドを実行する。
winget -v
または winget --version
もしWingetが正しくインストールされていれば、バージョン情報が表示される。wingetは、マイクロソフト・ストアのライブラリにある「アプリ・インストーラー」(App Installer)から最新版を適用可能である。
Microsoft Storeソースへの同意
初回に以下のようなメッセージが出ることがある:
'msstore' ソースでは、使用する前に次の契約を表示する必要があります。
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
ソースが正常に機能するには、現在のマシンの 2 文字の地理的リージョンをバックエンド サービスに送信する必要があります (例: "US")。
すべてのソース契約条件に同意しますか?
[Y] はい [N] いいえ:
これは「winget がMicrosoft Store をパッケージの取得元(ソース)として使うための利用規約への同意」を求めるもので、wingetで扱うには、[Y] を選んで同意する必要がある。
管理者権限が必要な場合
一部のアプリ(システム全体にインストールされるツールなど)は、管理者権限で実行しないとエラーになる。その場合は、PowerShellやコマンドプロンプトを右クリック →[管理者として実行]で起動して操作する。
以上の準備が整ったら、次節からは実際のインストール/アップグレード/アンインストール操作に進もう。
sec.4. Wingetの基本コマンドをマスターする

パッケージを探す: winget search
インストールしたいソフトウェアがWingetにあるかを探し、そのIDを調べるコマンドだ。
winget search <検索キーワード>
キーワードで検索すると、パッケージの名前、ID、バージョン、ソースなどが一覧表示される。名前とIDは異なる場合が多く、インストール時や更新には、正確なIDを確認するべきだ。
例として、VLCを検索する。すると、ID「VideoLAN.VLC」などが確認できる。
winget search vlc
ソフトウェアをインストールする: winget install
検索で見つけたパッケージIDを使ってソフトをPCにインストールするコマンドだ。
winget install <パッケージID> -e
#または
winget install <パッケージID> --exact
間違いを防ぐため、ID指定時には -e
または --exact
オプションを必ず付ける。これは指定したIDに完全に一致するものだけを対象とするオプションだ。
(補足) Wingetは自動(サイレント)インストールを試みるように設計されているが、使用されるインストーラーの仕様によっては、インストール中に、ユーザーによる操作(例: ライセンス同意画面をクリックする必要があるなど)が必要になったりする場合がある。
バージョンを指定してインストール: -v
または--version
installコマンドで、通常は最新版が入るが、古いバージョンなどを指定することも可能だ。
インストールしたいバージョンの正確な番号が分からない場合は、前述のセクションで紹介したウェブサイト、winstallや、winget.runで、パッケージの詳細を確認すると、利用可能なバージョン一覧が記されていることもある。
インストールしたいバージョン番号が分かったら、以下のように指定する。
winget install <パッケージID> -v <見つけたバージョン番号> -e
#または
winget install <パッケージID> --version <見つけたバージョン番号> --exact
インストール済みを表示: winget list
PCにインストールされている、Wingetが認識できるソフトの一覧を表示するコマンドだ。
winget list
winget管理下以外のアプリも含め、PCに登録されている多くのソフトが、一覧表示される。キーワードで絞り込みも可能。
winget list Microsoft
ソフトウェアをアップデート: winget upgrade
まずは、アップデート可能なソフトウェア(パッケージ)だけを、一覧表示。引数なしで実行する。
winget upgrade
特定のソフトだけ更新する場合は、リストからIDを確認し、IDを指定。-e オプションを推奨。
winget upgrade <パッケージID> -e
一括アップデート: --all
アップデート可能な全てを一括更新する場合は --all
オプション。
winget upgrade --all
【注意】--all
を実行する前に必ずwinget upgrade
で一覧を確認し、メジャーバージョンアップなど注意が必要なものがないかチェックする。
ソフトウェアをアンインストール: winget uninstall
winget uninstall <パッケージID> -e
インストール時と同様に、Id
と-e
指定で確実にアンインストール。アンインストールしたいソフトのIDは winget list で確認できる。
以上の5つのコマンドがあれば、インストール→一覧表示→アップデート対象確認→アップデート→アンインストールまで、wingetによるソフト管理の基本操作がすべて行える。
sec.5. 便利な機能と知っておくべきこと
Wingetの基本コマンドに加え、PCの環境構築に役立つ機能や、使う上で知っておきたい点がある。
パッケージリストのエクスポートとインポート
現在インストールされているパッケージをリスト化(エクスポート)し、別のPCでまとめてインストール(インポート)できる機能。PC移行などに便利だ。
- エクスポート:
winget export -o <ファイルパス>
現在のインストール状況をJSONファイルに書き出す。例:winget export -o backup.json
- インポート :
winget import -i <ファイルパス>
ファイルから読み込み、リストのパッケージをインストール。例:winget import -i backup.json
(補足)インポート時、ライセンス同意が必要な場合がある。
この機能は、PowerShellスクリプトに winget install を並べる方法に似ているが、export がインストール済みリストを自動生成する点が大きな違いだ。export/importは「ある時点の状態を再現」するのに適しており、スクリプトは「決まった手順でインストール」するのに向く。
Wingetを使う上での注意点と限界
Wingetは、リポジトリ(アプリの情報が集められている場所)に登録されているパッケージしか管理できないため、PC上の全てのソフト(ドライバー、特定ユーティリティなど)を扱えるわけではない。
winget export
時に「インストールされているパッケージはどのソースからも利用できません」と出るのは、Wingetで管理できないアプリのことだ。これらはエクスポートされない。- import 時に「エクスポートされたパッケージをインストールするには、使用許諾契約書が必要です」というメッセージが表示されることがある。これは、インポートするパッケージにライセンス同意が必要であることを示している。
- 他のパッケージマネージャーとの併用: Chocolateyなど、他のツールでインストールしたアプリをWingetで管理すると、それぞれの管理情報にずれが生じ、問題が起きる可能性があるので注意すること。
- コマンドの出力確認: コマンド実行時のメッセージや出力内容をよく確認する。インストール前など、必要に応じて winget show <パッケージID> で提供元などを確認し、意図したパッケージなのかチェックをする。
sec.6. まとめ
本記事では、Microsoftが提供するコマンドラインベースのパッケージ管理ツール、Wingetの基本的な使い方と、知っておくべき点について解説した。
Wingetは、コマンド一つでソフトウェアのインストール、アップデート、アンインストールといった作業を一元管理できる強力なツールだ。手動でのダウンロードやインストーラーの実行といった手間を省き、PCの環境構築や日々のソフトウェア管理を効率化・自動化できるという大きな利点がある。
search
で目的のパッケージを探し、install
でインストール、list
でインストール済みを確認、upgrade
で更新対象を把握・実行、uninstall
で不要なものを削除する。これらの基本コマンドによって、Wingetによるソフトウェア管理は十分行えるようになる。さらに export/import 機能を使えば、複数のPCで同じソフトウェア環境を簡単に再現できるはずだ。
もちろん、現時点では全てのソフトウェアがWingetのリポジトリに登録されているわけではなく、管理できないアプリも存在する点で、winget一つで十分というわけではない。
わたし自身の備忘録も兼ねた、この記事で、読者も日々のソフトウェア管理に役立てる一助となれば幸いだ。
コメント