CPU交換後に突然、Microsoft Storeにサインインできず「0x80070422」、さらにWindows 11の上書きインストールがSAFE_OSのMIGRATE_DATAで「0x8007042B-0x2000D」止まり――この組み合わせは珍しくありません。原因は“壊れたOS”よりも、停止したサービス・古いドライバ・ネットワークやポリシーのズレが連鎖しているケースが大半。本稿は最短復旧から深掘り原因切り分けまで、現場で有効だった手順を体系化して解説します。
症状の全体像と前提
- 発生タイミング:CPU交換以降。
- 主症状:
- Microsoft Store/Microsoft アカウントへのサインインで
0x80070422。 - ISOからの「このPCを修復」(個人ファイルとアプリ保持)が SAFE_OS > MIGRATE_DATA で
0x8007042B-0x2000Dとなり中断。
- Microsoft Store/Microsoft アカウントへのサインインで
- 既に試した対策:SFC/DISM、別のローカル管理者アカウントで再試行。
結論の先出し(最短で通すなら)
まず下表の手順1〜3を連続実施→再起動→Storeサインイン確認→その直後に上書きインストール再挑戦が鉄板です。
| 手順 | 内容 | 狙い・背景 |
|---|---|---|
| 1 | Windows Update系サービスを「自動(または手動)」に戻して起動 対象:Windows Update / BITS / Microsoft Store Install Service | 0x80070422は「必要サービスが無効化」で発生しやすい。Storeとアカウント系はWU/BITSに強依存。 |
| 2 | Storeキャッシュを初期化:Win + R → wsreset.exe → 再起動 | 認証・更新失敗のキャッシュ汚染を除去。 |
| 3 | ネットワークスタックを再構成(管理者PowerShell)netsh winsock resetnetsh int ip resetipconfig /flushdns → 再起動 | WAM(Web Account Manager)やStoreが使うネットワークAPIの異常をリセット。 |
| 4 | ISOの setup.exe から「個人ファイルとアプリを引き継ぐ」で再試行 | 上記の直後に通る事例が多数。通らない場合は次章の深掘りへ。 |
なぜ起きる?原因仮説の整理
| 現象 | 主因のパターン | 補足 |
|---|---|---|
0x80070422(Store/サインイン) | Windows Update・BITS・Store Install Serviceなどが無効/停止、WSUS/ポリシー阻害、プロキシ誤設定、時刻ずれ | CPU交換後はCMOSクリアやBIOS更新に伴い時刻やTPM、起動順、デバイス列挙が揺れ、サービス/ポリシーの齟齬が露呈しやすい。 |
0x8007042B-0x2000D(MIGRATE_DATA) | 旧式ドライバ/フィルタ(AV/バックアップ/仮想CD/USB/RAID)、壊れたユーザープロファイル/ジャンクション、外付けデバイス、低空き容量、ファイルシステム不整合 | MIGRATE_DATAは「移行対象の整合性チェック」でコケる。特にストレージ/USB/ネットワークのフィルタドライバが犯人になりがち。 |
復旧のための詳細手順
1. Windows Update関連サービスの復旧
管理者PowerShellで以下を実行し、起動状態を確実に戻します。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
# 推奨の起動種別
Set-Service wuauserv -StartupType Manual # Windows Update
Set-Service bits -StartupType Automatic # Background Intelligent Transfer Service
Set-Service InstallService -StartupType Manual # Microsoft Store Install Service
Set-Service WaaSMedicSvc -StartupType Manual # Windows Update Medic Service(参考)
# 起動
Start-Service wuauserv
Start-Service bits
Start-Service InstallService
サービス名が見当たらない/拒否される場合は、セキュリティ製品やグループポリシーで制御されている可能性があります。企業PCなら管理者に確認してください。
2. Microsoft Storeのキャッシュ再構築と再登録
Win + R→wsreset.exe→ 黒いコンソールが閉じるまで待機 → 自動でStoreが起動。- 必要に応じて再登録(管理者PowerShell):
Get-AppxPackage -AllUsers *WindowsStore* | ForEach-Object { Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppxManifest.xml" }
3. ネットワーク/時刻/証明書の整合性を回復
Winsock/IPのリセットに加え、プロキシ/時刻/TLSの基本を確認します。
# ネットワークリセット
netsh winsock reset
netsh int ip reset
ipconfig /flushdns
# プロキシ確認&リセット(必要時)
netsh winhttp show proxy
netsh winhttp reset proxy
# 時刻同期(管理者)
w32tm /resync </code></pre>
<ul>
<li><strong>時刻ずれ</strong>や<strong>タイムゾーン誤り</strong>はAAD/MSAのトークン検証に失敗しやすい。自動設定と手動同期の両方を試してください。</li>
<li>企業PCでルート証明書配布やTLS検査(SSLインスペクション)がある場合、Store/アカウントの通信がブロックされることがあります。</li>
</ul>
<h3>4. グループポリシー/レジストリでStore/WUが止められていないか</h3>
<p>ローカルグループポリシー(<code>gpedit.msc</code>)の例:</p>
<ul>
<li>コンピューターの構成 → 管理用テンプレート → Windowsコンポーネント → <strong>Store</strong> → 「<strong>Microsoft Store アプリをオフにする</strong>」を<strong>未構成/無効</strong>に。</li>
<li>Windows Update関連の「社内更新サービス(WSUS)」指定が残っていないか。</li>
</ul>
<p>レジストリ確認(管理者PowerShell):</p>
<pre><code>reg query HKLM\SOFTWARE\Policies\Microsoft\WindowsStore
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
</code></pre>
<p><code>WUServer</code> / <code>WIStatusServer</code> が残っているとStoreやセットアップの動的更新に影響します。企業管理下でなければ削除を検討し、再起動のうえ挙動を確認してください。</p>
<h3>5. クリーンブートと“疑わしい常駐”の除外</h3>
<ol>
<li><strong>msconfig</strong>(システム構成)→ サービス → 「Microsoftのサービスをすべて隠す」→ 残りを一旦無効。</li>
<li>スタートアップ(タスクマネージャー)を無効にして再起動。</li>
<li>この状態でStoreサインイン → 上書きインストールを試す。</li>
</ol>
<p>サードパーティ製AV/バックアップ/チューナー/仮想ドライブ(例:古いRAID/USB3.0コントローラ、ディスク暗号化、旧アーカイバドライバ)はMIGRATE_DATAの阻害要因になりがちです。<strong>一時アンインストール</strong>(無効化ではなく)で影響を断って試行するのが近道です。</p>
<h3>6. 上書きインストールを成功させる実務的ポイント</h3>
<ul>
<li>ISOをマウント → <strong>setup.exe</strong> → 「引き継ぐ項目」は<strong>個人ファイルとアプリ</strong>。</li>
<li>一度は「最新の更新プログラムを入手しない(オフライン)」で実施し、動的更新が絡む不確定要素を排除します(後でWindows Updateを回せばOK)。</li>
<li>外付けUSB/増設HDD/SDカードは外す。必要ならキーボード/マウス/有線LANのみ。</li>
<li>空き容量は<strong>最低25GB</strong>を確保(Cドライブ)。</li>
<li>ファイルシステム健全化:
<pre><code>chkdsk C: /scan
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
7. SetupDiagで「何が移行を止めているのか」を見抜く
失敗直後にログは C:\$WINDOWS.~BT\Sources\Panther\ などに生成されます。SetupDiag.exe を管理者として実行すると、代表的な失敗パターンにマッチングし、犯人クラスを特定できます。
- よくある検出例:古いストレージ/USB/ネットワークドライバ、フィルタドライバ(AV/バックアップ/仮想化)、壊れたジャンクション/再解析ポイント、プロファイル移行の異常。
- 該当アプリ/ドライバをアンインストール(またはデバイスマネージャー→表示→非表示のデバイスの表示で削除)。
ドライバ棚卸しのコマンド例:
# 署名付き/未署名含め全ドライバ一覧
pnputil /enum-drivers > "%USERPROFILE%\Desktop\drivers.txt"
# フィルタドライバの把握
fltmc filters
# 不要ドライバ(例:oem42.inf)を削除
pnputil /remove-driver oem42.inf /uninstall /force </code></pre>
<h3>8. ユーザープロファイルと再解析ポイント(ジャンクション)の健全化</h3>
<p>OneDriveの「既知のフォルダーの移動(KFM)」や手動で作ったジャンクションが環境間で矛盾すると、MIGRATE_DATAで固まることがあります。</p>
<ul>
<li>既定のユーザーフォルダー(ドキュメント/ピクチャなど)をCドライブ配下に戻す。</li>
<li>プロファイル直下のリンク/ジャンクションを洗い出し:
<pre><code>dir /al /s "%USERPROFILE%"
fsutil reparsepoint query "C:\Users\<User>\Documents" # 疑わしい個所を都度確認
破損しているリンクは削除し、必要なら正しく作り直す。
9. ストレージ/USB/RAID/チップセットの更新(CPU交換後はとくに重要)
- マザーボードの最新BIOSを適用(CPUマイクロコード/安定性)。
- チップセット/管理エンジン(Intel ME/AMD PSP)、ストレージ(IRST/AMD RAID)、USBコントローラを最新版に。
- UEFIでTPM(PTT/fTPM)有効、Secure Boot有効、日付時刻が正しいことを確認。
10. Windows Updateスタックのフルリセット(必要時)
上記で直らない際の強力な手当です。
net stop wuauserv
net stop bits
net stop cryptsvc
net stop msiserver
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old
net start msiserver
net start cryptsvc
net start bits
net start wuauserv
11. コマンド早見表(コピー&ペースト用)
| 目的 | コマンド |
|---|---|
| Storeキャッシュ | wsreset.exe |
| ネットワークリセット | netsh winsock reset / netsh int ip reset / ipconfig /flushdns |
| プロキシ初期化 | netsh winhttp reset proxy |
| WUサービス復旧 | Set-Service wuauserv -StartupType Manual ほか / Start-Service |
| ログの場所 | C:\$WINDOWS.~BT\Sources\Panther\ / C:\Windows\Panther\ |
| ドライバ棚卸し | pnputil /enum-drivers |
| フィルタ確認 | fltmc filters |
| 時刻同期 | w32tm /resync |
MIGRATE_DATAで止まる「犯人」別の対処フロー
| 兆候/ログ | 想定原因 | 対処 |
|---|---|---|
| ストレージ/USB/ネットワーク関連のINFが頻出 | 古い/互換性のないドライバ・フィルタ | 該当デバイスのドライバ更新or削除。AV/バックアップ/仮想CD等は一時アンインストール。 |
| ユーザープロファイル下の特定フォルダでエラー | 壊れたジャンクション/再解析ポイント、OneDriveの競合 | リンク修正/解除、KFMを一時解除し既定位置に戻す。 |
| 外付けドライブのパスを参照 | 移行対象が外部メディアに跨っている | 外付け機器を外して再試行。必要なら一時的にCへ退避。 |
| ディスク領域不足の警告 | 一時領域不足 | 不要ファイル削除、復元ポイント/一時ファイル整理、25GB以上の空きを確保。 |
安全性とバックアップの勘所
- 作業前に重要データのバックアップを取得(ユーザーフォルダ/鍵/ライセンス情報)。
- レジストリ操作は必ず事前エクスポート。
- 企業管理デバイスは、ポリシー/証明書/代理サーバーが絡むため、自己判断で変更せず管理者へ相談。
よくある質問(FAQ)
Q. CPUを変えるとライセンスやアカウントが壊れますか?
A. 一般にマザーボードが変わらなければWindowsのデジタルライセンスは維持されます。今回はサービス/ドライバ/ネットワークの整合性崩れが主因であることが多いです。
Q. Storeだけでなく、Windows Updateも失敗します。
A. 0x80070422が出る構成では高確率でWUも止まっています。サービス復旧とWUスタックのリセット(本稿の手順10)を併用してください。
Q. 上書きインストール時に「更新プログラムを入手する」を有効にした方が良い?
A. 原因切り分けの観点では一度オフにして(オフラインアップグレード)通るか確認するのが定石です。通った後で最新更新を適用すればOKです。
Q. 最終的にクリーンインストールすべきか?
A. ドライバ/ポリシー起因で移行が成立しない場合、個人ファイルのみ保持や完全クリーンを検討します。その際はアプリ再構築の手間と秤にかけて選択します。
実運用向け「チェックリスト」
- [ ] WU/BITS/Store Install Serviceが手動/自動+起動になっている。
- [ ]
wsreset.exe済み、Storeが起動しサインイン可能。 - [ ] Winsock/IP/プロキシ/時刻の整合性確認。
- [ ] グループポリシー/レジストリでStore/WU無効化なし。
- [ ] クリーンブート状態で常駐/フィルタを排除。
- [ ] 外付け機器を外し、空き容量25GB以上。
- [ ]
DISM/SFC/CHKDSKでOSとFSを健全化。 - [ ] SetupDiagで犯人クラスを掴み、該当ドライバ/アプリを処置。
- [ ] BIOS/チップセット/ストレージ/USBドライバを更新。
- [ ] それでも不可なら「個人ファイルのみ保持」→最終的にクリーンも視野。
まとめ
0x80070422と0x8007042B-0x2000Dの同時発生は、停止したサービスやネットワーク不整合に加え、MIGRATE_DATAで引っ掛かるドライバ/プロファイルの問題が重なって起きます。したがって、単発の「SFC/DISM」だけでは解決しにくいのが実情です。本稿の流れ――サービス復旧 → キャッシュ/ネットワーク再構成 → ポリシー/プロキシ是正 → クリーンブート → ドライバ/プロファイルの矛盾解消 → オフライン上書きインストール――で順番に詰めれば、現場レベルで高確率に通せます。CPU交換を契機にBIOS/チップセットを最新化し、Windows Updateスタックの健全性を保つことで、今後のアップデート/Store/認証トラブルも予防できます。
補遺:トラブル対応の観点を短冊で把握
- 接続層:Winsock/IP、プロキシ、TLS、時刻。
- サービス層:WU/BITS/Store Install、WAM。
- ポリシー層:Store無効化、WSUS残骸。
- ドライバ層:ストレージ/USB/ネットワーク/フィルタ。
- データ層:プロファイル、ジャンクション、再解析ポイント。
- プラットフォーム層:BIOS、TPM、Secure Boot、時刻/CMOS。
コピペ用:一括スクリプト(自己責任・管理者PowerShell)
環境によりエラーになる行は無視されます。企業ポリシー下では実行しないでください。
# --- サービス基本復旧 ---
$services = @(
@{Name="wuauserv"; Type="Manual"},
@{Name="bits"; Type="Automatic"},
@{Name="InstallService"; Type="Manual"},
@{Name="WaaSMedicSvc"; Type="Manual"}
)
foreach($s in $services){
try{ Set-Service $s.Name -StartupType $s.Type }catch{}
try{ Start-Service $s.Name }catch{}
}
# --- Storeキャッシュ ---
Start-Process -FilePath "wsreset.exe" -Wait
# --- ネットワーク ---
Start-Process -Verb RunAs cmd.exe "/c netsh winsock reset & netsh int ip reset & ipconfig /flushdns"
# --- プロキシ初期化 ---
Start-Process -Verb RunAs cmd.exe "/c netsh winhttp reset proxy"
# --- WUスタック(強制再生成・必要時)---
$cmd = @"
net stop wuauserv
net stop bits
net stop cryptsvc
net stop msiserver
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old
net start msiserver
net start cryptsvc
net start bits
net start wuauserv
"@
Start-Process -Verb RunAs cmd.exe "/c $cmd"
# --- ログ位置メモ ---
Write-Host "Panther Logs: C:$WINDOWS.~BT\Sources\Panther\ , C:\Windows\Panther"
ここまで実施しても解決しない場合は、本稿の「犯人別フロー」を再読し、SetupDiagで具体的なドライバ/フォルダ/ポリシー名を掴んでからピンポイントで外すのが王道です。

コメント