Contents
  1. regeditとregedt32の違い
    1. versionの比較
    2. ファイルの比較
    3. 実験
  2. reg
    1. REG QUERY キー名 [/v 値名 | /ve] [/s]
    2. REG ADD キー名 [/v 値名 | /ve] Type セパレータ データ [/f]
    3. REG DELETE キー名 [/v 値名 | /ve | /va] [/f]
    4. REG COPY キー名1 キー名2 [/s] [/f]
    5. REG SAVE キー名 ファイル名
    6. REG RESTORE キー名 ファイル名
    7. REG LOAD キー名 ファイル名
    8. REG UNLOAD キー名
    9. REG COMPARE キー名1 キー名2 [/v 値名 | /ve] [出力] [/s]
    10. REG EXPORT キー名 ファイル名
    11. REG IMPORT ファイル名
  3. ルートキー
  4. registryの書き出し

レジストリの編集

regeditとregedt32の違い

versionの比較

> regedit
  • ヘルプ→バージョン情報
  • Version 5.1 (Build 2600.xpsp_sp2_gdr.050301-1519 : Service Pack 2)
> regedt32
  • ヘルプ→バージョン情報
  • Version 5.1 (Build 2600.xpsp_sp2_gdr.050301-1519 : Service Pack 2)
  • 同じものなのかな

ファイルの比較

> cd C:\WINDOWS
> dir reg*
2004/08/05  21:00           137,728 regedit.exe
> cd C:\WINDOWS\system32
> dir reg*
2004/08/05  21:00            66,560 reg.exe
2004/08/05  21:00             3,584 regedt32.exe
2004/08/05  21:00            33,792 regini.exe
2004/08/05  21:00            13,824 regsvr32.exe
2004/08/05  21:00             4,608 regwiz.exe
  • regedt32は,regeditを呼び出してるだけじゃないかな

実験

> cd C:\WINDOWS\system32
> rename regedt32.exe 0regedt32.exe
> dir regedt*
> dir 0regedt*
  • うお駄目だ.自動的に復帰してしまう.
> del 0regedt32.exe
> cd C:\WINDOWS
> rename regedit.exe 0regedit.exe
> dir reg*
> dir 0reg*
  • こちらも同様に自動的に復帰してしまった.
> del 0regedit.exe

reg

> reg
Console Registry Tool for Windows - version 3.0
REG Operation [パラメータの一覧]
 Operation  [ QUERY   | ADD    | DELETE  | COPY    |
              SAVE    | LOAD   | UNLOAD  | RESTORE |
              COMPARE | EXPORT | IMPORT ]
  • こんなツールがあったんですねー.

REG QUERY キー名 [/v 値名 | /ve] [/s]

 キー名    [\コンピュータ\]完全キー
     コンピュータ  リモート コンピュータ名 - 現在のコンピュータを
                   既定として省略します。
                   HKLM と HKU のみリモート コンピュータで利用できます。
     完全キー      ルートキー\サブキー 名の形式
       ルートキー  [ HKLM | HKCU | HKCR | HKU | HKCC ]
       サブキー    選択したルートキーの下のレジストリ キーの完全な名前
 /v  特有のレジストリ キーのクエリ
       値名  -     選択されたキーの下でクエリしたい名前
                   省略された場合は、キーの下のすべての値がクエリされます
 /ve 既定の値、または空の値名 <名前なし> をクエリします
 /s  すべてのサブキーと値をクエリします
 REG QUERY HKLM\Software\Microsoft\ResKit /v Version
   レジストリ値 Version の値を表示します
 REG QUERY HKLM\Software\Microsoft\ResKit\Nt\Setup /s
   レジストリ キー セットアップの下のすべてのサブキーと値を表示します

