Назад | Перейти на главную страницу

DSC-Resource: Как удалить раздел реестра (не значение)?

Я знаю, что могу гарантировать наличие определенного значения реестра, используя следующий блок сценария:

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

А как удалить ключ реестра SomeKey? Если я только изменю ключевое слово Ensure = "Present" к Ensure = "Absent" он оставит ключ SomeKey...

Это возможно, как задокументировано:

Чтобы добавить или удалить раздел реестра, укажите [ValueName] как пустую строку без указания ValueType или ValueData.

пример

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

PSDrives тоже работают:

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

Теперь это возможно, см. Ответ VertigoRay.

На данный момент это невозможно с Registry ресурс, как вы обнаружили.

Вы можете использовать Script ресурс или вместо этого напишите полный настраиваемый ресурс.