Delete a Registry Key and its Subkeys

A script to delete a registry key and its subkeys via a Custom Action.  Useful for when we want to delete junk registry which has been left behind post uninstall.

Source:

technet.microsoft.com

Script:

Option Explicit

Dim intHive
Dim strComputer
Dim strKeyPath
Dim strSubkey 
Dim arrSubkeys

Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005

On Error Resume Next 

strComputer = "."
strKeyPath = "Software\Test" 

Dim objRegistry : Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") 

DeleteSubkeys HKEY_LOCAL_MACHINE, strKeypath 

Set objRegistry  = Nothing

Sub DeleteSubkeys(HKEY_HIVE, strKeyPath) 
    objRegistry.EnumKey HKEY_HIVE, strKeyPath, arrSubkeys 

    If IsArray(arrSubkeys) Then 
        For Each strSubkey In arrSubkeys 
            DeleteSubkeys HKEY_HIVE, strKeyPath & "\" & strSubkey 
        Next 
    End If 

    objRegistry.DeleteKey HKEY_HIVE, strKeyPath 
End Sub