| [System Environment] | ||||||||||||||
コマンド・プロンプトでレジストリを操作する
|
||||||||||||||
|
||||||||||||||
| 解説 |
Windowsシステムの各部の調整をしたり、動作設定を変更したりするために、レジストリを操作しなければならないことがある。本TIPSでもすでにいくつかそのような手法を紹介してきた。
レジストリを操作するためには、一般的にはGUIベースのツール「regedit.exe」や「regedt32.exe *1」が使われることが多い。だが何度も同じ処理を実行する場合や、多数のマシンに(リモートから)同じ設定を施すならば、コマンドラインで使えるようなツールがあれば便利である。
| *1 regedt32.exeはWindows 2000でのみ利用可能なツールである(もともとWindows NTにはこのツールしか用意されていなかった)。regedit.exeと違って、レジストリのキーに対するアクセス権の設定機能を持つ。これに対しWindows XPおよびWindows Server 2003では、2つのレジストリ・エディタの機能が統合され、regedit.exeだけでもアクセス権の設定が行えるようになっている。 |
Windows OSには、このような目的のために利用できるツールが用意されている。
| 操作方法 |
コマンド・プロンプト上でレジストリを操作するためのツールは「reg.exe」という。Windows 2000の場合は、サポート・ツールとして用意されているので、あらかじめユーザーがインストールしておく必要がある。サポート・ツールとは、Windows 2000のインストール用CD-ROMの\SUPPORT\TOOLSフォルダに用意されているツール類のことである。この中にあるSETUP.EXEを実行すればインストールされる。Windows XPとWindows Server 2003では、デフォルトのツールとしてあらかじめ用意されているので、すぐに使うことができる。どちらでも同じ機能を持っているが、表示されるメッセージが、Windows 2000のサポート・ツール版は英語メッセージ、Windows XP/Server 2003では日本語メッセージという違いがある。
regのサブコマンド
regコマンドにはいくつかのサブコマンドがあり、例えばレジストリ・エントリを追加するなら「reg add パラメータ列」というふうにして利用する。regコマンドで利用できるサブコマンドは次のとおりである。
| コマンド | 意味 |
リモート
|
| reg query | 指定されたレジストリ・キーやそのサブツリーの値を表示する |
可
|
| reg add | レジストリにキーや値名、値を追加したり、既存の値を修正したりする |
可
|
| reg delete | レジストリから指定されたキーや値を削除する |
可
|
| reg copy | レジストリのツリーをコピーする。ローカル・マシンのレジストリ内だけでなく、2つのマシン間でのリモート・コピーも可能 |
可
|
| reg compare | 指定された2カ所のレジストリ(ツリー)を比較して、その相違点もしくは同じ部分を表示する |
可
|
| reg save (関連記事) |
レジストリ・ツリーの保存。指定されたサブキー以下のツリーを指定されたファイルに保存する。保存されたファイルは次の「reg restore」でのみ利用可能。リモート・マシン上のレジストリを指定すると、そのマシン上の指定されたフォルダ(デフォルトは%SYSTEM_ROOT%)にファイルが保存される |
(可)
|
| reg restore (関連記事) |
reg saveで保存されたレジストリを、ローカル・マシン上の指定されたツリーの場所に復元する。リモート・マシンのレジストリをreg saveした場合は、そのマシンへログオンしてreg restoreする必要がある |
不可
|
| reg load (関連記事) |
reg saveで保存されたレジストリを、元とは異なる場所へロード/復元する。リモートのマシンへも書き戻せる |
不可
|
| reg unload (関連記事) |
reg load操作で読み込まれたレジストリのセクションを削除する |
不可
|
| reg export | 指定されたキーやエントリ(とその値)をファイルに書き出す。GUI版のレジストリ・エディタでレジストリを書き出したときに作成されるファイル(〜.reg)と同じ形式で保存される |
不可
|
| reg import | reg exportで書き出されたレジストリ値をローカルのコンピュータに書き戻す。エクスプローラ上で〜.regファイルをダブルクリックしたときの動作と同じ |
不可
|
| regコマンドのサブコマンドとその機能 | ||
| regコマンドにはさまざまなサブコマンドがある。regコマンドの使い方は「reg /?」を実行すると表示される。さらに「reg add /?」とサブコマンドに続けて「/?」を指定すれば、サブコマンドごとの詳しい使い方が表示される。「リモート」の欄は、リモート・マシンのレジストリを操作できるかどうかを表している。「可」となっている場合は、レジストリのキー名の先頭にマシン名を指定することができる。 | ||
regコマンドの使い方は、サポート・ツールのヘルプ・ファイル(Windows 2000の場合)や「ヘルプとサポート センター(Windows XP/Windows Server 2003の場合)」を参照すればよいが、通常はコマンド・プロンプト上で「reg /?」として表示させるのが簡単でよいだろう。各サブコマンドについては、例えば「reg add /?」などとすれば、使い方やサンプルが表示される。
C:\>reg add /? |
レジストリ・キーの指定方法
regコマンドを利用する場合は、そのパラメータとしてレジストリのキーを指定する必要がある。レジストリには、目的に応じていくつかのルート・キーが存在する。例えばシステム全体にかかわる設定は「HKEY_LOCAL_MACHINE\SOFTWARE」、ユーザーごとの設定は「HKEY_USERS」などである。だがこれらは非常に長いので、以下のような省略形式を利用することもできる。
| 省略キー | 正式なキー名称 | リモート |
| HKLM | HKEY_LOCAL_MACHINE | 利用可能 |
| HKCU | HKEY_CURRENT_USER | 利用不可能 |
| HKCR | HKEY_CLASSES_ROOT | 利用不可能 |
| HKU | HKEY_USERS | 利用可能 |
| HKCC | HKEY_CURRENT_CONFIG | 利用不可能 |
| レジストリ・キーの省略形式 | ||
| レジストリ・キーを指定する場合は、ここで示した省略形式でも指定することができる。ただしリモート・マシン上のレジストリを指定する場合は、HKLMとHKUのみが使用可能であり、ほかのキーは指定できない。 | ||
この省略形を使うと、例えば「HKEY_LOCAL_MACHINE\Software\Microsoft」は「HKLM\Software\Microsoft」と短く省略して、簡潔に記述することができる。
リモート・マシン上のレジストリを指定する場合は、キーの先頭に「\\コンピュータ名\」を付ければよい。例えば「\\server1\HKLM\Software\Microsoft」とする。ただし、リモートからレジストリを操作する場合は「CURRENT_USER(現在ログオンしているユーザー)」という概念はないので、HKLMとHKUのみが利用できる。リモートのレジストリにアクセスするためには、リモート・マシンに対する管理者権限を持っていなければならない。
レジストリ操作の例
ここでは例として、自動ログオンの設定をリモートのマシンに対して施してみよう。システム起動時に自動ログオンするには、「TIPS―ログオンを省略してWindows 2000を利用できるようにするには(レジストリによる設定法)」で紹介したようにレジストリを設定する。
| レジストリの値名 | タイプ | 意味 |
| DefaultDomainName | REG_SZ | 自動ログオンするドメイン名。ドメインではなくローカル・マシンのアカウントにログオンする場合はマシン名を指定する |
| DefaultUserName | REG_SZ | 自動ログオンするユーザー名 |
| DefaultPassword | REG_SZ | 自動ログオンするユーザーのパスワード |
| AutoAdminLogon | REG_SZ | 1 |
| 自動ログオンのための設定 | ||
| HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon以下にこれらの値を作成すると、システム起動時に自動的にログオンさせることができる。 | ||
この設定を行うためには、以下のようなコマンドを実行する。ここではログオンするマシン名はserver1、ユーザー名はuser01、パスワードはpassword01としている。キー名などの途中に空白が含まれている場合は、ダブルクォート記号で囲むことを忘れないでいただきたい。
※これは、.BATファイルにした例 |
最初と最後にある「net use \\server1\ipc$ 〜 」と「net use 〜 /delete」は、対象となるサーバへの接続と切断を行うためのものである。詳しくは「TIPS―アカウントを指定してIPC$共有リソースへ接続する」を参照していただきたいが、このような共有指定を明示的に行うことにより、現在ログオンしているユーザー・アカウントとは関係なく、対象となるマシンへ任意のアカウントで共有のためにログオンすることができる(必要なければ、省略してよい)。
途中にある「reg add "\\server1\HKLM〜" /v 〜 /t 〜 /d 〜 /f」が実際のレジストリ値をセットするためのコマンドである。途中に空白文字が入っている場合には、パラメータを「"〜"」のように、ダブルクォート記号で囲むようにする。また文字列型(REG_SZ_〜)の値の場合もダブルクォート記号で囲むのがよいだろう。ここでは文字列しか使用していないが、REG_DWORDの場合は数値を10進数か16進数で指定する(16進数の場合は先頭に0xを付け、0x1234abcdのようにする)。
パラメータの最後にある「/f」は、上書きするという指定である。同じキーや値の内容を変更する場合は、このオプションがないと、上書きしてもよいかどうかがいちいち聞かれることになる。
設定した値を確認するには、例えば以下のようにすればよい。これはWinlogonのキー以下にある値をすべて表示させるというコマンドである。
reg query "\\server1\HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /s |
このようにregコマンドを使えば、レジストリの設定作業を簡単に行うことができる。多数のリモート・マシンに対してまとめて設定を変更したいといった場合に役に立つだろう。![]()
| 関連記事(Windows Server Insider) | ||
| TIPS―ログオンを省略してWindows 2000を利用できるようにするには(レジストリによる設定法) | ||
| TIPS―アカウントを指定してIPC$共有リソースへ接続する | ||
|
||||||||||||||||||||||||||||
| 「Windows TIPS」 |
TechTargetジャパン
- クライアントでも利用可能になるHyper-V 3.0とは? (2012/2/9)
Windows 8では、従来のWindows Virtual PCに代わって新しくHyper-V 3.0がクライアント向けにも導入される。その概要を解説 - 第303話 ペアプロ2 (2012/2/7)
あっ、またまたいつぞやの幽霊が! …っと思ったら、何だ倉井さんかぁ…。はぁー、驚いた… - Excelで郵便番号変換ウィザードを活用する (2012/2/3)
Excelで管理している顧客名簿などで、不足している郵便番号や住所を入力するのは意外と面倒。郵便番号変換ウィザードを使えば、これらの入力が簡単になる - PCをシンクライアント化するWindows Thin PCとは? (2012/2/2)
VDI向けにシンクライアントがほしいけど専用機を買う余裕はない… Windows Thin PCなら既存PCを低コストでシンクライアント化できる。まずは概要を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -

