我知道有几次关于远程注册表访问的讨论,但我找不到任何关于如何实现它的好例子。
我确实发现http://www.codeproject.com/KB/cs/cpimpersonation1.aspx似乎有代码可以做我想要的,但是,这似乎是连接到应用程序运行的同一台PC。我想要的是连接到不同域中的远程PC。
我一直在做一些阅读,但无法弄清楚如何修改此代码。
如何使用代码连接到远程PC,我们将不胜感激。
答案 0 :(得分:4)
您可以从这篇文章开始:RegistryKey.OpenRemoteBaseKey。 但是,您应该允许您的用户帐户在此远程计算机上使用注册表操作! 模仿并不是解决任务的最佳方式。 LogonUser在调用它的机器上创建新的安全上下文。这意味着具有访问远程注册表权限的用户也应具有本地登录权限。这是非常强烈的要求。
我建议替代解决方案: 在访问注册表之前,您可以使用WNetAddConnection2使用具有访问注册表的适当权限的用户凭据在远程计算机上创建与IPC $共享的连接。完成注册表工作后,不要忘记取消连接。