0

Вот код, который я использую, чтобы достичь удаленного реестра:в C#, как я могу получить доступ к удаленному реестру с конкретным пользователем?

private void getAllOdbc(string pc) 
    { 
     RegistryKey regKey; 

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

Я хотел бы получить доступ к удаленному реестру с конкретным пользователем, который имеет разрешение на удаленный компьютер.

Когда я запускаю это приложение для форм Windows с моего собственного компьютера, он работает, потому что я уже вошел в систему с этим конкретным пользователем, у которого есть разрешение на удаленном компьютере, но мне придется использовать это приложение на других компьютерах, которые не являются вошел в систему с этим конкретным пользователем.

Поэтому я хотел бы вставить в свой код что-то, что сообщит моему приложению о доступе к удаленному реестру с этим конкретным пользователем, например, любой может использовать мое приложение без регистрации этого конкретного пользователя.

Я уже разрешил службы удаленного реестра на удаленном компьютере.

+1

[Здесь -RegistryKey-OpenRemoteBaseKey-problem-] (http://www.codeproject.com/Messages/2511561/RegistryKey-OpenRemoteBaseKey-problem.aspx) существует возможное решение, которое не использует 'OpenRemoteBaseKey'. Надеюсь, поможет – Steve

ответ

0

Скорее всего, вам придется иметь свой поток impersonate the user, прежде чем вы сможете открыть свои собственные данные реестра на удаленном хосте.