为一个服务应用程序提供注册表项读取权限

时间:2017-05-01 17:37:38

标签: windows windows-services uac

我正在编写Windows服务偶尔查询HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ NetworkList \ Profiles中的数据,以检测系统是否已更改网络(例如,它是笔记本电脑并连接到新的Wifi热点)。

服务必须作为LocalService帐户运行,因此没有管理权限,但是此特定密钥及其子密钥的读取权限适用于管理员,因此LocalService帐户无法读取它们。

我想手动将我的服务的读取权限添加到密钥,但仅限于该服务。我可以授予“本地服务”帐户读取权限,但这将允许所有LocalService Services读取密钥,这是我不想要的。有没有办法做到这一点,也许为单个应用程序创建一个用户帐户?

1 个答案:

答案 0 :(得分:2)

Vista添加了Service Isolation,它可以assign一个服务SID进程。然后,您可以将此SID添加到注册表项的ACL中。