我正在尝试授予普通用户对我创建的注册表值的写访问权。
他们无法对父密钥进行写访问。
通过regedit
,这很简单:
1.选择值
2.编辑权限(相应地更改)
好的
但是我很难通过命令行或NSIS来做同样的事情。
regini
有一个非常好的方法来更改key
权限。如果这有助于更改value
权限,我可以轻松地将其编入我的安装程序。AccessControl
提供了一种非常好的方法来更改key
权限,但没有更改value
权限的证据。在这种情况下,key
为HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
,我不会修改其权限。
如何更改仅我创建的值的权限?我如何能够regedit
允许,但通过命令行或NSIS静默?
值类似于:
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"My Value"="C:\Please\Let\Me\Change\Permissions\Sadface.exe"
请注意,这适用于脚本化软件安装程序,其构建脚本将在Mac,Linux和Windows上运行(NSIS允许此操作)。捆绑特殊dlls
或Windows可执行文件的建议是可以的,只要它们在安装时很容易捆绑和链接。除非脚印很小,否则不能接受包括Windows SDK等工具在内的解决方案,只要DLL可以轻松捆绑并包含在LGPL 2.1项目中。例如安装用户必须运行它,因此解决方案需要合理的可移植/可分发。
答案 0 :(得分:0)
正如@Noodles在上面的评论中提到的那样,无法更改value
权限,因此不存在任何解决方案。注册表编辑器实际上提供了key
权限,通过查看Window标题可以观察到这些权限,这对于这个特定的解决方案是不可取的。