バッチスクリプトと.reg
ファイルを使用して、いくつかのカスタムサービスを設定しようとしています。ほとんどのキーは適切に設定されていますが、一部のサービスにはDependOnService
キーを設定する必要があります。これは通常、複数の文字列です。このキーを.reg
ファイルから設定することは可能ですか、それとも手動入力が必要ですか?
REG_MULTI_SZ
ファイル内の.reg
データは、16進数でエンコードする必要があります。コンテンツが変更されない場合は、データを使用してレジストリにダミーアイテムを作成し、エクスポートして、必要に応じて調整できます。
変更された場合は、Windowsに含まれているreg
プログラムを使用して追加する方がはるかに簡単です。これを行うには、次の形式でreg
を呼び出します。
Reg Add <KEY> /v <NAME> /t REG_MULTI_SZ /d <DATA> /s <SEPERATOR>
セパレータスイッチはオプションです。使用しない場合、書き込む文字列は、ヌル文字(\0
)のエスケープシーケンスで区切る必要があります。たとえば、Flair
という名前のアイテムをfoo
、bar
、およびbaz
の文字列でHKLM\SOFTWARE\WhizBang\Excite-O-Rama
に追加するには、次のように実行します。
Reg Add HKLM\SOFTWARE\WhizBang\Excite-O-Rama /v Flair /t REG_MULTI_SZ /d foo\0bar\0baz
代わりにデータをコンマで区切るには、次のコマンドを実行します。
Reg Add HKLM\SOFTWARE\WhizBang\Excite-O-Rama /v Flair /t REG_MULTI_SZ /d foo,bar,baz /s ,
詳細については、Microsoft Docsの Reg
コマンドを参照してください。
dword:
= DWORD
hex(2):
= Expandable-文字列hex(7):
=マルチストリングDWORD
は32ビットの符号なし整数(10進範囲:0
--4294967295
)であり、レジストリでは、DWORD
は常に0x
で始まり、0x
の後に8桁あります。これは、10進数または16進数の形式にすることができます。たとえば、1000
は0x00001000
または0x000003e8
と書くことができます。
DWORDS
は数字0
--9
のみを使用できます。あらゆる種類の文字列は常にASCIIを使用し、ACSIIでは1000
は31,30,30,30
としてのみ記述できます。文字列データ型の場合、コンピュータは1と0しか認識しないため、ASCIIは、知らないうちにバックグラウンドで機能します。
Expandable-StringおよびMulti-Stringデータ型の場合、これらはエントリを一連のASCIIコードとして16進形式で、コンマと16進ゼロで区切って保存します。したがって、1000
のExpandable-Stringはbe hex(2):31,00,30,00,30,00,30,00
%PROGRAMFILES%
をExpandable-Stringに変換しましょう:
%PROGRAMFILES%
を入力し、ユーザー定義の出力区切り文字:%
を選択し、[変換]を選択すると次のようになります:%25%50%52%4F%47%52%41%4D%46%49%4C%45%53%25
%
を最後に移動し、すべての%
を,00,
で検索/置換し、文字列の最後にあるカンマを削除します。次のようになります:25,00,50,00,52,00,4F,00,47,00,52,00,41,00,4D,00,46,00,49,00,4C,00,45,00,53,00,25,00
hex(2):25,00,50,00,52,00,4F,00,47,00,52,00,41,00,4D,00,46,00,49,00,4C,00,45,00,53,00,25,00
このレッスンには、暗号化されていない16進コードのレジストリエントリをリバースエンジニアリングするために必要なすべての知識が含まれています。