新PCへ winget でアプリ一覧を移行する最短手順は、旧PCで winget export を実行して JSON を作り、新PCで winget import を実行することです。export はインストール対象のパッケージ一覧を JSON で書き出し、import はその JSON を使って一括インストールします。(Microsoft Learn)
ただし、ここで移せるのは基本的に「アプリの一覧」です。アプリごとのサインイン状態、ユーザーデータ、個別設定まで自動で丸ごと戻るわけではありません。そこまで含めた再現性が必要なら、winget configure のような別機能まで視野に入れたほうが整理しやすいです。(Microsoft Learn)
winget で新PCに移行できるもの・できないもの
winget export / import を使う前に、何が再現されて何が再現されないのかを先に押さえておくと、移行後のがっかりを減らせます。(Microsoft Learn)
wingetのソースに一致するアプリの一覧は、JSON に書き出して新PCで一括インストールできます。(Microsoft Learn)- バージョンまでそろえたい場合は、旧PCで
--include-versionsを付けてエクスポートします。付けない場合、importは基本的に利用可能な最新版を使います。(Microsoft Learn) - アプリ設定やユーザーデータまで移る前提では考えないほうが安全です。公式には
export/importはパッケージ一覧を扱う機能で、設定状態まで扱うのはwinget configure側の役割です。(Microsoft Learn) winget自体の設定は別ファイルのsettings.jsonで管理され、winget settingsで開きます。アプリ一覧の JSON とは別物です。(Microsoft Learn)
この切り分けを一言で言うと、export / import は「新PCにアプリをまとめて入れ直す仕組み」、settings.json は「winget クライアントの挙動を変える仕組み」、configure は「アプリ+設定状態まで含めた環境再現」です。ここを混同しないのが、失敗しにくい進め方です。(Microsoft Learn)
winget で新PC移行を始める前に確認すること
winget のコマンド自体はシンプルですが、事前確認を飛ばすと「そもそも動かない」「source が壊れていて失敗する」といった初歩的な詰まり方をしやすくなります。(Microsoft Learn)
wingetは Windows 11、最近の Windows 10、Windows Server 2025 で App Installer の一部として提供され、Windows 10 ではバージョン 1809 以降がサポート対象です。(Microsoft Learn)- 新PCで初回サインイン直後は、Windows Package Manager の登録がまだ終わっておらず、
wingetが使えないことがあります。公式には、初回ログイン後に自動登録される仕組みです。(Microsoft Learn) - 既定の source は
msstore、winget、winget-fontの3つです。source に問題があると export / import の両方でつまずきます。(Microsoft Learn) - アプリによっては管理者権限が必要で、昇格に同意しないとインストールが失敗します。(Microsoft Learn)
まずは新旧PCの両方で、最低限この2つを確認しておくと安心です。
winget --version
winget source list
winget source list で source が見えていれば、次に進みやすくなります。source の一覧確認は、既定 source が正しく入っているかを見る目的でも有効です。(Microsoft Learn)
新PCで winget が見つからない場合は、初回ログイン後の登録待ちであることがあります。急ぐ場合は、Microsoft Learn にある次の登録コマンドを PowerShell で実行する方法があります。(Microsoft Learn)
Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe
旧PCでアプリ一覧をエクスポートする手順
迷わず進めるなら、まず source を更新してからエクスポートするのが無難です。source update は source 情報の更新、export -o は JSON の出力先指定です。(Microsoft Learn)
まずは標準形で書き出す
PowerShell なら、次の形が扱いやすいです。
winget source update
winget export -o "$env:USERPROFILE\Documents\apps.json" --accept-source-agreements
この形なら、Documents に apps.json を保存できます。--accept-source-agreements は source の同意確認を省略するためのオプションです。(Microsoft Learn)
同じバージョンまでそろえたいなら --include-versions
開発ツールや相性が出やすいアプリで、できるだけ版数も合わせたいならこちらです。
winget export -o "$env:USERPROFILE\Documents\apps.json" --include-versions --accept-source-agreements
--include-versions を付けると、旧PCに入っている版数を JSON に含められます。逆に、新PCでは最新版でよいなら付けないほうが扱いやすいです。(Microsoft Learn)
警告が出ても、すぐ失敗扱いしない
winget export は、PCに入っているアプリをできるだけ source 上のパッケージに対応付けようとします。ただし、利用可能な source に一致しないアプリは警告になります。公式にも、マッチングは source 側の manifest 情報と Windows の Add/Remove Programs 側のメタデータに依存するとあります。(Microsoft Learn)
実務上は、ここで警告が出たアプリを「後で手動で入れる候補」と考えるのが現実的です。社内専用ツール、ベンダーサイトから直接入れたアプリ、source に載っていないものは漏れても不思議ではありません。(Microsoft Learn)
どの source 由来のアプリが見えているかを確認したいなら、list の source フィルターが役立ちます。
winget list --source winget
winget list --source msstore
winget list は、winget 経由で入れたものだけでなく、他の方法で入れたアプリも含めて表示でき、--source で source を絞り込めます。エクスポート結果を見直す前の棚卸しに向いています。(Microsoft Learn)
新PCで winget import する手順
新PC側でも、最初に source を更新してから import するのが無難です。標準形は次のとおりです。(Microsoft Learn)
winget source update
winget import -i "$env:USERPROFILE\Downloads\apps.json" --accept-package-agreements --accept-source-agreements
-i は import 対象の JSON を指定するオプションです。旧PCで作成した apps.json を USB や OneDrive などで新PCへ持ってきて、置いた場所に合わせてパスを変更してください。(Microsoft Learn)
import でよく使うオプション
| 状況 | 追加オプション | 何が起きる |
|---|---|---|
| いくつか見つからないアプリがあっても先へ進みたい | --ignore-unavailable | 利用できないアプリをエラー扱いせず、続行しやすくなります。(Microsoft Learn) |
| バージョン固定より最新版を優先したい | --ignore-versions | JSON に版数が入っていても、それを無視して利用可能な最新版を入れます。(Microsoft Learn) |
| すでに入っているアプリは触りたくない | --no-upgrade | 既存のインストール済みバージョンがある場合、アップグレードをスキップします。(Microsoft Learn) |
新PC移行で一番実用的なのは、厳密再現より「まず使える状態に戻す」考え方です。その場合は、次のように --ignore-unavailable を付けて先に進むやり方が扱いやすいです。(Microsoft Learn)
winget import -i "$env:USERPROFILE\Downloads\apps.json" --ignore-unavailable --accept-package-agreements --accept-source-agreements
import 後は upgrade で差分確認する
新PCセットアップ直後は、source 更新や Windows Update の影響で、さらに更新できるアプリが残ることがあります。winget upgrade で確認し、必要なら winget upgrade --all でまとめて更新できます。公式にも、upgrade 単体で更新候補を確認し、--all で一括更新する使い方が示されています。(Microsoft Learn)
winget upgrade
winget upgrade --all
その後にやるべきなのは、ブラウザ同期、クラウドストレージ同期、各アプリのサインイン、必要ならデータの復元です。winget だけで移ると思い込まず、ここは別作業として切り分けたほうが、結果的に早く終わります。
apps.json と settings.json の場所を混同しない
新PC移行で混同しやすいのが、エクスポートしたアプリ一覧ファイルと、winget 自体の設定ファイルです。役割が違います。(Microsoft Learn)
apps.jsonは、winget export -oで自分が指定した場所に作る移行用ファイルです。(Microsoft Learn)settings.jsonは、winget settingsで開くwingetクライアントの設定ファイルです。(Microsoft Learn)
通常のパッケージ版 winget の settings.json は、公式リポジトリのドキュメントでは次の場所です。(GitHub)
%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
ソースコードからビルドした非パッケージ版では、場所が次のように変わります。(GitHub)
%LOCALAPPDATA%\Microsoft\WinGet\Settings\settings.json
settings.json を触るのは、たとえばログレベル、source の更新間隔、インストール挙動などを調整したいときです。新PC移行でまず必要なのは apps.json で、settings.json は winget 自体の使い勝手を合わせたい場合だけ、内容を見比べて移すのが安全です。(Microsoft Learn)
winget で新PC移行するときに失敗しやすいポイント
エクスポート警告を全部「異常」と判断する
export の警告は、source に一致しないアプリがあるときに出ます。必ずしもコマンド全体の失敗ではありません。まずは apps.json が作成されているかを見て、漏れたアプリだけ手動対応するほうが現実的です。(Microsoft Learn)
バージョン固定を厳密にしすぎる
--include-versions は便利ですが、古い版が source から取得できないと新PC側で詰まりやすくなります。新PCを早く使える状態に戻したいなら、最初は版数固定なしで export するか、import 側で --ignore-versions を使うほうが安定します。(Microsoft Learn)
source が壊れているのに、そのまま import する
source に問題があると、export も import も不安定になります。まず winget source update、それでもおかしい場合だけ winget source reset --force を検討します。reset は既定以外の source を取り除く強い操作で、公式にも「まれなケースでのみ使う」とあり、管理者権限も必要です。(Microsoft Learn)
winget source update
winget source reset --force
既存アプリが多いPCに、何も考えず import する
すでに何か入っているPCに流し込むと、意図せずアップグレードが走ることがあります。既存環境をできるだけ壊したくないなら、--no-upgrade を付けて様子を見るほうが安全です。(Microsoft Learn)
winget import を元に戻したいときの考え方
少なくとも公式の import ドキュメントに並んでいるオプションには、一括ロールバック専用の機能は見当たりません。戻すときは、winget uninstall か Windows のアプリ削除を使って、不要なものを個別に外す前提で考えるのが安全です。(Microsoft Learn)
winget uninstall の基本形は次のとおりです。
winget uninstall --id Microsoft.PowerToys --exact --source winget
uninstall はアプリ削除の公式コマンドで、Microsoft Store の同意確認が出るのを避けたい場合は --source winget を付ける方法も案内されています。GUIで戻したいなら、Windows の設定画面からアンインストールしても構いません。(Microsoft Learn)
業務PCや重要PCで大量 import をするなら、実行前に復元ポイントやイメージバックアップを取っておく判断も現実的です。winget の便利さは高いですが、「戻しやすさ」まで自動化してくれるわけではありません。
何度も環境を作り直すなら winget configure も候補
新PCへの一回きりの移行なら export / import で十分です。ですが、開発環境の再現、チーム共通セットアップ、定期的な再構築まで考えるなら、winget configure のほうが向いています。winget configure は YAML ベースの構成ファイルで、パッケージだけでなく設定状態も含めて「望ましい状態」を定義する仕組みです。利用には WinGet v1.6.2631 以降が必要です。(Microsoft Learn)
| 方法 | 向いている場面 | 管理対象 | 難易度 |
|---|---|---|---|
winget export / import | 個人の新PC移行、買い替え直後の再セットアップ | アプリ一覧中心 | 低 |
winget configure | 開発環境の再現、チーム標準化、何度も作り直す環境 | パッケージ+設定状態 | 中〜高 |
注意点として、winget configure は PowerShell DSC リソースも使うため、構成ファイルの信頼性確認が前提です。外部から受け取った構成ファイルをそのまま実行するのは避けたほうが安全です。(Microsoft Learn)
迷わず進めるなら、この順で十分です
まず旧PCで winget export し、apps.json を OneDrive か USB に保存します。次に新PCで winget import を実行し、警告が出た分だけ手動で補います。これが、winget で新PC向けのアプリ一覧を移行するいちばん実用的な進め方です。(Microsoft Learn)
厳密な版数再現が必要なら --include-versions、まず使える状態を優先するなら --ignore-unavailable、何度も同じ環境を再現したいなら winget configure。この3つの選び分けができれば、winget の新PC移行で迷う場面はかなり減ります。(Microsoft Learn)

コメント