gpt4 book ai didi

registry - 使用 NSIS 安装程序授予注册表项权限的有效方法是什么?

转载 作者:行者123 更新时间:2023-12-01 01:11:15 27 4
gpt4 key购买 nike

我正在尝试使用 AccessControl plugin在 NSIS 中设置注册表项的权限。它不工作。安装程序运行后,所有用户组没有完全控制。

我在下面创建了一个示例。这里有什么问题吗?是否有另一种机制来完成同样的事情?我也尝试使用 numeric form每个人组 S-1-1-0 我还没有尝试使用“每个人”。

  ; Create the key for local machine settings (could be a 32 bit or 64 bit location)
SetRegView 32
WriteRegStr HKLM "SOFTWARE\MyApp" "x" "y"
SetRegView 64
WriteRegStr HKLM "SOFTWARE\MyApp" "x" "y"

; Give all authenticated users (BUILTIN\Users) full access on the registry key HKEY_LOCAL_MACHINE\Software\MyApp
SetRegView 32
AccessControl::GrantOnRegKey HKLM "SOFTWARE\MyApp" "BUILTIN\USERS" "FullAccess"
SetRegView 64
AccessControl::GrantOnRegKey HKLM "SOFTWARE\MyApp" "BUILTIN\USERS" "FullAccess"

起初,我并没有理会这两个注册表 View 。但是经过实验,为了排除 WOW6432Node 的问题,我将命令加倍。我希望没有必要。

最佳答案

在插件中使用 SID 时,语法为 (S-1-....) :

WriteRegStr HKCU "Software\test" hello world
AccessControl::GrantOnRegKey HKCU "Software\test" "(S-1-1-0)" "FullAccess" ; Everyone

您可以找到 list of SIDs here .

您可以使用 AccessControl::NameToSid将名称转换为其 SID,但这样做可能会在非英语系统上产生本地化问题:
AccessControl::NameToSid "BUILTIN\USERS"
Pop $0
StrCmp $0 "error" +2
AccessControl::GrantOnRegKey HKCU "Software\test" "($0)" "FullAccess"

更改所有者时,您还可以使用 Machine\Username句法。

别名如 (BU)仅适用于 unicode 版本并且还依赖于 Windows 版本,因此最好坚持使用 SID。

关于registry - 使用 NSIS 安装程序授予注册表项权限的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15389726/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com