2

リモート コンピューターでレジストリを読み取る ac# Windows フォーム アプリケーションを作成しています。

RegistryKey regKey = RegistryKey
                        .OpenRemoteBaseKey(RegistryHive.CurrentUser, pc, RegistryView.Registry64)
                        .OpenSubKey("SOFTWARE\\ODBC\\ODBC.INI\\ODBC Data Sources");

USER1 からアプリケーションを実行すると、リモート コンピューターは常に USER1 でログインしているため機能します。

USER2 で実行すると、何があっても、regKey は常に NULL になります。

リモート コンピューターのコンポーネント サービスで、次のサービスを許可しました: REMOTE REGISTRY。

アイデアはありますか?

4

1 に答える 1

1

リモートレジストリサービスの観点から「現在のユーザー」が存在しないという単純な理由により、リモートレジストリを介して HKEY_CURRENT_USER を読み取ることはできません。

たとえば、次のようになります。

  • ログオンした場合に表示されるレジストリ キーは? (しかし、あなたはそうではありません!)
  • 現在ログオンしているユーザーのレジストリ キー (存在しない場合は? 複数の場合は?)

移動プロファイルがない可能性があるため、レジストリ ハイブをフェッチしてロードすることはできません。レジストリを確認できるようにするためだけに作成する必要はありません。

したがって、HKEY_CURRENT_USER は、リモート レジストリ サービスに対して何も返しません。特定のユーザーに興味がある場合は、HKEY_USERS の下を見ることができます。

于 2012-06-18T20:26:46.393 に答える