1. ホーム
  2. オペレーティングシステム
  3. レジストリ

REGレジストリファイルによるレジストリキーおよびサブセクションの追加、変更、削除

2022-01-21 14:58:44

REGファイルは実際にはレジストリスクリプトファイルであり、RegeditレジストリエディタはREGファイルを使用してレジストリのサブセクションおよび値をインポートおよびエクスポートすることができます。REGファイルをダブルクリックする(つまり、Regedit.exeレジストリエディタプログラムでファイルを実行する)と、そのデータがレジストリにインポートされます。レジストリエディタを無効にした場合の制約を受けずに、REGファイルを使用して直接レジストリに何らかの変更を加えることができます。インポートとは対照的に、Regeditレジストリエディタは、レジストリ内の指定されたエントリをREGファイルにエクスポートして、簡単にバックアップするために使用することができます。このREGファイルは、複数のPCに配布して、レジストリを一括変更することができます。

REGファイルは、任意のテキストファイル編集ツール(メモ帳など)で修正できるので、労力半分で上達し、思わぬ成果を上げることができます。

1. REGファイルの作成

REGファイルの作成方法は非常に簡単で、テキストファイル編集ツールで作成することができます。作成する前に、フォルダオプションの「既知のファイルの種類の拡張子を隠す」サブセクションを削除し、実際にファイルの拡張子を変更できるようにすることを忘れないでください。

メモ帳を例にとると、メモ帳プログラムを開き、"名前を付けて保存"を選択し、ファイル名を"try.reg"、保存タイプを"すべてのファイル"(このステップは非常に重要です。そうしないと、保存されたファイルの拡張子が自動的に".txt"で追加されます)、そして保存してください。そうすると、空のREGファイルができます。もちろん、メモ帳ファイルの拡張子を直接変更することも可能で、例えば "try.txt" というファイルを "try.reg" に変更します。

ダブルクリックしてファイルを実行すると、以下のようなプロンプトボックスが表示され、レジストリを変更するかどうか確認されます。

2. REG 構文

2.1 基本的な構文

Reg ファイルの内容の基本的な構文形式は以下のとおりである。

レジストリエディタバージョン
空白行
[レジストリパス1]です。
"DataItemName1"="DataType1:DataValue1"。
"DataItemName2"="DataType2:DataValue2"です。
空白行
[レジストリパス2]です。
"DataItemName3"="DataType3:DataValue3"。
空白行
[レジストリパス3]です。
"DataItemName4"="DataType4:DataValue4"。
registryEditorVersionは、Windowsレジストリエディタのバージョン番号です。Windows 2000、Windows XP、Windows Server 2003、Windows Vista、Windows 7の場合、値は"Windows Registry Editor Version 5.00"です。私のシステムはWindows 7 Service Pack 1(64ビット)であり、値は"Windows Registry Editor Version 5.00"となります。Windows 98およびWindows NT 4.0では、値は"REGEDIT4"です。Windows 2000、Windows XP、Windows Server 2003も"REGEDIT4 "に対応している場合があります。

RegistryPath は、角括弧で囲まれたキーパスで、各階層はバックスラッシュで区切られています。

[HKEY_LOCAL_MACHINE⇄CurrentControlSetservicesTCPIP6]
Windowsレジストリエディタ バージョン5.00
[HKEY_LOCAL_MACHINE@SYSTEM@CurrentControlSetservices@TCPIP6@tryabc]
REG は、新しいキー(サブキー)の再帰的な作成をサポートしており、作成したいキー(サブキー)を RegistryPath に追加するだけです。たとえば、次のステートメントを使用して、TCPIP6の下にサブキーtryを作成し、tryの下にサブキーabcを作成します。

レジストリは、キー(またはエントリ)、サブキー(または子エントリ)、および値エントリから構成されています。レジストリエディタを見て、上記のキーパスで示された場所をブラウズしてみましょう。

左側の展開された階層がキーパスで、これはディレクトリと解釈でき、キーはブランチ内のディレクトリ、サブキーはそのディレクトリ内のサブディレクトリです。サブディレクトリの下にサブキーが存在することもあるので、サブキーはキーでもあります。下図では、"TCPIP6" と "Linkage" がキー(サブキー)になっています。

キー(サブキー)は、異なる名前の1つまたは複数の値項目を持つことができます。値項目の名前が空であれば、そのキーのデフォルトの値項目となる。次の図では、"DependOnService"が値項目の名前、"REG_MULTI_SZ"が値タイプ、その値は"Tcpip"です。

