【问题标题】:How to install AccessControl NSIS plugin? and grant full access to a subfolder?如何安装 AccessControl NSIS 插件?并授予对子文件夹的完全访问权限?
【发布时间】:2013-11-18 13:00:29
【问题描述】:

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

我尝试了这段代码,它可以编译,但我认为它没有做任何事情.. 或者我使用了错误的命令。我需要向我的配置文件夹授予 INSTDIR 中的读、写权限。我尝试使用 INSTDIR\config 和 INSTDIR。但目前没有任何效果。可能没有包含插件。

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

【问题讨论】:

  • 让所有用户完全访问 $instdir 并不是一个好主意...
  • 完全访问是为了测试,我只是想授予读写权限,我做到了。

标签: windows plugins installation nsis


【解决方案1】:

打算对上述答案添加评论,但系统不让我这样做。关于 NSIS 3.0+ 默认文件夹位置的说明不起作用。为了修复它,我将文件复制到:

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

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

【讨论】:

    【解决方案2】:

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

    • 插件的核心在Plugins目录下的dll文件中(unicode/plugins包含插件的unicode版本,适合NSIS 3.0+的unicode风格)
    • Docs 目录包含插件文档
    • Contrib 目录包含插件源代码,如果您想修改和重新构建插件,这些代码很有用。在正常的 nsis 使用中不需要它。

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

    # 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 2011-08-01
      • 2016-01-18
      相关资源
      最近更新 更多