更改注册表值权限命令行或NSIS

时间:2016-09-13 01:55:05

标签: windows cmd permissions registry nsis

我正在尝试授予普通用户对我创建的注册表值的写访问权。

他们无法对父密钥进行写访问。

通过regedit,这很简单:  1.选择值  2.编辑权限(相应地更改)  好的

但是我很难通过命令行或NSIS来做同样的事情。

  • 命令regini有一个非常好的方法来更改key权限。如果这有助于更改value权限,我可以轻松地将其编入我的安装程序。
  • NSIS插件AccessControl提供了一种非常好的方法来更改key权限,但没有更改value权限的证据。

在这种情况下,keyHKLM\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项目中。例如安装用户必须运行它,因此解决方案需要合理的可移植/可分发。

1 个答案:

答案 0 :(得分:0)

正如@Noodles在上面的评论中提到的那样,无法更改value权限,因此不存在任何解决方案。注册表编辑器实际上提供了key权限,通过查看Window标题可以观察到这些权限,这对于这个特定的解决方案是不可取的。