Вы действительно пытаетесь изменить настройки на удаленном компьютере? Я полагаю, это может работать, если пользователь является пользователем домена.
В любом случае следует помнить, что каждый раз, когда вы вызываете OpenSubKey, вы получаете новый экземпляр объекта RegistyKey, и каждый из них должен быть утилизирован. В противном случае вы начнете пропускать дескрипторы реестра из-за ошибки финализации в фреймворке (возможно, это исправлено, но я не отвечаю).
Кроме того, нет необходимости открывать каждый узел ключа отдельно (разве это связано с удаленно открытыми ключами?). Я бы предложил изменить код внутри блока try следующим образом:
using ( RegistryKey remoteUserKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.CurrentUser, machinename) )
using ( RegistryKey remoteKey = remoteUserKey.OpenSubKey(@"Software\Adobe\Acrobat Reader\9.0\ethan") )
{
remoteKey.SetValue("Test", 1);
return "Success";
}
Если вам не нужно изменять это удаленно, удалите первые две строки и используйте вместо этого:
using ( RegistryKey key = Registry.LocalUser.OpenSubKey(@"Software\Adobe\Acrobat Reader\9.0\ethan") )