【初心者向け】Windows でのアプリケーション管理を劇的に楽にする winget 入門

この記事のポイント
-
winget とは?
- Microsoft が公式に提供する Windows 用パッケージ管理ツールです。
- コマンドでアプリケーションのインストール・更新・削除ができます。
-
対応環境と導入方法
- Windows 10(1809以降)、Windows 11 で利用可能です。
- 多くの環境で App Installer (Microsoft Store)に標準搭載されています。
-
基本操作コマンド
winget search:アプリケーションを検索winget install:インストールwinget upgrade:更新winget uninstall:削除winget list:インストール済みアプリケーション一覧winget show:詳細情報を確認
-
応用活用例
- 複数アプリケーションを一括インストール(スクリプト化)
-
注意点と制約
- すべてのアプリケーションが winget に対応しているわけではない
- 管理者権限が必要な操作もある
- 自動更新機能は標準では非搭載
- 信頼できるソースからのみ利用することが安全
本記事を読む上での前提知識
winget は、コマンドラインツールを通じて利用します。コマンドライン操作がわからない人は、以下のページを参考にするとよいでしょう。

winget とは?
-
winget(Windows Package Manager CLI)とは、Microsoft が提供する、Windows 用の公式パッケージ管理コマンドラインツールです。
-
MSIX・MSI・EXE 形式のインストーラーを扱えますが、すべてのアプリケーションに対応できるわけではありません。
特に GUI インストーラーでサイレントインストールが難しいものは扱えないことがあります。 -
パッケージ情報はマニフェスト(YAML形式)として Microsoft によって管理されており、GitHub 上にオープンなリポジトリが存在します。
-
セキュリティ面では、不正なアプリケーションが簡単に混入しないよう対策が講じられています。
-
標準では自動更新スケジュール機能は備えておらず、必要に応じてサードパーティの補助ツールやスクリプトを用いることがあります。
apt や yum、macOS の brew といったパッケージマネージャーと概念的に近いものです。winget がすでに使えるか確認する
winget は、Windows 10(1809 以降)、Windows 11 で利用可能です。
ほとんどの環境では、すでに使えるようになっていることがありますが、状況によっては手動で準備が必要です。 まず、コマンドライン(PowerShell または Windows ターミナル、コマンドプロンプト)を起動し、以下のコマンドを入力してみます。
winget --version以下のようにバージョンが表示されれば、winget がすでに有効になっています。
v1.11.510「コマンドが見つかりません」などのエラーが出る場合、インストールが必要です。
winget インストール方法
そのため「アプリ インストーラー」をインストール(または更新)することで簡単に導入可能です。
しかし、お使いの PC が何らかの理由で Microsoft Store にアクセスできない人向けに、本章では Microsoft Store 経由以外で winget をインストールする手順を解説します。
- Windows 11
動作確認環境
- Windows 11 Home
手順
いくつか方法がありますが、今回は GitHub からインストールする方法で解説します。
まずは下記のページにアクセスします。

