C # Registry SetValue zgłasza UnauthorizedAccessException

Zanim spróbujesz odpowiedzieć na to, „Zrób szybkie wyszukiwanie w Google”. Chciałbym podkreślić, że już mam. Oto sytuacja, mam następującą metodę, która próbuje zmodyfikować wartość klucza rejestru. Problem, który otrzymuję, polega na tym, że po wykonaniu zgłasza wyjątek UnauthorizedAccessExceptionmimo że otworzyłem klucz jako zapisywalny. Używam Visual Studio jako administratora, a nawet próbowałem zrobić mały plik .exe z plikiem manifestu zmuszającym go do działania jako administrator, który wykona kod bez powodzenia. Klucz już istnieje, nie próbuje przejść do metody CreateKey. Oto blok kodu.

Path = "S-1-5-21-1644491937-1078145449-682003330-5490\Software\Microsoft\Windows\CurrentVersion\Policies\System"
Key = "DisableTaskMgr"
NewValue = 1

public OperationResult ModifyKey()
    {
        OperationResult result = new OperationResult();

        if (!Path.IsNullOrEmptyTrim())
        {
            if (!Key.IsNullOrEmptyTrim())
            {
                try
                {
                    var key = Microsoft.Win32.Registry.Users.OpenSubKey(Path, true);

                    if (key != null)
                    {
                        key.SetValue(Key, NewValue);

                        key.Close();
                    }
                    else
                    {
                        result = CreateKey();
                    }
                }
                catch (Exception ex)
                {
                    result.SetFail("Error accessing registry", ex);
                }
            }
            else
            {
                result.SetFail("Registry key was null");
            }
        }
        else
        {
            result.SetFail("Registry path was null");
        }

        return result;
    }

Czy muszę ręcznie przechodzić w dół drzewa rejestru, ustawiając każde wywołanie OpenSubKey na zapisywalne? Próbowałem tego również, wciąż rzucałem ten sam błąd ...

questionAnswers(6)

yourAnswerToTheQuestion