1. まとめトップ

この記事は私がまとめました

国公立の情報学部出身で大学院まで行っていたのでコマンドプロンプトぐらいは分かる、mac使わされたけど。

謎の物体さん

Windows update(の大型アップデート)が終わらなくなったのでそれを解決した方法についてまとめ。
人によって症状が違うと思うので自分の行った対処法とその結果について記す。
最終的な対処法は最後をご覧ください。

簡単な結論:トラブルシューティングでエラーを起こしているWindows updateを再起動、コマンドプロンプトでWindows updateを一時的に停止してその隙にWindows 10の上書き

症状

パソコンを起動するとしばらく動きが遅いのでWindowsマーク→設定(歯車マーク)→更新とセキュリティ→Windows updateでWindows updateを確認してみた所、1803=Windows 10 April 2018 Updateに失敗していた。
エラーが起きたのは11月で使っているパソコンは10月、商品入れ替え時期に買った物なので4月アップデート前後に発売開始のはず。
なぜまだ4月アップデートをやっているんだ。10月アプデ(Windows 10 October 2018)来てるぞ。
停止位置としてはインストール準備中:80%で止まる。

1.トラブルシューティング

画面左下のWindowsマーク→設定(歯車マーク)→更新とセキュリティ→トラブルシューティング→Windows updateで行った。
データベースが壊れていたり色々とエラーを起こしており、何度かやったがエラーが解決したりしなかったりした。
しかしどちらにせよインストール準備中:80%で止まるのでこの対処法は失敗。

2.BITS トラブルシューティング ツールを実行する

画像付き手順は1.と同じ場所。

このリンクをクリックするとBITSDiagnostic.diagcabがダウンロードされるので、した物をダブルクリックして起動。

トラブルシューティングが始まったがこちらのリンクの如くService registration is missing or corruptが出て解決出来ずに終了する。

3.手動インストール

ここに行き今すぐアップデートをクリック、ダウンロードして実行。
Windows 10更新アシスタントがインストールされて、デスクトップにWindows 10更新アシスタントアイコンが作成される。
こいつを実行して適当に進めていく。
が、インストール準備途中で数値が70%から0%に戻ったり進んだりを繰り返す。
そして「別のインスタンスが実行中の為」とか何とかが出て終了する。
裏でWindows updateが進んでいるせいか? しかしこの時点では止める方法が分からなかった。
更に言えば数値が戻っているのでこの方法は恐らく上手くいかないだろうと判断。

4.ディスクのクリーンアップ

フォルダからPC→Cドライブを右クリック→プロパティ→全般タブ→ディスクのクリーンアップをクリック
自分はここまでで終わってしまったのだが、今見ると「システムファイルのクリーンアップ」のボタンをクリック→Windows Update のクリーンアップ の項目が出ているのでチェックを入れてOKが必要だった模様。
まぁ壊れているのがWindows updateだけならこれで直るハズ。

5.コマンドプロンプトを利用する

左下の「ここに入力して検索」のところにcmdと入力→コマンドプロンプトが出てくるので右クリック→管理者として実行→下記コマンドをコピペして実行。
改行している部分は勝手に実行されるが最後のコマンドは実行されずにコピペされているだけなのでEnterを押す。
net stop usosvc
net stop dosvc
net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
ren %systemroot%\System32\catroot2 catroot2.old
del "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr0.dat"
del "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr1.dat"
net start msiserver
net start bits
net start cryptSvc
net start wuauserv
net start dosvc
net start usosvc
しかし自分は
net stop usosvc
net stop dosvc

del "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr0.dat"
del "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr1.dat"
をしていない上に
ren SoftwareDistribution SoftwareDistribution.old
ren catroot2 catroot2.old
でやったのでそのせいかは知らないがren何ちゃらのコマンドが失敗した。
ren %systemroot%\SoftwareDistribution SoftwareDistribution.oldはフォルダの名前を変更する事でバックアップとして置いておきつつ現在のフォルダを消しWindows updateが実行された時に再生成されるようにしているのだと理解。
そこで
net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
を実行→フォルダを開いてC:\WINDOWSを現在の場所が書かれている所にコピペし移動→SoftwareDistributionとcatroot2を直接削除した。
あれこれnet stopしたのはそうしないとファイルが開かれていて削除出来ないから。
しかしこれも失敗した。
一応
net start msiserver
net start bits
net start cryptSvc
net start wuauserv
で戻しておく。

6.DISMコマンドの実行

「ここに入力して検索」のところにcmdと入力→コマンドプロンプトが出てくるので右クリック→管理者として実行→下記コマンドをコピペして実行。
DISM.exe /Online /Cleanup-image /Restorehealth
中々終わらないと思ったらバックグランドだと動いていなかった。
終わった後
sfc /scannow
を続けて実行し、整合性違反が検出されなかった事を確認して再度実行。
だがまだ失敗する。
DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:C:\RepairSource\Windows /LimitAccess
今度はこれを実行してsfc /scannowで整合性違反をチェックし再度動かすがやはり駄目。
C:\WINDOWS/Logs/CBS/CBS.logを覗いてみたが特にエラーは出ていない。
DISMコマンドはWindowsのシステム破損を直す物で、二回目の方(DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:C:\RepairSource\Windows /LimitAccess)はオンラインからデータを取っているような気がするのだが……。

7.常駐アプリケーションを停止

左下の検索欄にmsconfig→システム構成→スタートアップ→タスクマネージャーを開く→有効になっている項目を選択し右下の [無効にする] をクリック→[システム構成] 画面に戻り [サービス] タブをクリックし、[Microsoft のサービスをすべて隠す] にチェックをつけて、[すべて無効] → [OK] →再起動
この状態でWindows updateしてみたがやはり失敗。
msconfig→システム構成→スタートアップ→タスクマネージャーを開く→有効になっている項目を選択し右下の [有効にする] をクリック→[システム構成] 画面に戻り [サービス] タブをクリックし、[Microsoft のサービスをすべて隠す] にチェックをつけて、先程無効にした物を有効にする → [OK] →再起動
これで元に戻す。
この時点でそろそろ打つ手がなくなってきたので最終手段。

8.Windows 10の上書き

1 2