レジストリ値の確認や変更を行うスクリプト

Windows のレジストリは regedit で起動する GUI ベースのレジストリエディタで参照・変更するのが一般的。しかし、特定のレジストリを何度も変更するような場合は、手作業でキーの階層まで下って操作することになり、大変手間だ (誤操作を防ぐためなのか、アドレスバーのような機能もないし)。

そこで次に出てくるのが、.reg という拡張子の登録エントリファイルを作り、決められた書式に沿って変更内容を書くことで、その内容でレジストリが変更できるというもの。しかし、.reg ファイルはレジストリの変更のみで、参照はできない。

ということで、今回紹介するのは、Windows コマンドプロンプト、および VBScript で、レジストリキーを参照したり変更したりする方法だ。一発確認するだけなら Windows コマンド、複雑なスクリプト処理の中でレジストリをアレコレしたいなら VBScript、というように使い分けてもらえればと思う。

Windows コマンドからのレジストリキーの参照・変更

Rem レジストリキーを確認する
Reg Query HKLM\SYSTEM\...\ /v KeyName

Rem レジストリキーを追加・もしくは値を変更する
Reg Add HKLM\SYSTEM\...\ /v KeyName /t REG_DWORD /d 1 /f

VBScript からのレジストリキーの参照・変更

Dim shell : Set shell = WScript.CreateObject("WScript.Shell")

' エラー時のために初期値として文言を入れておく
Dim query
query = "Cannot find the key."

' レジストリキーを確認する
On Error Resume Next
query = shell.RegRead("HKLM\SYSTEM\...\KeyName")
WScript.Echo(query)

' レジストリキーを追加・もしくは値を変更する
shell.RegWrite "HKLM\SYSTEM\...\KeyName", 1, "REG_DWORD"