DSC-Resource: How can I delete a registry key (not value)?

I know I can ensure the presens of a specific registry value by using the following scriptblock:

    Registry ConfigureRegistry
    {
        Ensure    = 'Present'
        Key       = 'HKEY_LOCAL_MACHINE\SOFTWARE\SomeKey'
        ValueName = 'MachineType'
        ValueData = 'Hyper-V'
    }

But how can I delete the registry key SomeKey? If I only change the keyword Ensure = "Present" to Ensure = "Absent" it will leave the key SomeKey...


Solution 1:

This is now possible, see VertigoRay's answer.

This isn't possible at the moment with the Registry resource, as you've discovered.

You can use a Script resource or write a full custom resource instead.

Solution 2:

This is possible, as documented:

To add or remove a registry key, specify [ValueName] as an empty string without specifying ValueType or ValueData.

Example

Registry ConfigureRegistry
{
    Ensure    = 'Absent'
    Key       = 'HKEY_LOCAL_MACHINE\SOFTWARE\SomeKey'
    ValueName = ''
}

PSDrives also work:

Registry ConfigureRegistry
{
    Ensure    = 'Absent'
    Key       = 'HKLM:\SOFTWARE\SomeKey'
    ValueName = ''
}