Я унаследовал старый сериал (сериал, я имею в виду бородавчатый с большим количеством недокументированных исправлений ошибок, чем WTF-y), и есть одна часть, которая дает мне немного проблем , Вот как он подключается к удаленному реестру, чтобы получить добавления/удаления программ ключ:Подключение к реестру удаленно и получение исключений
try
{
remoteKey = RegistryKey.OpenRemoteBaseKey(
RegistryHive.LocalMachine, addr.Value).OpenSubKey(
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall");
return 1;
}
catch (IOException e)
{
IOException myexception = e;
//Console.WriteLine("{0}: {1}: {2}",
// e.GetType().Name, e.Message, addr.Value);
return 2;
}
catch (UnauthorizedAccessException e)
{
UnauthorizedAccessException myexception = e;
//Console.WriteLine("{0}: {1}: {2}",
// e.GetType().Name, e.Message, addr.Value);
return 3;
}
catch (System.Security.SecurityException e)
{
System.Security.SecurityException myexception = e;
//Console.WriteLine("{0}: {1}: {2}",
// e.GetType().Name, e.Message, addr.Value);
return 4;
}
Теперь у меня есть две проблемы:
Я знаю, почему IOException - если это не-Windows, машина это бросит это. Разница между UnauthorizedAccessException и SecurityException я не так понятна. У кого-нибудь есть идеи?
Весь этот код был разработан прежде, чем кто-либо подумал, что вы не можете использовать свой локальный вход для всего. В любом случае я не могу понять, как вы выполняете аутентификацию для удаленного подключения к реестру, и этот код выглядит так, как будто он используется только в одном случае, когда он не может получить эту информацию от WMI.
Любая помощь с этим будет замечательной.