繁体   English   中英

如何安装AccessControl NSIS插件? 并授予对子文件夹的完全访问权限?

[英]How to install AccessControl NSIS plugin? and grant full access to a subfolder?

我正在做它在论坛上所说的内容,但无法弄清问题在哪里。 我下载了.zip并将其解压缩。 除了Docs之外还有4个文件夹(Contrib,Docs,Plugins,Unicode),其他文件放在哪里? 从AccessControl / Plugins我把.dll放到我的NSIS / Plugins文件夹中,其他的.dll文件。 但是其他两个文件夹不包含要放入NSIS / Include的任何.nsh或.nsi文件。 问题出在哪儿 ? 我正在使用HM NIS Edit,当我尝试编译它时说无效命令。

我尝试了这个代码,它编译但我不认为它做了什么..或者我可能使用了错误的命令。 我需要给我的配置文件夹读取,写入INSTDIR中的权限。 我用INSTDIR \\ config和INSTDIR试了一下。 但目前没有任何作用。 也许包含插件。

System::Call 'AccesControl.dll::GrantOnFile (t ."$INSTDIR",t .""(S-1-5-32-545)",t ."FullAccess")'

本来要对上面的答案添加评论,但系统不会让我。 关于NSIS 3.0+的说明默认文件夹位置不起作用。 为了解决这个问题,我将文件复制到:

AccessControl.zip\Plugins\AccessControl.dll --> NSIS\Plugins\x86-ansi

AccessControl.zip\Unicode\Plugins\AccessControl.dll --> NSIS\Plugins\x86-unicode

您可以在NSIS目录的根目录下解压缩插件zip,或者至少,您需要将插件dll放入NSIS plugins目录(或者如果您将其包含在其中的任何目录中!addplugindir

  • 该插件的核心位于Plugins目录中的dll文件中( unicode/plugins包含适用于NSIS 3.0+的unicode风格的插件的unicode版本)
  • Docs目录包含插件文档
  • 如果要修改插件并重建插件, Contrib目录包含有用的插件源代码。 在正常使用中不需要它。

调用nsis插件的正确方法不是通过系统插件:你需要直接调用nsis脚本中的插件方法,如插件页面所示

# Make the directory "$INSTDIR\database" read write accessible by all users
AccessControl::GrantOnFile "$INSTDIR\database" "(BU)" "GenericRead + GenericWrite"

或者来自我的一些代码

AccessControl::GrantOnFile `${somePath}` `(S-1-5-32-545)` `${someAccess}` ;(S-1-5-32-545) is local users GUID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM