ThinWorld Citrix Knowledgebase

Tuesday, 7 July 2009

VBS Delete Registry Keys

To Delete a single registry value you can use a single RegDelete command but if you want to delete a key and all subkeys and values you will need a recursing loop to perform the delete.

This Script deletes all keys under HKCU\Network\Y

Set ofsFS = CreateObject("Scripting.FileSystemObject")
StrDriveLetter = "y"
Const HKEY_CURRENT_USER = &H80000001


If ofsFS.DriveExists(StrDriveLetter) Then
Set objRegistry = GetObject("winmgmts:\\" & ".\root\default:StdRegProv")
StrKeyPath = "Network\" & StrDriveLetter
DeleteSubkeys strKeypath
End If

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

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

objRegistry.DeleteKey HKEY_CURRENT_USER, strKeyPath
End Sub