REG ADD キー名 [/v 値名 | /ve] Type セパレータ データ [/f]

 キー名    [\\コンピュータ\]完全キー
     コンピュータ  リモート コンピュータ名 - 現在のコンピュータを
                   既定として省略します。HKLM と HKU のみリモート
                   コンピュータで利用できます。
     完全キー      ルートキー\サブキー
       ルートキー  [ HKLM | HKCU | HKCR | HKU | HKCC ]
       サブキー    選択したルートキーの下のレジストリ キーの完全な名前
 /v  選択したキーの下の追加される値名
 /ve キーの空の値名 <名前なし> を追加します
 /t  種類
          [ REG_SZ    | REG_MULTI_SZ  | REG_DWORD_BIG_ENDIAN    |
            REG_DWORD | REG_BINARY    | REG_DWORD_LITTLE_ENDIAN |
            REG_NONE  | REG_EXPAND_SZ ]
          省略された場合、REG_SZ を想定します
 /s  REG_MULTI_SZ のデータ文字列でセパレータとして使う文字を 1 つ
     指定します。省略した場合、"\0" がセパレータとして使われます
 /d  追加されているレジストリ 値名へ割り当てられるデータ
 /f  プロンプトなしで既存のレジストリ エントリを強制的に上書きします
 REG ADD \\ABC\HKLM\Software\MyCo
   リモート コンピュータ ABC にキー HKLM\Software\MyCo を追加します
 REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
   値を追加します (名前: Data、種類: REG_BINARY、データ: fe340ead)
 REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
   値を追加します (名前: MRU、種類: REG_MUTLI_SZ、データ: fax\0mail\0\0)
 REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d %%systemroot%%
   値を追加します (名前: Path、種類: REG_EXPAND_SZ、データ: %systemroot%)
   注意:  文字列を展開するには、2 つの パーセント ( %% ) で囲んでください。

REG DELETE キー名 [/v 値名 | /ve | /va] [/f]

 キー名    [\\コンピュータ\]完全キー
   コンピュータ  リモート コンピュータ名 - 現在のコンピュータを
                 既定として省略します
                 HKLM と HKU のみリモート コンピュータで利用できます
   完全キー      ルートキー\サブキー
     ルートキー  [ HKLM | HKCU | HKCR | HKU | HKCC ]
     サブキー    選択したルートキーの下のレジストリ キーの完全な名前
 /v  値名        選択したキーの下の削除される値名
                 省略される場合、キーの下のすべてのサブキーと値は削除されます
 /ve 空の値名 <名前なし> の値を削除します
 /va このキーの下のすべての値を削除します
 /f  プロンプトなしで強制的に削除します
 REG DELETE HKLM\Software\MyCo\MyApp\Timeout
   レジストリ キー Timeout とそのすべてのサブキーと値を削除します
 REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU
   ZODIAC の MyCo の下のレジストリ値 MTU を削除します

REG COPY キー名1 キー名2 [/s] [/f]

 キー名    [\\コンピュータ\]完全キー
     コンピュータ  リモート コンピュータ名 - 現在のコンピュータを
                   既定として省略します
                   HKLM と HKU のみリモート コンピュータで利用できます
     完全キー      ルートキー\サブキー
       ルートキー  [ HKLM | HKCU | HKCR | HKU | HKCC ]
       サブキー    選択したルートキーの下のレジストリ キーの完全な名前
 /s  すべてのサブキーと値をコピーします
 /f  プロンプトなしでコピーします
 REG COPY HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp /s
   キー MyApp の下のすべてのサブキーと値をキー SaveMyApp へコピーします
 REG COPY \\ZODIAC\HKLM\Software\MyCo HKLM\Software\MyCo1
   ZODIAC の キー MyCo の下のすべての値を現在のコンピュータのキー MyCo1
   へコピーします

REG SAVE キー名 ファイル名

 キー名    ルートキー\サブキー
   ルートキー  [ HKLM | HKCU | HKCR | HKU | HKCC ]
   サブキー    選択したルートキーの下のレジストリ キーの完全な名前
 ファイル名    保存されるディスク ファイル名。 パスが指定されない場合は、
               ファイルは、呼び出しているプロセスの現在のフォルダに
               作成されます
 REG SAVE HKLM\Software\MyCo\MyApp AppBkUp.hiv
   hive MyApp を現在のフォルダのファイル AppBkUp.hiv に保存します

REG RESTORE キー名 ファイル名

 キー名    ルートキー\サブキー (ローカル コンピュータのみ)
   ルートキー  [ HKLM | HKCU | HKCR | HKU | HKCC ]
   サブキー    hive ファイルを復元するためのレジストリ キーの完全な名前
               既存のキーの値とサブキーを上書きします
 ファイル名    復元される hive ファイル名
               このファイルを作成するには REG SAVE を使ってください
 REG RESTORE HKLM\Software\Microsoft\ResKit NTRKBkUp.hiv
   ファイル NTRKBkUp.hiv をキー ResKit を上書きして復元します

