VBScript - Working with the Windows Registry

The script below demonstrates the write, readTest"objRegistry.GetBinaryValue
and deletion for each type of value in thearrValues
Windows registry.For Each strValue In arrValues
The registry value types are:Wscript.Echo strValueName & " = " & strValue
- String (REG_SZ): A fixed-length text string.Next
- Binary (REG_BINARY): Raw binary data. Most'Delete Binary valuestrKeyPath = "Registry
hardware component information is stored asTest"strValueName = "Binary
binary data and is displayed in Registry Editor inTest"objRegistry.DeleteValue
hexadecimal format.HKEY_CURRENT_USER,strKeyPath,strValueName
- DWORD (REG_DWORD): Data represented by'Set DWORD valuestrKeyPath = "Registry
a number that is 4 bytes long (a 32-bit integer).Test"strValueName = "DWORD Test"intValue =
Many parameters for device drivers and services123objRegistry.SetDWORDValue
are this type and are displayed in Registry EditorintValue
in binary, hexadecimal, or decimal format.'Get DWORD valuestrKeyPath = "Registry
- Multi-String (REG_MULTI_SZ): A multiple string.Test"strValueName = "DWORD
Values that contain lists or multiple values in aTest"objRegistry.GetDWORDValue
form that people can read are generally this type.intValue
Entries are separated by spaces, commas, orWscript.Echo strValueName & " = " & intValue
other marks.'Delete DWORD valuestrKeyPath = "Registry
- Expandable String (REG_EXPAND_SZ): ATest"strValueName = "DWORD
variable-length data string. This data type includesTest"objRegistry.DeleteValue
variables that are resolved when a program orHKEY_CURRENT_USER,strKeyPath,strValueName
service uses the data.'Set Multi-String valuestrKeyPath = "Registry
Option ExplicitTest"strValueName = "Multi-String Test"arrValues
Const HKEY_CLASSES_ROOT = &H80000000=
Const HKEY_CURRENT_USER = &H80000001tringValue
Const HKEY_LOCAL_MACHINE = &H80000002arrValues
Const HKEY_USERS = &H80000003'Get Multi-String valuestrKeyPath = "Registry
Const HKEY_CURRENT_CONFIG = &H80000005Test"strValueName = "Multi-String
Dim strComputerTest"objRegistry.GetMultiStringValue
Dim objRegistryarrValues
Dim strKeyPathFor Each strValue In arrValues
Dim strValueNameWscript.Echo strValueName & " = " & strValue
Dim strValueNext
Dim arrValues'Delete Multi-String valuestrKeyPath = "Registry
Dim intValuestrComputer = "."Test"strValueName = "Multi-String
SetTest"objRegistry.DeleteValue
evel=impersonate}!" & strComputer &HKEY_CURRENT_USER,strKeyPath,strValueName
"rootdefault:StdRegProv")'Set Expandable String valuestrKeyPath =
'Create KeystrKeyPath = "Registry"Registry Test"strValueName = "Expandable String
Test"objRegistry.CreateKeyTest"strValue =
HKEY_CURRENT_USER,strKeyPath"123"objRegistry.SetExpandedStringValue
'Set String valuestrKeyPath = "RegistrystrValue
Test"strValueName = "String Test"strValue ='Get Expandable String valuestrKeyPath =
"123"objRegistry.SetStringValue"Registry Test"strValueName = "Expandable String
strValueTest"objRegistry.GetExpandedStringValue
'Get String valuestrKeyPath = "RegistrystrValue
Test"strValueName = "StringWscript.Echo strValueName & " = " & strValue
Test"objRegistry.GetStringValue'Delete Expandable String valuestrKeyPath =
strValue"Registry Test"strValueName = "Expandable String
Wscript.Echo strValueName & " = " & strValueTest"objRegistry.DeleteValue
'Delete String valuestrKeyPath = "RegistryHKEY_CURRENT_USER,strKeyPath,strValueName
Test"strValueName = "String'Delete KeystrKeyPath = "Registry
Test"objRegistry.DeleteValueTest"objRegistry.DeleteKey
HKEY_CURRENT_USER,strKeyPath,strValueNameHKEY_CURRENT_USER,strKeyPath
'Set Binary valuestrKeyPath = "RegistrySet objRegistry = Nothing
Test"strValueName = "Binary Test"arrValues =Please note:
The above script write, read and delete values in
arrValuesthe HKCU hive but can easily be modified to write
'Get Binary valuestrKeyPath = "Registryto any of the registry hives.
Test"strValueName = "Binary