如何使用Wix安装程序递归地将文件权限应用于现有文件夹?

时间:2012-01-24 21:20:03

标签: file permissions wix

我们为我们的应用程序使用Wix 3.5创建了一个安装程序。我们的应用程序用户在Common Application Data Folder中有现有数据,我们希望“修复”这些权限,以便我们的用户不再需要成为他们PC上的管理员。

因此,在安装过程中,我将以下部分添加到Wix项目中,以便修改我们的文件夹权限。这适用于新用户,但这些文件夹中的任何现有文件仍保留旧ACL,不允许非管理员用户读取/修改它们。

  <Directory Id="CommonAppDataFolder">
    <Directory Id="CommonAppOurCompany" Name="OurCompany">
      <Directory Id="MODELLIBPATH" Name="Library">
        <Component Id="LibraryUserPermissions" Guid="12BC499B-4601-449F-9515-4C58A8F29603">
          <CreateFolder>
            <util:PermissionEx GenericRead="yes" GenericWrite="yes" GenericExecute="yes" Delete="yes" DeleteChild="yes" User="Users" Domain="[MachineName]"/>
          </CreateFolder>
        </Component>
      </Directory>
    </Directory>
  </Directory>

如何以递归方式将新ACL应用于文件夹及其子文件夹中的每个文件,而不删除或修改文件(安全设置除外)?

1 个答案:

答案 0 :(得分:0)

通常,安装程序会创建并设置权限,以便新的文件夹和文件将继承。在您的情况下,您需要编写一个自定义操作来调用cacls或类似的来递归结构并应用权限。据我所知,在MSI或WiX中没有内置功能。<​​/ p>

相关问题