質問

私が継承されたhoary古い作品のコードによるhoaryというのは、warty多くの非正規滞在のバグ修正より作-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.

自うか。

役に立ちましたか?

解決 3

ジョンズポインタにMSDNの答えは何UnauthorizedAccessExceptionがでのみ表示されへのアクセスを行なったとき、キーを遠隔利用OpenRemoteBaseKey.

私たちはとても少し注意変更についてのセキュリティコンテキストをコンピュータがその場で発音を確認することが考 こちらの 利用でWMIるまでの多くの重いものを持ち上げるアクセスするレジストリかがうことです。

他のヒント

ほとんどの場合に使用偽装の変更、資格のスレッドをリモートレジストリ。こちらをご参照linky 用している情報の一部にMSDN.基本的には、スレッドはセキュリティコンテキストに使用されるに管理ポリシーに発信します。

による MSDN,UnauthorizedAccessExceptionは スローされない によるOpenSubKey.私が生まれる前のことですけど必要ありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top