Wingetでのシステムお引っ越しの具体的手順
ここでは、具体的な方法を解説する。まずは、引っ越し元のマシンで以下のコマンドを使って、Wingetでインストールするプログラムのリスト(JSONファイル)を作る。
winget export -o MyAppList.json --include-versions
コマンドの意味は、プログラムのリストをMyAppList.jsonファイルに保存し、バージョン情報を付ける(--include-versions)というものだ。バージョン情報を付けるのは、jsonファイルには、アプリケーション名(wingetが認識しているもの)とバージョン情報しか記録されるものがないためで、後者を省略すると同一アプリケーションの複数バージョンが同時にインストールされていたときに区別がつかなくなるからだ。
ここで、出力したMyAppList.jsonを編集しておくと、作業が効率的になる。
winget exportコマンドが出力するJSONファイルは、パッケージ名(PackageIdentifier)とバージョン(Version)が組になったオブジェクト(波カッコで括られている)が配列(角カッコでくくられている)になったもの。対象プログラムをimportさせたくない場合には、内側の波カッコ部分をまとめて削除する
筆者は、以下の表のものはリストから除外した。筆者が使う範囲のマシンにあった目立つものだけを入れているので、最終的には各自でご判断いただきたい。
削除するのは、SDK関連、ランタイム、ベータ/プレビュー版などである。また、開発関連のソフトウェア(Visual Studioなど)はそのままでもいいが、ソフトウェア自体が大きく、時間も掛かる。古いバージョンが必要かどうかは本人にしかわからないので、Wingetで入れてしまうよりは、あとから必要なものだけを手動で入れたほうがいいだろう。なお、wingetでインストールされたプログラムは、wingetでアンインストールも可能なので、とりあえず入れてしまって、あとから手動で削除するという方法も使える。
リストの編集が終わったら、引っ越し先のマシンで、以下のコマンドを「管理者権限」で実行する。というのは、一般ユーザー権限で実行すると、システム変更の確認がアプリケーションごとに行なわれて、自動処理できないからだ。また、一部のアプリケーションは、管理者権限でないとインストールできなかった。逆に、Edgeの開発版は管理者権限ではインストール不可だったが、そのようなアプリは筆者が調べた範囲ではこれ以外にはなかった。
管理者権限でのソフトウェアのインストールには、セキュリティ的な問題があるが、自分が今使っているマシンにインストールされてあったソフトウェアをインストールするので、問題はないはずである。
winget import -i MyAppList.json --ignore-versions --accept-package-agreements --ignore-unavailable
最後の3つのオプションは、「バージョンを無視する」(--ignore-versions)、「パッケージの利用許諾を受け入れ」(--accept-package-agreements)、「使用できないパッケージを無視」(--ignore-unavailable)の3つである。最後のものは気休めにつけてある。これで放置しておけば、JSONファイルに指定されたソフトウェアがインストールされる。
パッケージの利用許諾受け入れを指定することで、確認で処理が止まることを防ぐことができる。インストール作業を自動化するには、管理者権限と並んで必須の指定である。バージョンを付けてexportしたのにimportでバージョンを無視しているのは、引っ越し元のプログラムが必ずしも最新ではないためだ。このオプションを付けることで、引っ越し先では、Wingetでインストール可能な最新版(プログラムのリリースとWingetでの配付時期は必ずしも一致しない)が導入できる。
JSONファイルの編集がちょっと面倒だが、筆者の環境ではランタイムやSDKを除いても、60個ほどのプログラムがwingetでインストールできた。さすがにこの数になると、手動で1つずつインストールは面倒である。なお、エラーでインストールができなかった場合はログが残り、実行時出力にパスが表示される。また、winget importの実行後にexportして得られたJSONファイルには、インストールが完了したソフトウェアのみが記録されるので、importで使ったものと比較することでインストールできなかったプログラムを探すことができる。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ












