C # Registry SetValue lança UnauthorizedAccessException
Antes de tentar responder, "Faça uma pesquisa rápida no Google". Eu gostaria de salientar que eu já tenho. Aqui está a situação, eu tenho o seguinte método que tenta modificar um valor de chave do Registro. O problema que estou tendo é que, quando executado, ele lança uma UnauthorizedAccessExceptionmesmo que eu tenha aberto a chave como gravável. Estou executando o Visual Studio como administrador e até tentei fazer um pequeno .exe com um arquivo de manifesto forçando-o a rodar como admin que executaria o código sem sorte. A chave já existe, não tenta entrar no método CreateKey. Aqui está o bloco de código.
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;
}
Eu tenho que percorrer manualmente a árvore de registro definindo cada chamada OpenSubKey para gravável? Eu tentei isso também, ainda jogou o mesmo erro ...