REG LOAD キー名 ファイル名

 キー名    ルートキー\サブキー (ローカル コンピュータのみ)
   ルートキー  [ HKLM | HKU ]
   サブキー    hive ファイルを読み込むためのキー名。新しいキーを作成します
 ファイル名    読み込まれる hive ファイル名
               このファイルを作成するには REG SAVE を使ってください
 REG LOAD HKLM\TempHive TempHive.hiv
   ファイル TempHive.hiv をキー HKLM\TempHive へ読み込みます

REG UNLOAD キー名

 キー名    ルートキー\サブキー (ローカル コンピュータのみ)
   ルートキー  [ HKLM | HKU ]
   サブキー    アンロードする hive のキー名
 REG UNLOAD HKLM\TempHive
   HKLM の hive TempHive をアンロードします

REG COMPARE キー名1 キー名2 [/v 値名 | /ve] [出力] [/s]

 キー名    [\\コンピュータ\]完全キー
     コンピュータ  リモート コンピュータ名 - 現在のコンピュータを
                   既定として省略します
                   HKLM と HKU のみリモート コンピュータで利用できます
     完全キー      ルートキー\サブキー
                   FullKey2 が指定されない場合、FullKey2 は FullKey1 と
                   同じになります
       ルートキー  [ HKLM | HKCU | HKCR | HKU | HKCC ]
       サブキー    選択したルートキーの下のレジストリ キーの完全な名前
 /v  値名          選択したキーの下の比較される値名
                   省略される場合、キーの下のすべてのサブキーと値は
                   比較されます
 /ve               空の値名 <名前なし> の値を比較します
 /s                すべてのサブキーと値を比較します
 出力              [/oa | /od | /os | /on]
                   省略される場合、差分のみを出力します
   /oa             差分と一致したもののすべてを出力します
   /od             差分のみを出力します
   /os             一致したもののみ出力します
   /on             出力しません
 REG COMPARE HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp
   SaveMyApp の キー MyApp の下のすべての値を比較します
 REG COMPARE HKLM\Software\MyCo HKLM\Software\MyCo1 /v Version
   キー MyCo と MyCo1 の下の値バージョンを比較します
 REG COMPARE \\ZODIAC\HKLM\Software\MyCo \\. /s
   ZODIAC の HKLM\Software\MyCo  の下のすべてのサブキーと値を
   現在のコンピュータの同じキーで比較します

REG EXPORT キー名 ファイル名

 キー名          ルートキー\サブキー (ローカル コンピュータのみ)
     ルートキー  [ HKLM | HKCU | HKCR | HKU | HKCC ]
     サブキー    選択したルートキーの下のレジストリ キーの完全な名前
 ファイル名      エクスポートされるディスク ファイル名
 REG EXPORT HKLM\Software\MyCo\MyApp AppBkUp.reg
   キー MyApp のすべてのサブキーと値をファイル AppBkUp.reg へエクスポートします

REG IMPORT ファイル名

 ファイル名  (ローカル コンピュータのみに) インポートされるディスク ファイル名
 REG IMPORT AppBkUp.reg
   ファイル AppBkUp.reg からレジストリ エントリをインポートします

ルートキー

  • HKLM: HKEY_LOCAL_MACHINE
  • HKCU: HKEY_CURRENT_USER
  • HKCR: HKEY_CLASSES_ROOT
  • HKU: HKEY_USERS
  • HKCC: HKEY_CURRENT_CONFIG

registryの書き出し

> d:
> cd d:\work
> reg export HKLM HKLM.reg →ハングした
> reg export HKLM\Software HKLM_Software.reg →33.6M
> reg export HKCU HKCU.reg →9.6M
> reg export HKCR HKCR.reg →18.1M
> reg export HKU HKU.reg →12.8
> reg export HKCC HKCC.reg →29KB
  • 試しにキーボードのリピート速度を変えてみる
  • コンパネ→キーボード→表示までの待ち時間を右から2番目へ→OK

reg export "HKLM\Software" HKLM_Software.reg reg export HKCU HKCU.reg reg export HKCR HKCR.reg reg export HKU HKU.reg reg export HKCC HKCC.reg cd .. diff -r take1 take2 diff -r take1 take3 windiff D:\work\take1 D:\work\take2 windiff D:\work\take1 D:\work\take3 diff -c take1/HKLM_Software.reg take3/HKLM_Software.reg

  • 全然違いが無いじゃん….書き出されてないのかな.
  • 画面のプロパティ→背景の色→灰色へ
  • これでも全然違いがない.一度logoutしないと書き出されないのか.欝.
Last modified: 2006-10-12