Programming Field

Reg Restore - DOS/コマンドプロンプト コマンド一覧

[Windows NT系/XP 以降] ファイル(ハイブデータ)に保存されたデータを指定のレジストリキーに復元します。Regの操作の1つです。

このページではWindowsのレジストリを書き換えることができるコマンドを扱っています。レジストリにはWindowsの重要な設定も含まれているため、レジストリに対する操作は慎重に行ってください。レジストリの操作にあまり慣れていないときは事前のバックアップを強く推奨します。また、不用意にいろいろなデータの書き換えを行うとWindowsが正常に起動しなくなる原因となります。なお、このページにある内容を利用して生じた問題の責任は負いかねます。

※ コマンドの実行にはバックアップ権限(SeBackupPrivilege)および復元権限(SeRestorePrivilege)が必要です(通常は両方ともBackup Operatorsグループに付与されています)。コマンドプロンプトから実行する場合でウィンドウに「管理者」と入っていない場合は、別途「管理者で実行」でコマンドプロンプトを開くなどの昇格操作が必要になります。

構文

reg[.exe] restore <key> <file-name> [/reg:[32|64]]

※ 引数は「ファイル」「キー」の順ではなく「キー」「ファイル」の順で指定します。

オプション一覧

<key>

キー名を指定します。具体的な指定方法は「キー名の指定方法について」をご覧ください。ただし本コマンドについてはローカルコンピューターのキーに対してのみ操作を行うことができます。

なお、キー名は完全パスで指定しますが、キーが存在しない場合はエラーとなります。また、指定したキーに中身が存在する場合はすべて削除されて上書きされます。

<file-name> データ読み込み元のファイル名を指定します。
/reg:[32|64]

64ビット版と32ビット版(WOW64)の環境がある場合、「/reg:32」を指定すると32ビット版アプリケーションが使用するレジストリデータ(HKLMの場合は「HKLM\Software\WOW6432Node」以下など)、「/reg:64」を指定すると64ビット版アプリケーションが使用するレジストリデータを参照します。

なおこのオプションを省略した場合は、実行されるReg.exeが64ビット版であれば64ビット版、32ビット版(%SystemRoot%\SysWOW64 以下にあるもの)であれば32ビット版のレジストリを参照します。何らかのアプリケーションのレジストリデータを参照する場合は、そのアプリケーションの32ビット/64ビットが分かっているのであれば明示的にこのオプションを指定して曖昧さを回避することができます。

※ Reg.exeが32ビット版であっても「/reg:64」によって64ビット版のレジストリを参照することができます。
※ 64ビット版Reg.exeであれば、32ビット版のレジストリを参照する際に直接「HKLM\Software\WOW6432Node」以下などのキーを指定することも可能です。

解説

Regの「RESTORE」コマンドは、ハイブデータに保存されたレジストリの値やキーを復元する際に用います。Reg Importによる読み込みとは異なり、指定したキーの中身と状態をハイブデータに書き込まれている内容に完全に置き換えます。そのため、指定したキーに元から存在していたデータは失われ、アクセス権などの情報もハイブデータに書き込まれている内容が適用されます。

※ このため、Reg Restoreはレジストリ復元の用途に使われる強いコマンドであり、冒頭に記述した通り(通常のユーザーにはない)バックアップと復元の権限が必要になります。

なお、ハイブデータは「.reg」の拡張子で用いられるファイルとは異なり、主にReg Saveで作成されるデータとなります。

サンプル

reg add "HKLM\Software\My Company" /f
reg restore "HKLM\Software\My Company" MyCompany_key.dat

「HKEY_LOCAL_MACHINE\Software\My Company」キーに「MyCompany_key.dat」ファイル内のデータを復元します。キーはあらかじめ存在している必要があるため、Reg Addでキーを作成しています。