我正在创建一个c#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。
有什么想法吗?
答案 0 :(得分:1)
您无法通过远程注册表读取HKEY_CURRENT_USER,原因很简单,从远程注册表服务的角度来看,没有“当前用户”。
例如,它会是:
它不能只是获取您的注册表配置单元并加载它,因为您可能没有漫游配置文件。它不想创建一个,所以你可以看看注册表。
所以:HKEY_CURRENT_USER不会返回任何远程注册表服务。如果您对特定用户感兴趣,可以查看HKEY_USERS。