Не удается записать ключ реестра, получив UnauthorizedAccessException

У меня есть служба Windows, пытающаяся записать в раздел реестра LOCAL_MACHINE

Ключ создается как часть пакета установщика Windows, который управляет службой Windows и автономным окном управления.

В окне управления можно прочитать и записать ключ реестра, но я не могу записать его в раздел реестра, даже если я даю полные разрешения для ЛОКАЛЬНОЙ СЛУЖБЫ.

Это код, который генерирует исключение:

private void updateLocalRegistryVersion(Double newVersion)
{
    RegistryKey rk = Registry.LocalMachine;
    RegistryKey sk = rk.OpenSubKey(@"Software\CompanyName\Monitoring\Values");

    sk.SetValue("scriptversion", newVersion.ToString());
}

Любые предложения?

Ответ 1

RegistryKey.OpenSubKey(string) не открывает ключ для записи. Попробуйте использовать перегрузку OpenSubKey(string, bool), чтобы указать, что вы хотите, чтобы ключ был доступен для записи.