レジストリ破損に対する防衛術

レジストリが壊れていると、sfcやDISMが失敗して修復ができない。

レジストリの実体は特定のファイルではなく、いくつかのファイルの集合体なのだが、大部分はC:\Windows\system32\config内にある。

Windows10 1709以前はC:\windows\system32\config\Regbak内にバックアップされる。ここからcopyコマンドで移植すればレジストリの破損があっても書き戻せた。

現在は容量の節約を理由にバックアップは取られなくなった(そもそも有効活用する人材が少なすぎたのだろう)ので、この方法は使えない。

システムの復元を利用する

復元ポイントがあればレジストリの破損も書き戻せる……のだが、復元ポイント自体に破損があると例えそれが本体の壊れていない部位だとしても復元できなくなる。

復元ポイントの実体はSystem Volume Informationフォルダ内にある、ボリュームシャドウコピーである。

ボリュームシャドウコピーは本来、ネットワークサーバー用のバックアップのようだが、「以前のバージョン」「復元ポイント」などにも応用されている。

シャドウコピーを触るためのコマンドを使用すると、復元ポイントから以前のレジストリを書き戻すことができるようになる。

vssadmin list shadows

vssadmin 1.1 - ボリューム シャドウ コピー サービス管理コマンド ライン ツール
(C) Copyright 2001-2013 Microsoft Corp.

シャドウ コピー セット ID: {<UUID>} の内容
   1 個のシャドウ コピー、作成時刻: 2022/07/24 00:00:00
      シャドウ コピー ID: {<UUID>}
         元のボリューム: (C:)\\?\Volume{<UUID>}\
         シャドウ コピー ボリューム: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
         元のコンピューター: <コンピューター名>
         サービス コンピューター: <コンピューター名>
         プロバイダー: 'Microsoft Software Shadow Copy provider 1.0'
         種類: ClientAccessibleWriters
         属性: 恒久, クライアント アクセス可能, 自動リリースなし, 差分, 自動回復

vssadminコマンドでシャドウコピーの一覧を見ることができる(上記、個人情報にかかわる部位は伏せてある)

ここで出てくるシャドウコピーボリュームに対するシンボルリンクを作成してあげれば、中のファイルからレジストリを触れるようになる

mklink C:\regbak \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\system32\
cd regbak\config

あとはcopyコマンドで書き直すだけ。

ほかのPCから移植する

※ライセンス違反

Windows10以降、かなりOSの構造が柔軟になっていてマザーボードを変えても起動できる。これを悪用する。

他のPCで新規インストールしたWindowsを用意し、キーハイブを移植したら何故か動作する。

適切なキー移動と権限設定ができればソフトウェアやドライバを保ったままWindowsが起動できるようになる。当たり前だがかなりの不具合を起こした。あとユーザープロファイルがおかしなことになる。

この状態で初期化をかけるとメーカーのリカバリがかかるので、どちらかというとメーカーPCでリカバリメディアを作成していない場合に使うといいかもしれない。リカバリしてしまえば外観じゃライセンス違反の区別つかないし。


コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です