Programming Field

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

[Windows NT系/XP 以降] レジストリツリー上に読み込み済みの「ハイブデータ」をアンロードします。Regの操作の1つです。

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

構文

reg[.exe] unload <key>

オプション一覧

<key>

ハイブデータが読み込まれた先のキー名を指定します。具体的な指定方法は「キー名の指定方法について」をご覧ください。

なお、ここで指定するキー名はルートキーが HKEY_LOCAL_MACHINE または HKEY_USERS のいずれかのみに限られます。また、HKEY_LOCAL_MACHINE または HKEY_USERS のいずれかの直下にあたるサブキーのみが指定可能であり、原則として現在のユーザーがハイブをロードしたレジストリキーのみが指定できます。

解説

Regの「UNLOAD」コマンドは文字通り「REG LOAD」の対となるコマンドであり、読み込み済みのハイブデータをアンロードします。ロードされたハイブデータファイルはシステムによってロックされており他のプログラムが読み取ることもできなくなるため、レジストリへの一定の操作を終えてハイブデータファイルそのものを移動またはコピーしたい場合は、先にReg Unloadを用いてアンロードする必要があります。

サンプル

reg load HKLM\TempRegKey X:\Users\Somebody\NTUSER.DAT
reg delete HKLM\TempRegKey\Software\Microsoft\Windows\CurrentVersion\Run /va /f
reg unload HKLM\TempRegKey

ハイブデータファイル「X:\Users\Somebody\NTUSER.DAT」に含まれるレジストリデータにおいて、「Software\Microsoft\Windows\CurrentVersion\Run」キー以下にある値をすべて削除します。Reg Loadを用いて「HKEY_LOCAL_MACHINE\TempRegKey」以下にデータをロードし、値の削除を行ってからアンロードしてファイルのロックを解除しています(アンロードを行わないとディスクの取り外し等が正常にできなくなります)。なお、「HKEY_LOCAL_MACHINE\TempRegKey」以下にロードしているため、ハイブデータ内のレジストリへの操作は「HKEY_LOCAL_MACHINE\TempRegKey」以下のキーおよび値に対して行うことになります。

この例は、別のWindowsがインストールされた外部ディスクドライブを接続し、特定のユーザーのレジストリ設定にあるスタートアッププログラムをすべて削除する(「不調の原因の可能性があるため一旦すべて削除してしまう」)、というメンテナンス操作を想定した例となっています。ファイルへのアクセス権さえあれば、ハイブのロード・アンロード操作を用いて別デバイスのWindowsをレジストリレベルでメンテナンスすることができます。Reg Loadの「解説」における注意の通り、不用意な操作は致命的な結果を生む可能性があるため、このような操作を行う場合は細心の注意を払う必要があります。