【Windows】再インストール後にソフトを一括インストールする方法(WinGet 使用ガイド)

以前は、Windows を再インストールする前に、インストール済みソフトの一覧をスクリーンショットで保存していました。そして再インストール後、その画像を見ながら各ソフトの公式サイトにアクセスし、インストーラーを一つずつダウンロードして、手作業でインストールしていました。

最近、Linux や macOS で使われているパッケージマネージャー、たとえば apt、dnf、Homebrew などに触れる機会がありました。そこで、Windows でも同じような方法でソフトをインストールできれば、もっと便利でスマートなのではないかと思うようになりました。

そこで使い始めたのが WinGet、正式には Windows Package Manager です。これは Microsoft が提供している Windows 向けのコマンドライン型パッケージマネージャーで、比較的新しい Windows 11 環境では、通常「アプリ インストーラー」を通じて利用できるようになっています。

WinGet を使うと、各ソフトの Web サイトからインストーラーを手動でダウンロードしなくても、コマンドラインからソフトを検索・インストールできます。

WinGet の基本コマンド

検索とインストール

WinGet で特定のソフトをインストールする流れは、大きく分けると二段階です。まずパッケージIDを検索し、そのパッケージ ID を指定してインストールします。

まず PowerShell を開きます。Windows のロゴ、つまり左クリックするとスタートメニューが開くボタンを右クリックして、Terminal または ターミナル を選ぶ方法があります。スタートメニューから PowerShell を検索して開いても構いません。

たとえば PotPlayer をインストールしたい場合、まず以下のコマンドを入力します。これは、potplayer を含むパッケージを検索するという意味です。

winget search potplayer

検索すると、複数の結果が表示されることがあります。このときは少し判断が必要です。

WinGetのパッケージIDは、多くの場合 開発元名.ソフト名 のような形式になっています。前半は開発元、組織名、プロジェクト名などで、後半はソフト名であることが多いです。

そのため、検索結果の中にある Daum.PotPlayer が、今回インストールしたい PotPlayer のパッケージ ID だと判断できます。

次に、以下のコマンドを実行します。

winget install Daum.PotPlayer

Daum.PotPlayer は手入力してもよいですし、検索結果からコピーして貼り付けても構いません。

Windows Terminal や新しい PowerShell では、通常 Ctrl+CCtrl+V でコピー・貼り付けができます。古いコンソール画面では、文字列を選択して右クリックするとコピーされ、もう一度右クリックすると貼り付けられる場合もあります。

より厳密に指定したい場合、特にスクリプトを書く場合は、次のように --id--exact を付けることもできます。

winget install --id Daum.PotPlayer --exact

これは「このパッケージIDと完全に一致するものをインストールする」という指定です。

アンインストール

ソフトをアンインストールしたい場合は、uninstall コマンドを使います。

たとえば、先ほどインストールした PotPlayer をアンインストールするには、次のように入力します。

winget uninstall Daum.PotPlayer

以前にインストールしたソフトで、パッケージIDを覚えていない場合は、list コマンドでインストール済みソフトの一覧を確認できます。

winget list

winget list で表示されるソフトには、WinGet でインストールしたものだけでなく、他の方法でインストールしたものも含まれます。WinGet で管理されているソフトは、通常 Source 列に winget と表示されます。

ただし、他の方法でインストールしたソフトは、WinGet から必ずしも正常にアンインストールできるとは限りません。

アップグレード

アップグレードできるソフトを確認するには、次のコマンドを実行します。

winget upgrade

このコマンドは、アップグレード可能なソフトの一覧を表示するだけです。まだ実際のアップグレードは行われません。

表示された一覧のソフトをすべてアップグレードしたい場合は、次のように入力します。

winget upgrade --all

特定のソフトだけをアップグレードしたい場合は、そのパッケージ ID を指定します。

winget upgrade Daum.PotPlayer

実際には、まず winget upgrade で一覧を確認してから、必要に応じて winget upgrade --all を実行するのがよいと思います。

一括インストール用スクリプト

検索して確認したパッケージ ID は、保存しておくことができます。そうしておけば、次に Windows を再インストールした後、保存しておいたパッケージIDを使って、winget install コマンドを順番に実行できます。

これにより、各ソフトの公式サイトを一つずつ探してインストーラーをダウンロードする手間を減らせます。また、広告やおすすめインストール、バンドルソフトが含まれる可能性のあるサードパーティ製ソフト管理ツールに頼る必要も少なくなります。

さらに、一つずつインストールする代わりに、保存しておいたパッケージ ID を PowerShell スクリプトにまとめて、WinGet で自動的にインストールすることもできます。

現在、私が使っている一括インストール用のコードは以下のようなものです。自分の環境に合わせて、インストールしたいソフトを追加・削除できます。

$apps = @(
    "SublimeHQ.SublimeText.4",
    "Daum.PotPlayer",
    "Valve.Steam",
    "HandBrake.HandBrake",
    "Cryptomator.Cryptomator",
    "WinFsp.WinFsp",
    "PDFArranger.PDFArranger",
    "Anki.Anki",
    "FastStone.Viewer",
    "ShareX.ShareX",
    "voidtools.Everything",
    "M2Team.NanaZip",
    "chrox.Readest",
    "LocalSend.LocalSend",
    "Gyan.FFmpeg"
)

foreach ($app in $apps) {
    Write-Host "Installing: $app" -ForegroundColor Cyan

    winget install --id $app --exact --source winget --accept-package-agreements --accept-source-agreements
}

重要なのは $apps の部分です。ここに並んでいる各行が、WinGet のパッケージ ID です。別のソフトを追加したい場合は、まず winget search ソフト名 でパッケージIDを確認し、その ID をこのリストに追加します。

その下の foreach ループは、$apps に入っているパッケージIDを一つずつ取り出して、自動的にインストールしていきます。

インストールコマンドの中で使っているオプションの意味は、次の通りです。

--id

パッケージ ID を指定してインストールするという意味です。

--exact

指定した ID と完全に一致するパッケージだけを対象にします。似た名前の別ソフトを誤ってインストールするリスクを減らせます。

--source winget

WinGetのソースを指定しています。

--accept-package-agreements
--accept-source-agreements

パッケージやソースに関する確認事項を自動的に承認します。これにより、一括インストール中に確認待ちで止まりにくくなります。

ただし、ソフトによっては管理者権限が必要だったり、追加の確認操作が必要だったり、インストール後に再起動が必要になる場合もあります。

一括インストール中に特定のソフトだけ失敗した場合は、そのソフトのパッケージ ID を使って、次のようなコマンドを単独で実行すると、エラー内容を確認しやすくなります。

winget install --id Package.ID --exact

通常、winget source update を手動で実行する必要はありません。ただし、Windows を再インストールした直後や、本来見つかるはずのソフトが検索できない場合は、次のコマンドでソース情報を更新してから、もう一度検索またはインストールしてみるとよいでしょう。

winget source update

まとめ

私にとって、WinGet の一番大きなメリットは、単にクリック数を減らせることだけではありません。Windows を再インストールした後の作業手順そのものを変えられることです。

以前のように、スクリーンショットを見ながら記憶を頼りに公式サイトを探し、インストーラーを一つずつダウンロードする必要がなくなります。

代わりに、よく使うソフトのパッケージIDを一覧として保存しておき、必要なときにスクリプトでまとめてインストールできます。

Linux や macOS のパッケージマネージャーに近い感覚で Windows 環境を整えられるので、Windows の再インストール後の作業がかなり楽になります。