我已經繼承了一段古老的代碼(我的意思是有很多未經批准的bug修復比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獲取此信息時。
任何一個幫助都會很好。