DataItemName は、値項目の名前です。値項目がレジストリに存在しない場合は作成され、存在する場合はその値が上書きされます。値項目の名前は二重引用符で囲まれていることに注意してください。

DataType, DataValue は値項目の値で、DataType は値の種類、DataValue は具体的な値、DataType と DataItemName は "=" で結ばれています。REG_SZタイプの値は、DataType値タイプをマークする必要があり、例えば"DataItemName1"="Microsoft IPv6 Protocol Driver"のようにダブルクォーテーションが必要なだけです。その他のタイプはダブルクォーテーションは必要なく、値のタイプ、値のタイプおよび特定の値をコロンで区切って追加する必要があります、例えば " DataItemName2"=hex(2): 73,00,79,00,73,00,74,00,"DataItemName3"=hex(7):5c,00,44,00,65,00,76,00,"DataItemName4" quot;=dword:00000006.

レジストリのデータは、主に以下の5種類です。

表示タイプ
(エディタ内) データ型の説明 REG_BINARY バイナリ数 16進数で表示されるバイナリ値 REG_DWORD ダブルワード 8ビットの16進数値、または10ビットの10進数値として表示される32ビットバイナリ値 REG_SZ 文字列 テキスト列 REG_EXPAND_SZ 拡張できる文字列 REG_MULTI_SZ 複数のテキスト値を含む複数の文字列

さらに、レジストリには他のデータ型もありますが、一般的に使用されるものはありません。

REG_DWORD_BIG_ENDIAN
REG_DWORD_LITTLE_ENDIAN
Reg_full_resource_descriptor
REG_QWORD
REG_FILE_NAME
キー(サブキー)を削除したい場合は、RegistryPathヘッダーに"-"を追加するだけです。たとえば、次のステートメントを使用して、上で作成したサブキーtryとabcを削除します。2.2 削除操作の構文

Windowsレジストリエディタ バージョン5.00
[-HKEY_LOCAL_MACHINE]
Windowsレジストリエディタ Version 5.00 値の項目を削除する場合は、DataItemNameの後の等号の後に"-"を追加するだけです。たとえば、以下の最初のステートメントを使用して、値項目 "valueItem"を作成し、2番目のステートメントを使用して、値項目を削除してください。

[HKEY_LOCAL_MACHINE@SYSTEM@CurrentControlSet@services@TCPIP6@ryabc].
"valueItem"="私の値"。
Windowsレジストリエディタ バージョン5.00
[HKEY_LOCAL_MACHINE@SYSTEM@CurrentControlSetservices@TCPIP6@tryabc]
値項目=-。
3. REGファイルの編集 2.3 Rename操作の構文

キー(サブキー)または値の項目の名前を変更するには、それを削除してから、新しい名前のキー(サブキー)または値の項目を新規に作成します。

冒頭で空のREGファイルが作成されましたが、動作させるためにはその内容を編集する必要があります。REGファイルを開くには、ファイル上で右クリックして、"Edit"または"Open As-> Notepad"を選択します。そして、内容を入力して保存すればOKです。

では、REGファイルの使用例です。以下のように保存して、REGファイルを実行すると、以下のような結果になります。

Windowsレジストリエディタ バージョン5.00
[HKEY_LOCAL_MACHINE@SYSTEM@CurrentControlSetservices@TCPIP6@tryabc]
"valueItem1"="私の値"。
"valueItem2"=dword:00000014
[HKEY_LOCAL_MACHINE_CurrentControlSetservices ○TCPIP6 ○try]
"valueItem3"=hex(7):5c,00,44,00,65,00,76,00



4. その他の知識
レジストリには5つのブランチがありますが、その名前と役割を紹介します。

名前 役割HKEY_CLASSES_ROOTは、Windowsが認識するドキュメントタイプの詳細なリストと関連プログラムを格納しますHKEY_CURRENT_USERは、現在のユーザー設定に関する情報を格納しますHKEY_LOCAL_MACHINEは、コンピュータにインストールされているハードウェアとソフトウェアに関する情報を含みますHKEY_USERSは、コンピュータの現在のハードウェア設定に関する情報を含みますHKEY_CURRENT_CONFIGこのブランチは、コンピュータの現在のハードウェア設定に関する情報を含んでいます。