【问题标题】:InstallShield - Set Directory Permissions To ALL UsersInstallShield - 为所有用户设置目录权限
【发布时间】:2016-03-31 20:24:16
【问题描述】:

我在 Visual Studio 2015 中使用 Install Shield 2015 Limited Edition。

我正在尝试设置我的应用程序安装到的目录的权限,以允许所有用户:读取和执行、列出文件夹内容、读取、写入访问权限。

我无法使用项目助手找到执行此操作的位置。

我查看了 .ISL 并且可以看到

<col key="yes" def="s72">Directory</col>
<col def="S72">Directory_Parent</col>
<col def="l255">DefaultDir</col>
<col def="S255">ISDescription</col>
<col def="I4">ISAttributes</col>
<col def="S255">ISFolderName</col>

我假设它是 I4 属性,但不确定要为它设置什么值。

也许我对此研究过多,有一个更简单的方法。

谢谢!

【问题讨论】:

  • 假设您的应用程序安装在 Program Files 文件夹下,您不应为其添加写入权限。这是一个很大的安全禁忌。而是修复应用程序以写入其他目录。
  • @MichaelUrman 为什么这是个坏主意?你能解释一下或提供一个解释的链接吗?谢谢!

标签: c# visual-studio visual-studio-2015 windows-installer installshield


【解决方案1】:

属性是指标准文件系统属性(只读、隐藏等)。您要查找的是权限设置。

我对LE版不熟悉所以不知道能不能用图形界面(InstallShield完整版可以like this

但您始终可以执行以下操作: 在您的项目文件中找到 ISLockPermissions 表并像这样为您的文件夹添加一行(YOURFOLDER 指的是“目录”表中的文件夹条目):

    <table name="ISLockPermissions">
    <col key="yes" def="s72">LockObject</col>
    <col key="yes" def="s32">Table</col>
    <col key="yes" def="S255">Domain</col>
    <col key="yes" def="s255">User</col>
    <col def="I4">Permission</col>
    <col def="I4">Attributes</col>
    <row><td>YOURFOLDER</td><td>CreateFolder</td><td>[%USERDOMAIN]</td><td>Users</td><td>131519</td><td>0</td></row>
</table>

131519 是您请求的组合权限。

编辑:如果它不适用于 LE,另一种方法是添加自定义操作,使用 icacls 命令设置权限。

【讨论】:

  • 这正是我想要的!谢谢!
猜你喜欢
  • 2012-02-15
  • 1970-01-01
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-27
  • 2014-05-04
相关资源
最近更新 更多