VBScript(Visual Basic Scripting Edition)は、Windows環境で幅広く使用されているスクリプト言語の一つです。
特に、Windowsのシステム管理や自動化スクリプトとして利用されることが多く、その中でも「レジストリ操作」は重要な役割を果たしています。
本記事では、VBScriptを使ってWindowsレジストリの操作方法を紹介します。
レジストリとは、Windowsの設定やアプリケーションの動作に関連する情報が格納されるデータベースです。
これを操作することで、システムやアプリケーションの設定をカスタマイズすることができます。
レジストリとは何か?
レジストリとは、Windows OSがシステムやアプリケーションの設定を保存するために使用する階層型データベースです。
レジストリには、次のような情報が保存されています。
- システムの設定
- インストールされているハードウェア情報
- インストールされたソフトウェアの設定
- ユーザーごとの設定
レジストリは「キー」と呼ばれるディレクトリと、「値」と呼ばれるデータから構成されています。
キーはフォルダのような役割を果たし、値には設定データが格納されています。
VBScriptでレジストリを操作する準備
VBScriptでレジストリを操作する際は、Windows Scripting Host(WSH)の一部である「WScript.Shell」オブジェクトを使用します。
このオブジェクトには、レジストリの読み取りや書き込みを行うためのメソッドが含まれています。
主に使用するメソッドは以下の通りです。
- RegRead: レジストリの値を読み取る
- RegWrite: レジストリに値を書き込む
- RegDelete: レジストリの値を削除する
これらのメソッドを使って、レジストリ操作を簡単に行うことができます。
レジストリの読み取り(RegRead)
まず、VBScriptを使用してレジストリから値を読み取る方法を見てみましょう。
以下は、RegReadメソッドを使用して、レジストリキーから値を取得する例です。
Dim shell
Set shell = WScript.CreateObject("WScript.Shell")
' レジストリから値を読み取る
Dim regValue
regValue = shell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden")
' 読み取った値を表示する
WScript.Echo "Hiddenキーの値: " & regValue
このスクリプトでは、レジストリのHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hiddenキーから値を読み取り、その結果を表示しています。
レジストリへの書き込み(RegWrite)
次に、RegWriteメソッドを使ってレジストリに値を書き込む方法です。
以下は、指定したキーに新しい値を書き込む例です。
Dim shell
Set shell = WScript.CreateObject("WScript.Shell")
' レジストリに新しい値を書き込む
shell.RegWrite "HKEY_CURRENT_USER\Software\MyApp\Settings\TestValue", 1, "REG_DWORD"
WScript.Echo "値の書き込みが完了しました。"
このスクリプトでは、HKEY_CURRENT_USER\Software\MyApp\Settings\TestValueというレジストリキーに、DWORD型の値「1」を書き込んでいます。ここでの重要な点は、REG_DWORDのようにデータ型を指定することです。
- REG_SZ: 文字列
- REG_DWORD: 32ビットの整数
レジストリの削除(RegDelete)
レジストリから不要なキーや値を削除する場合は、RegDeleteメソッドを使用します。
以下は、指定したレジストリの値を削除する例です。
Dim shell
Set shell = WScript.CreateObject("WScript.Shell")
' レジストリの値を削除する
shell.RegDelete "HKEY_CURRENT_USER\Software\MyApp\Settings\TestValue"
WScript.Echo "値の削除が完了しました。"
このスクリプトでは、HKEY_CURRENT_USER\Software\MyApp\Settings\TestValueというレジストリの値を削除しています。
演習問題
この記事の内容を基にした演習問題を通じて、実際に手を動かしながら学習を進めましょう。
演習1: レジストリから値を読み取る
以下のレジストリキーに保存されている値を読み取り、結果を表示するVBScriptを書いてください。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden
演習1:解答例
Dim shell
Set shell = WScript.CreateObject("WScript.Shell")
Dim regValue
regValue = shell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden")
WScript.Echo "Hiddenキーの値: " & regValue
演習2: レジストリに新しい値を書き込む
次のレジストリキーに新しい文字列値”MyValue”を追加し、その値を”HelloWorld”に設定するVBScriptを書いてください。
HKEY_CURRENT_USER\Software\MyApp\Settings\MyValue
演習2:解答例
Dim shell
Set shell = WScript.CreateObject("WScript.Shell")
shell.RegWrite "HKEY_CURRENT_USER\Software\MyApp\Settings\MyValue", "HelloWorld", "REG_SZ"
WScript.Echo "値の書き込みが完了しました。"
演習3: レジストリの値を削除する
以下のレジストリキーに存在する”TestValue”という値を削除するVBScriptを書いてください。
HKEY_CURRENT_USER\Software\MyApp\Settings\TestValue
演習3:解答例
Dim shell
Set shell = WScript.CreateObject("WScript.Shell")
shell.RegDelete "HKEY_CURRENT_USER\Software\MyApp\Settings\TestValue"
WScript.Echo "値の削除が完了しました。"
まとめ
本記事では、VBScriptを使用してレジストリを操作する基本的な方法について説明しました。
レジストリの読み取り、書き込み、削除などの操作を行うためのメソッドについても詳しく解説しました。
VBScriptはWindows環境で非常に便利なスクリプト言語であり、レジストリ操作はその中でも重要な機能の一つです。