繁体   English   中英

当其他用户时,远程注册表始终为null

[英]Remote registry always null when different user

我正在创建一个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。

有什么想法吗?

您不能通过远程注册表读取HKEY_CURRENT_USER,原因很简单:从远程注册表服务的角度来看,没有“当前用户”。

例如,是否为:

  • 如果您已登录,将看到注册表项? (但您不是!)
  • 当前登录用户的注册表项(如果没有,怎么办?如果有多个,怎么办?)

它不能仅获取注册表配置单元并加载它,因为您可能没有漫游配置文件。 它不想只创建一个注册表,以便您可以查看注册表。

因此:HKEY_CURRENT_USER不为远程注册表服务返回任何内容。 如果您对特定用户感兴趣,则可以在HKEY_USERS下查看。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM