更改注册表值权限命令行或 NSIS
Change registry value permission command line or NSIS
我正在尝试授予普通用户对我创建的注册表值的写入权限。
他们不能对父密钥具有写入权限。
通过regedit
,很简单:
1. Select 值
2. 编辑权限(相应更改)
3. 好
但是我很难通过命令行或 NSIS 做同样的事情。
- 命令
regini
有一个非常好的方法来更改 key
权限。如果这对更改 value
权限有效,我可以轻松地将其编写到我的安装程序中。
- NSIS 插件
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 项目中。例如安装用户必须 运行 这个,所以解决方案需要合理 portable/distributable.
正如@Noodles 在上面的评论中提到的,无法更改 value
权限,因此不存在解决方案。注册表编辑器实际上提供了 key
权限,通过查看 Window 标题可以观察到这一点,这对于这个特定的解决方案来说是不需要的。
我正在尝试授予普通用户对我创建的注册表值的写入权限。
他们不能对父密钥具有写入权限。
通过regedit
,很简单:
1. Select 值
2. 编辑权限(相应更改)
3. 好
但是我很难通过命令行或 NSIS 做同样的事情。
- 命令
regini
有一个非常好的方法来更改key
权限。如果这对更改value
权限有效,我可以轻松地将其编写到我的安装程序中。 - NSIS 插件
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 项目中。例如安装用户必须 运行 这个,所以解决方案需要合理 portable/distributable.
正如@Noodles 在上面的评论中提到的,无法更改 value
权限,因此不存在解决方案。注册表编辑器实际上提供了 key
权限,通过查看 Window 标题可以观察到这一点,这对于这个特定的解决方案来说是不需要的。