はじめに
Windows のパッケージ管理ツールである winget は非常に便利ですが、アプリの更新(winget update -e --id ${アプリ ID})を手動で実行すると、次のコマンドを入力できるようになるまで、個別のアップデートを待つ必要があります。
この課題を解消するツールが Winget-AutoUpdate (WAU) です。
WAU は、ログオン時などにバックグラウンドで winget による自動更新を行ってくれるツールです。
また、アップデートしたくないアプリに対して、対象外とする設定が可能です。
しかし、winget コマンドでインストールした場合、公式サイトのドキュメント(Configurations セクション)にあるフォルダ構成と実際が異なるというトラップがあります。
本記事では、Windows 11 環境で WAU を正しく設定し、特定のアプリを除外しながら運用する手順をまとめます。
WAU を導入するメリット
- 完全自動化: WAU のインストール時にタスクスケジューラへ自動登録され、バックグラウンドで更新が走ります。
- 効率化: 「一つひとつのアップデートが終わるのを待って次のコマンドを打つ」という手間から解放されます。
-
除外リスト: 更新したくないアプリ(特定のバージョンを維持したいもの等)を**ワイルドカード(
*)**で指定可能。 - ログ機能: アップデート時に何が更新され、何が失敗したか、後から確認できます。
1. 事前準備
まず、winget が利用可能な状態であることを確認してください。
winget --version
2. Winget-AutoUpdate のインストール
PowerShell で以下のコマンドを実行します。
winget install -e --id Romanitho.Winget-AutoUpdate
※ インストール時に、自動的にタスクスケジューラに登録されます。
3. 除外リスト(excluded_apps.txt)の設定
自動更新の対象から外したいアプリを指定します。
設定ファイルの配置パス
winget でインストールした場合、設定ファイルは以下の場所に配置します。
重要: 公式サイトの説明にあるパス(
C:\support\Winget-AutoUpdate等)とは異なりますので注意してください。
C:\Program Files\Winget-AutoUpdate\excluded_apps.txt
記述例
以下のように、更新を制御したいアプリを記述します。WAU の仕様としてワイルドカードが有効です。
Google.Chrome*
Microsoft.Edge*
Microsoft.Office
Microsoft.OneDrive
Microsoft.Teams*
Mozilla.Firefox*
TeamViewer.TeamViewer*
VirtualGL.TurboVNC
Adobe.Acrobat.Reader.64-bit
Python.Launcher
4. 動作確認(手動実行)
PowerShell でスクリプトを直接実行して確認できます。
& "C:\Program Files\Winget-AutoUpdate\Winget-Upgrade.ps1"
多少のエラーメッセージは出ますが、アップデート自体は進行します。
ログの確認
実行結果は以下のログファイルに記録されます。どのアプリが更新されたかの履歴や、トラブルシューティングに役立ちます。
C:\Program Files\Winget-AutoUpdate\logs\updates.log
まとめ
一度設定してしまえば、PC を起動するたびにアプリが最新の状態に保たれます。
取りこぼしもあるかもしれないので、適宜、手動でのチェック winget update は行った方が良いでしょう。