Windows PCにインストールしている各アプリの更新、
1つずつ確認してやっていくのは非常に面倒ですよね。
アプリの機能の中で「定期的に最新版か確認」や「自動更新」機能があって、
それを「オン」にしてれば適宜やってくれたりもしますが、
その機能が無かったりうまく動いていないかも知れない…。
アプリの更新を一括で確認してくれるアプリなんてものもありますが、
「winget」コマンド使えばサクッと確認&更新できちゃうんだ!
ということを今更ながら知ったのでそれの共有記事、です。
以下つらつらと手順を書いていくのですが、
要するにこういうことでした。
- Wingetをインストールする
- winget upgrade コマンドで更新対象を一覧表示させる
- 2.で表示されたアプリのID一覧を基に一括で実行させるためにbatファイルを作成
- winget upgrade -h [ID] の構文で書く
- 3.のbatファイルを管理者権限で実行
1.Wingetをインストールする
標準では、winget はインストールされていないようですね。
というわけで、Microsoft が案内している通りに、
Microsoft Store から取得してきます。
ここでの手順は本記事では省略しますので、以下の Microsoft のドキュメントを参考に入れてみてくださいねー。
なぜ省略するのかって?
なぜなら、うちのPCには何かのタイミングで既にインストールされていたため、絵や手順がありません!(笑)
2.更新対象をみつける
winget コマンドが使えるかどうかをまずは確認してみます。
- コマンドプロンプトを起動させます。
- winget と入力して実行
バージョンやヘルプ(使用法)が出てくれば準備OKです。
なければ、上述の通りインストールしてみてくださいね。
以下のコマンドを実行させて更新対象を見つけます。
winget upgrade
初めて実行する際には、使用許諾契約に同意してね~みたいな確認メッセージが表示されました。
ここでは素直に y と入力して先に進めます。
実行結果はこんな感じでした。
微妙に(?)最新版になっていないアプリがたくさんでてきました。
--include-unknown オプションをつけるとバージョン番号が判別できなかったアプリも表示してくれるようです。
後で使う ID が一部省略されて見えなくなっていたので、
ウィンドウの幅を広げてついでにこのオプションも付けてみて確認してみます。
winget upgrade --include-unknown
実行結果はこんな感じ。
参考.試しに1つ更新してみる
いきなり全部を一括で実行もなんだか怖いので1つ試しに実行してみます。
構文は、
winget upgrade -h [ID]
なので、先ほど一覧表示させた結果から ID を確認して一番上のを実行してみます。
winget upgrade -h CPUID.CPU-Z
実行結果はこちら。
無事にアップデートできました!
実行時、コマンドプロンプトは「管理者として実行」しておくのが良いです。
実はこのコマンドプロンプトは普通に起動させたため、
(管理者権限で実行されていなかったため)
ダウンロード後、変更を加えることを許可しますか?(権限昇格していいですか?)と
『ユーザーアカウント制御』のポップアップ画面が出てきました。
一括実行をさせるならいちいち [OK] ボタンをクリックするのも面倒なので、
コマンドプロンプトを起動させるときに「管理者として実行」をしておくのが良いですね。
3.一括更新のためにbatファイルを作成する
アップデートの構文は以下の通りです。
winget upgrade -h [ID]
コマンドで更新できそうなことは上の「参考.」で確認しましたので、
一気に更新を実行するために bat ファイルを作成します。
winget upgrade で一覧表示させた中から ID を抜き出します。
そして、winget upgrade -h を先頭に付ければOKですね。
メモ帳等のテキストエディターで作ります。
拡張子を .bat にしてファイル保存します。
ファイル名はなんでも構わないです。
ここでは、winget_upgrade_list.bat としました。
4.一括更新の実行
3.で作成した bat ファイルを実行させます。
「管理者として実行」でコマンドプロンプトを実行させておかないと、
各アプリの更新時に毎回「ユーザーアカウント制御」のポップアップが表示されてしまいます。
ですので、
-
- 3.で作成した bat ファイルを右クリックし
- 「管理者として実行」を選択
- 「このアプリがデバイスに変更を加えることを許可しますか?」とポップアップが出るので、[はい] をクリック
とすれば、あとは順番に実行されていきます。
コマンドプロンプト上で実行させる場合は、
「管理者として実行」で開いて、bat ファイルを実行させます。
コマンドプロンプトを「管理者として実行」で開きます。
-
- [スタート] から [コマンド プロンプト] を右クリックして「管理者として実行」をクリック。
- 「このアプリがデバイスに変更を加えることを許可しますか?」とポップアップが出るので、[はい] をクリック。
3.で作成した bat ファイルを実行させます。
winget_upgrade_list.bat
実行させた結果はこんな感じでした。
試しに先にアップデートさせたアプリはスキップしましたね。
20個ほどのアプリが一括で更新されました!
参考2.更新できなかったアプリもある
なんらかの理由で更新できなかったアプリも数個ありました。
パターン1:バージョン番号が不明だった場合
「このパッケージのバージョン番号を特定できません。」と表示され、
アップデートはスキップされました。
指示にあるように、
winget upgrade -h [ID] --include-unknown
とすればアップデートできそうですね。
オプションを付けて実行してみました。
アップデート完了したようです!
パターン2:アンインストールが必要だった場合
上書きインストール、とでも言いますか、それができなかったアプリがありました。
アプリの構成上必要なのか、今のバージョンのをアンインストールしてくださいねーと、ポップアップが表示されました。
パターン3:実行中はアップデートできない
PC版LINEを入れているのですが、LINEは一度停止させないとアップデートできないようですね。
下のようなポップアップが出ました。
参考サイト