ページ中段にある「Microsoft.DesktopAppInstaller_●●●_.msixbundle」がインストーラーのダウンロードリンクです。
ダウンロードしたインストーラーをダブルクリックするとインストーラー画面が起動しますので、画面の指示に従って進めればインストールできます。 インストール完了後、コマンドラインを起動して以下のとおりコマンドを実行し、バージョン情報が表示されていれば正常にインストールされています。
winget -v実行結果例はこちら
v1.11.510winget コマンドの使い方
winget を実際に使ってみましょう。ここでは代表的なコマンドを具体例付きで解説します。
winget をはじめて利用した場合
はじめて winget コマンドを実行すると以下のとおり表示されます。yを入力した後に Enter キーを押せば、先に進めます。
'msstore' ソースでは、使用する前に次の契約を表示する必要があります。
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
ソースが正常に機能するには、現在のマシンの 2 文字の地理的リージョンをバックエンド サービスに送信する必要があります (例: "US")。
すべてのソース契約条件に同意しますか?
[Y] はい [N] いいえ: y| コマンド | 概要説明 |
|---|---|
winget search |
アプリケーションを検索 |
winget install |
アプリケーションをインストール |
winget uninstall |
アプリケーションをアンインストール |
winget upgrade |
アプリケーションを更新 |
winget list |
インストール済みアプリケーション一覧表示 |
winget show |
アプリケーションの詳細情報表示 |
下記のタブをクリックすると、各コマンドの解説内容が表示されます。
- 検索
- インストール
- アンインストール
- 更新
- 一覧表示
- 詳細表示
winget searchコマンドは、インストール可能なアプリケーションを検索して表示するためのコマンドです。
winget search [オプション] クエリ文字列| オプション | 説明 |
|---|---|
--id |
検索対象を ID で指定します。 |
--name |
検索対象を名前で指定します。 |
クエリ文字列に「検索したいアプリケーションの ID または名前」を指定して実行すると、検索条件に合致するアプリケーション情報が一覧表示されます。
例えば、pythonで検索したいときは、以下のとおり実行します。
winget search python実行結果例はこちら
名前 ID バージョン 一致 ソース
---------------------------------------------------------------------------------------------------------------------------
Python 3 Python.Python.3.9 3.9.13 Command: python winget
Python 3 Python.Python.3.12 3.12.0a4 Command: python winget
Python 3.11 Python.Python.3.11 3.11.2 Command: python winget
Python 3.10 Python.Python.3.10 3.10.9 Command: python winget
Python 2 Python.Python.2 2.7.18150 Command: python winget
(以下省略)これにより、該当するパッケージ名、ID、バージョン、発行元などが一覧表示されます。
(キーワードマッチングなので完全一致しない場合も表示されます。)
--idオプションを指定すると、検索対象を ID に絞り込んで検索します。
winget search --id Python.Python.3.11実行結果例はこちら
名前 ID バージョン ソース
-------------------------------------------------
Python 3.11 Python.Python.3.11 3.11.2 winget--nameオプションを指定すると、検索対象を名前に絞り込んで検索します。
winget search --name "Python 3.11"実行結果例はこちら
名前 ID バージョン ソース
--------------------------------------------------
Python 3.11 9NRWMJP3717K Unknown msstore
Python 3.11 Python.Python.3.11 3.11.2 winget応用テクニック・自動化
winget は単発操作だけでなく、スクリプト化・自動化にも向いています。
初心者が覚えておくと便利な応用例として、複数アプリケーションを一括インストールする例を紹介します。
以下の内容を記載したバッチファイルを作成します。
バッチファイルの作成方法はこちら
.bat にするとバッチファイルとして作成することができます。
例えばファイル名を install.bat で保存すれば問題ありません。
@echo off
setlocal enabledelayedexpansion
REM --- 自己昇格(管理者権限で再起動) ---
net session >nul 2>&1
if %errorlevel% NEQ 0 (
echo 管理者権限で再実行します...
powershell -NoProfile -ExecutionPolicy Bypass -Command "Start-Process -FilePath '%~f0' -Verb RunAs"
exit /b
)
REM --- winget の存在確認 ---
where winget >nul 2>&1
if %errorlevel% NEQ 0 (
echo winget が見つかりません。App Installer をインストール/更新してから再実行してください。
pause
exit /b 1
)
REM --- インストールしたいパッケージIDを並べる(必要に応じて追加/削除) ---
set APPS= ^
Google.Chrome ^
Mozilla.Firefox.ja
echo ===== 一括インストール開始 =====
for %%A in (%APPS%) do (
echo.
echo [%%A] をインストールしています...
winget install --id "%%A" --accept-package-agreements --accept-source-agreements --disable-interactivity -h
if !errorlevel! NEQ 0 (
echo [%%A] のインストールでエラーが発生しました(errorlevel=!errorlevel!)。
) else (
echo [%%A] のインストールが完了しました。
)
)
echo.
echo ===== すべての処理が終了しました =====
pause
上記バッチファイルのポイントは以下のとおりです。
- アプリケーションインストール時に
--accept-package-agreements、--accept-source-agreementsを指定して、自動で同意するようにしています。 - アプリケーションインストール時に
--disable-interactivity、-hを指定して、サイレントでのインストール実行を極力試みています(サイレント非対応のインストーラーでは、ダイアログが表示されることがあります)。 - 管理者権限が必要なアプリもあるため、自己昇格を入れています。
上記ファイルをダブルクリックするとバッチが実行され、ファイル内に記載したアプリケーションが一括インストールされます。
(今回の例では、Google Chrome と Mozilla Firefox (日本語版) をインストールしています。)
実行結果例はこちら
===== 一括インストール開始 =====
[Google.Chrome] をインストールしています...
見つかりました Google Chrome [Google.Chrome] バージョン 141.0.7390.108
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi
██████████████████████████████ 131 MB / 131 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました
[Google.Chrome] のインストールが完了しました。
[Mozilla.Firefox.ja] をインストールしています...
見つかりました Mozilla Firefox (ja) [Mozilla.Firefox.ja] バージョン 144.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://download-installer.cdn.mozilla.net/pub/firefox/releases/144.0/win64/ja/Firefox%20Setup%20144.0.exe
██████████████████████████████ 80.1 MB / 80.1 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました
[Mozilla.Firefox.ja] のインストールが完了しました。
===== すべての処理が終了しました =====
続行するには何かキーを押してください . . .
使用上の注意点・安全性
winget は強力なツールですが、使ううえで注意すべき点もあります。
-
信頼できるソースを使うこと
- 公式リポジトリや実績ある公開リポジトリから利用し、未知のソースは慎重に取り扱うべきです。
-
サイレントインストールに非対応なインストーラー
- GUI 操作が必須なインストーラー、あるいはサイレントインストールに対応していないものは失敗することがあります。
-
管理者権限・昇格要求
- アプリケーションによっては管理者権限必須。操作中に UAC が出ることもあります。
-
自動更新スケジュール機能がない
- 毎日/毎週の自動更新は標準機能ではなく、手動または補助ツールで対応が必要です。
-
古い Windows では未対応
- Windows 10 でもバージョン 1809 より前の環境には対応していないため、環境によっては手動で扱うしかない場合があります。
-
一部アプリケーションは非対応
- 特殊なインストーラー、ライセンスが複雑なもの、特殊な依存関係を持つものは winget 経由で管理できない場合があります。
こうした点に注意しながら使っていけば、非常に便利なツールになります。
まとめ
winget を使えば、Windows でもアプリケーションのインストール・更新管理を1回のコマンドでできるようになり、手間を大幅に削減できます。
ただし、すべてのアプリケーションが対応しているわけではないこと 、管理者権限が必要なケースがあること、信頼性やセキュリティ面で注意が必要なことなどを理解しながら使うことが重要です。
参考情報


コメント