2

我正在尝试为 nsis 中的注册表提供完全许可,但它不起作用。下面是一个示例代码。

WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Demo\" "mydemo" "abc"
AccessControl::GrantOnRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Demo\" "PC116\Users" "FullAccess" 

我尝试在 Windows XP PC 上进行操作。我尝试使用 REGINI 使用 vbscript,它为用户“Everyone”提供完全权限。所以任何人都可以帮助我解决这个问题。

4

1 回答 1

4

The AccessControl plugin only supports the short HKEY names.

!include LogicLib.nsh
!define StringSID_BUILTIN_Users S-1-5-32-545

WriteRegStr HKLM "SOFTWARE\Demo\" "mydemo" "abc"
AccessControl::GrantOnRegKey HKLM "SOFTWARE\Demo\" "(${StringSID_BUILTIN_Users})" "FullAccess"
pop $0
${If} $0 != "ok"
    pop $1
    DetailPrint $0>$1 ; In your case: "error>Bad root key name (HKEY_LOCAL_MACHINE)"
${EndIf}
于 2013-04-15T16:11:19.777 回答