Windowsの壊れたシステムを修復する

Windows, Windows10, Windows8

Windowsは本当に壊れやすいOSで、結構簡単におかしくなりますね。

何かおかしくなった時にシステムのチェックと修復が比較的簡単に出来ます。

何か動作がおかしくなった時はやってみる価値アリです。

システムファイルチェッカーでシステムファイルを修復する

システムファイルチェッカーは、昔から使えるツールです。

管理者のコマンドプロンプトを開き下記コマンドを実行します。

時間がかかりますが、100%になり完了するまで待ちます。

「完了して整合性違反を検出しませんでした」と出れば問題なしです。

問題があっても自動修復される場合もあれば、修復できない場合もあります。

完了したら、再起動して問題が解決しているか確認します。

再起動は必ずスタートメニューから「再起動」の項目を選んでください。

 

修復できない場合は、ログを見ながら手動での修復になるのですが、該当の壊れていないファイルが無いと出来ませんし、置き換えるファイルの所有権を取得したり、ACL(アクセス制御リスト)のアクセス権を所得したりしないと置き換えできないので、かなり高度な事となるり、入れ替えても正常に動かない場合も結構ありますので諦めたほうが良いかもしれません。

一応メモしておきます。

ログから問題のファイルを摘出

スキャンしたログから該当部分を摘出してデスクトップにテキスト保存。

問題のファイルと場所が発見。

アクセス権取得

ここでは問題のファイルが仮に「abcde.dll」とします。

takeownコマンドは所有権の割り当てをします。

icaclsコマンドはアクセス制御の設定をします。

その後問題のないabcde.dllを上書きして入れ替えます。

Windowsの元のイメージから修復する

Window8以降から使える機能です。

Windowsの元のイメージと現在動いているOSのイメージの比較をして、問題があれば、元のイメージから修復ができるというものです。

Windowsの元のイメージはオンラインでWindows Updateから取得して動作します。

使うコマンドは「dism」で、Windowsのイメージを扱うコマンドです。

システムが破損しているか調べるには

これは比較的すぐに終わります。

修復できるか調べるには

ここで、正常か、修復可能か不可能か出ます。

システムを修復するには

これで実際の修復がされます。

前の2個は飛ばして、いきなりこれでもOKです。

 

修復元のイメージは自動でOSを判断してWindowsUpdateからダウンロードしながら行われますので、修復を待つだけです。

完了したら再度

sfc /scannow を実行し、再起動して確認しましょう。




遅い回線しか無い、ネットに繋がらない場合

上級者向けです。

時間がかかるのでパソコンサポートでその場ではあまり出来ません。

オンラインスキャンが失敗した場合や、モバイル回線などで遅い場合や、ネットに繋がらない、WindowsUpdateに繋がらない場合など用です。

修復のイメージはネット経由で行いますので、モバイル回線や、速度の遅いインターネット回線の場合、相当なダウンロードが発生するため果てしなく時間がかかります。

またWindows Updateに繋がらない時はこちらの方法しかありません。

そんな時は、WindowsのインストールISOがあれば、そこから修復が可能です。

ただし、稼働しているOSと同じバージョンでないとダメです。(WindowsUpdateの自動更新でバージョンアプしていると、その最新バージョンのISOが必要になります。)

最新のイメージの入手先

Windows 10

Windows 8.1

ここのツールからISOファイルを作成すると、install.wimでなくinstall.esdになってしまい手順が変わってきます。(esdでも出来ないことはないです)

UserAgentをLinuxに偽装してアクセスするかLinuxやMACでアクセスすると、ISOイメージをそのままダウンロードでき、そのISOの中はinstall.wimになっています。

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36

ISOファイルは、Windows 10 の場合ISOファイルをダブルクリックするとドライブにマウントされます。

8の場合は7-zip等で開いてinstall.wimを適当な場所に保存しましょう。

install.esdからの変換は「C:\test 」にinstall.wimを保存とすると

ここでは仮に「Eドライブ」にインストールメディアがあるとします。

オフラインで修復する

そのままイメージを指定して修復します。

ネットに繋がっているが遅い回線の場合は、 /LimitAccess オプションは外した方が良いかもしれません。

また、エラーで失敗する場合も /LimitAccess オプションを外すと、内部のバックアップを優先するようなので成功する場合があります。

あとネットワークアダプタを無効にすると成功してみたりと、この辺の挙動については良くわかりません。

install.wimを利用する場合

install.esdを利用する場合

完了したら sfc /scannow を実行してから再起動して確認しましょう。

ダメだった場合、イメージをマウントすると成功する場合があります。

イメージをマウントする

マウントするフォルダを作成します。

ここでは仮に、 C:\mount フォルダを作成します。

ここにインストールイメージをマウントします。

Win10のProなので、ここでは index:1 を指定していますが、Win10のHOMEの場合は index:2  となります。

イメージの場所が「Dドライブだとしたら」  /ImageFile:E:  の所を  /ImageFile:D:  として下さい。

マウントには多少時間がかかります。

マウントしたイメージから修復する

修復する下記コマンドを実行。

修復が完了したら、イメージをアンマウントしておきます。

全てのバージョンのISOファイルを用意しておくのも大変ですが、せめて最新のものは用意しておくといいかもしれませんね。

正常なWindowsからWindowsフォルダを持ってくる方法

もし正常に動く同じバージョンのWindowsがあったら、そのPCのWindowsフォルダを丸ごと持ってきて、元のイメージに指定できます。

別PCのWindowsフォルダを、仮に「C:\mount」に保存したとします。

ソースが C:\mount\windows になります。

それでも修復できなかったら

リカバリーした方が早そうですね。

一応全てログが

C:\Windows\Logs\CBS\CBS.log にありますので、そこから追えるかも知れませんが、かなり厳しいと思います。

一応WinSxSのキャッシュを掃除してみるコマンド

まず調査

そしてクリーンアップ

再度sfc /scannowをしてみましょう。

install.wimのバージョンやインデックスを調べる方法

格納されている内容を確認する

インデックス1の詳細を確認する

インデックス2の詳細を確認する