Delete all subkeys in a registry key

Is there an easy (automated) way to delete all subkeys in a key in the Windows registry without deleting the key itself?

Thanks


Do you know what the sub-keys are in advance? If so you can do it with a .reg file using something like this to delete all sub-keys of Test:

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\Software\Test\Key1]
[-HKEY_LOCAL_MACHINE\Software\Test\Key2]
[-HKEY_LOCAL_MACHINE\Software\Test\Key3]
[-HKEY_LOCAL_MACHINE\Software\Test\Key4]

The minus sign at the start of the line tells it to delete that key, full syntax here: http://support.microsoft.com/kb/310516

If not, then you're looking for a script that'll enumerate all the sub-keys and then go through deleting them all one by one. I've got one that'll do this at work, but I'm at home and can't get to it!


With Windows7 or Vista, you can use Powershell commands like this, referring to the registry path the same way that you refer to a file system path:

Remove-Item -Path HKLM:\Software\Test\Key1 -Recurse
Remove-Item -Path HKLM:\Software\Test\Key2 -Recurse
Remove-Item -Path HKLM:\Software\Test\Key3 -Recurse
Remove-Item -Path HKLM:\Software\Test\Key4 -Recurse