无法在非特权应用中实现跨用户注册表访问(通过本地RPC)。情况如下:
目前,应用程序调用RPC服务器,该服务器将HKEY打开到请求的路径,然后使用DuplicateHandle
将其传回应用程序。
classes
root和每用户classes
root的联合)的内容。 LocalSystem(RPC服务运行的内容)。到目前为止我尝试过:
DuplicateHandle
)传递给RPC服务器而不是预定义的密钥。
RegOpenUserClassesRoot
等功能(无法获取其他用户的令牌)或RegOpenCurrentUser
(应用无法冒充其他用户)。RegOpenUserClassesRoot
和RegOpenCurrentUser
,并将这些HKEY传递回应用程序(通过DuplicateHandle
,以及对所有HKEY的处理方式)。然后,应用程序存储这些返回的密钥,并在想要打开这些密钥的子密钥时将它们复制到服务器。这也不起作用(导致访问被拒绝错误)。我可以尝试的事情:
DuplicateHandle
循环(可能成为问题) , 不知何故...)。似乎不太可能真正解决问题,但我还没有尝试过。任何有这方面经验的人都知道我做错了什么?