Как вы рекурсивно применяете права доступа к файлам к существующей папке с помощью установщика Wix? - PullRequest
1 голос
/ 25 января 2012

У нас есть установщик, созданный с использованием Wix 3.5 для нашего приложения. У нас есть пользователи нашего приложения, у которых есть данные в общей папке данных приложения, для которых мы хотели бы «исправить» разрешения, чтобы нашим пользователям больше не нужно было быть администраторами на своих ПК.

Итак, во время установки я добавил следующий раздел в проект 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 голосов
/ 25 января 2012

Обычно установщик создает и устанавливает разрешения, чтобы наследовать новые папки и файлы.В вашей ситуации вам нужно написать пользовательское действие для вызова cacls или аналогичного, чтобы рекурсивно структурировать структуру и применить разрешения.В MSI или WiX нет встроенной возможности сделать это, насколько мне известно.

...