「sfc /scannowを実行してもエラーの修復ができない」場合の対応

  • 投稿 : 2015-06-19

2015/04月以降に発生した場合は

sfc /scannowを実行してもエラーの修復ができない - マイクロソフト コミュニティ
Windows 7にて、sfc /scannow実行後のファイルの差し替え方が分かりません。 - マイクロソフト コミュニティ

Windows8.1/Windows7の場合は、まずは上記に該当するかどうかを確認してみた方がよいかと思います。
Windows Updateの「KB3068708、KB3022345」を適用しているとそうなる可能性があるようです。

普通に使っていて、sfc /scannowで修復できないと言うことはまずありえないと思うので上記を疑うべきでしょう。

確認のポイント

CBS.Logsというログのテキストファイルに、以下のようなものがあれば該当するかと思う。
あと、ログをみても破損したファイル名が分からないというのもその特徴かと思う。

■KB3068708を適用していた場合
mber file [l:24{12}]"utc.app.json" of Microsoft-Windows-Unified-Telemetry-Client, Version = 6.3.9600.17842, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2015-06-19 02:21:28, Info CSI 000004dc [SR] This component was referenced by [l:154{77}]"Package_1_for_KB3068708~31bf3856ad364e35~amd64~~6.3.1.0.3068708-1_neutral_GDR"

「Package_1_for_KB3068708」で検索して、その文字列があれば多分該当する

■KB3022345のみ適用していた場合
2015-06-19 05:16:05, Info CSI 0000093a [SR] Cannot repair member file [l:24{12}]"utc.app.json" of Microsoft-Windows-Unified-Telemetry-Client, Version = 6.3.9600.17807, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture neutral, VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral in the store, hash mismatch
2015-06-19 05:16:05, Info CSI 0000093b [SR] This component was referenced by [l:154{77}]"Package_1_for_KB3022345~31bf3856ad364e35~amd64~~6.3.2.0.3022345-1_neutral_GDR"

「Package_1_for_KB3022345」で検索して、その文字列があれば多分該当する

※AMD64というのは、CPUが64bitのPCであることを示している。AMDのCPUであるという意味ではない。

KB3068708、KB3022345が原因の場合

どうしても修復ができないので、KB3068708、KB3022345の両方のアップデートを削除した結果、正常な動作に戻りました。何が影響していたのかはよくわかりませんが、とにかく修復できるようになったので一応解決とします。アップデートファイル自体が推奨なら特に問題ないですよね。
sfc /scannowを実行してもエラーの修復ができない - マイクロソフト コミュニティ

私の場合は、
KB3068708をアンインストール ->再起動
KB3022345をアンインストール ->再起動
で、両方ともアンインストールしました。

両方ともアンインストールすると、sfc /scannowのエラー自体がなくなりました。
つまり、ファイルは破損してなかったということなんだと思います。

アンインストールの仕方


プログラム(アプリ)のアンインストールができる画面で、「インストールされた更新プログラム」をクリック


上の検索窓に、KB3068708(or KB3022345)を入力すると探しやすいかと思う。
アンインストールしたい更新プログラムを選択して、「アンインストール」をクリックすると削除される

システムが不安定なのは、KB3022345自体怪しいような・・

KB3022345とのたたかい - purplebabyのブログ

公開されるアップデートには、大きく「重要(Critical)」「推奨(Recommended)」「オプション(Option)」の3種がある。


「オプション」は、ユーザーが手動で選択して導入するもの。基本的には機能追加など必ずしもインストールしなくてもよいものがこのカテゴリになる。
ASCII.jp:Windowsユーザーは必ず使うWindows Updateをあらためて解説 (1/2)|Windows Info

メモ

顧客満足度と 2015 年 6 月 2 日に最初にリリースされた診断遠隔測定の最新の更新プログラムこの更新プログラムが置き換えられました。更新プログラムを入手するには、顧客満足度を診断する遠隔 3068708 の更新を参照してください。.
顧客満足度および遠隔測定の診断用の更新プログラム
KB3068708 をアンインストール、再起動。
KB3022345 をアンインストール、再起動、この時点で、Diagnostics Tracking Service 削除を確認。
CCleaner 等で、軽く掃除して再起動。
KB3068708 を再インストール、再起動要求無し?、念の為に再起動。
sfc 整合性違反の検出なし、Dism 修復完了(0件)、再起動。
再度 sfc 整合性違反の検出なし、ディスククリーンアップ、最適化、手動メンテナンス、再起動。
再々度 sfc 整合性違反の検出なし、イベントビューア上の Setup に、Dism が KB2976978 の変更を
開始とのログ。
Microsoft Uodate Update の日 - 脳脂肪のパクリメモ

私の環境では、KB3068708だけを導入してみても、「Windows リソース保護により、破損したファイルが見つかりました」になるので導入をとりあえず見送りすることに・・・。

sfc /scannowで修復できない時は本来ならどうするのか?

システム ファイル チェッカー ツールを使用して不足または破損しているシステム ファイルを修復する

上記が詳しいと思う。

コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\sfcdetails.txt"

上記は、単にCBS.logから必要な情報がかかれた行を抜き出すだけの作業のようです。
ログの行数が少なければ、CBS.logを直接見てもよいかとは思う。

通常はこの段階で、破損したファイル名などが判明するみたいですね。
スポンサーリンク
タグ#Windows