コードではないんですが、会社でえらくはまったので。
半年くらい前に会社で新しく買ったマシンにWindows 8.1をインストールしてWindows Updateしたらわけのわからないエラー(80070005 ACCESS DENIED)がでたとこから始まります。
そのときは時間がなかったので、少しずついろんなことを試していたのですが、ようやく解決しました。
ググりまくっていろいろ試しました。
出るわ出るわ。日本語でも英語でも同じようにつまずいているひとはたくさんいるみたいです。
試したことを書きます。
Symantec Endpoint Protection(SEP)を無効にする。
まず、真っ先に思いついたのはこれです。でもだめでした。MSの言う通りにする。
https://support.microsoft.com/ja-jp/kb/2919355
KB2919355のページに80070005が出た場合について書いてあったのでこれだ!と思いやるが、撃沈。オフラインインストールパッケージでインストールする。
Download Windows 8.1 Update (KB2919355) from Official Microsoft Download Center
https://support.microsoft.com/ja-jp/kb/2975061
オフラインインストールパッケージでやったらうまくいったというひとがいたし、公式にも書いてあったので試してみたが、だめだった。謎のコマンドを実行する。
Windows 8.1 Update (KB2919355) のインストールでエラー (80073712) が連発してはまった件 | WWW WATCH
エラーコードは違うけど、同じKB2919355だったのでいけるんではないかと思って。まーだめでしたけど。やっぱMSの言う通りにする。(2回目)
https://support.microsoft.com/ja-jp/kb/968003
Error 0x80070005 in Windows Update when you try to install updatesというどんぴしゃなタイトルのものがあったので最大限に期待するも…。コンパネのアクションセンターのトラブルシューティングの"Windows Updateで問題を解決する"をやってみる。
Windowsにこんな機能があるのはじめて知りました。で、実行するとなんか修復したとおっしゃったので、期待してやってみましたが、だめでした。
とほかにもなんかいろいろやった気がしますが、ここまでのは全部だめでした。
ほかのアップデートは適用できるし別にいっかと思っていてあきらめていました。
で、Visual Studio 2015をいれようとしたらKB2919355がないとインストールできないとおっしゃってきたのがきっかけで再度火がつきました。
で、再度いろいろ調べてると「クリーンブート」すればいいと書いてあるところに目がつきました。
クリーンブートってなんぞ?と思い調べるとWindowsの実行に必要最低限のサービスで起動することということがわかりました。
だめもとでクリーンブートして、オフラインインストールパッケージでインストールするとなんとすんなり成功しましたー。
クリーンブートのやり方はmsconfigを起動して、MS以外のサービスを無効にするっぽいです。以下のページに丁寧に書いてあります。
https://support.microsoft.com/ja-jp/kb/929135
皆さん、Windows Updateでわけのわからないエラーに見舞われたら「クリーンブート」です!
とは言ってもWindows Updateでは様々な状況で様々なエラーが出るみたいなので必ずしもこれで解決するわけではないと思いますが、
クリーンブートはOSをクリーンインストールと諦める前にやってみる価値はあるかと。
結局、原因はよくわからなかったですが、なんかのサービスが更新するファイルを掴んでいたってことなのかな。ものすごくSEPっぽいけど。もしくは秘文か。