写入用户策略注册表项

时间:2013-06-11 17:13:52

标签: windows winapi registry

我希望能够将值写入位于HKEY_CURRENT_USER \ Software \ Policies \中的用户策略密钥 - 但此位置只能由管理员用户写入。

我有一个以用户身份运行的应用程序和我控制的系统上的服务。我希望应用程序告诉服务它登录的用户和服务然后进入并写入该用户策略部分。

最好的方法是什么?冒充用户?我可以只是克隆用户令牌并将其发送到服务,还是有办法找到从HKEY_USERS到用户策略部分的完整路径?

非常感谢。

2 个答案:

答案 0 :(得分:1)

用户个人资料在HKEY_USERS内由用户的“安全标识符”进行整理。可以通过在ProfileImagePath内迭代HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList个密钥来获取此安全标识符。 (用户帐户以S-1-5-21开头。这会将用户名与安全标识符相关联。然后,您可以使用获取的安全标识符从HKEY_USERS访问用户。

答案 1 :(得分:0)

最后我做了什么:

  1. 在应用程序中查找当前用户SID(OpenProcessToken,GetTokenInformation,ConvertSidToStringSid)
  2. 将字符串SID传递给服务
  3. 更改HKEY_USERS {SID} \ Software \ Policies