2012-01-24 8 views
1

私たちのアプリケーションにはWix 3.5を使って作成したインストーラがあります。私たちはアプリケーションのユーザーにCommon Application Data Folderに既存のデータを持ち、そのユーザーがPC上で管理者になる必要がなくなるようにアクセス許可を「修正」したいと考えています。Wixインストーラを使用して既存のフォルダにファイルアクセス権を再帰的に適用するにはどうすればよいですか?

インストール中に私は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を適用するには何ができますか?

答えて

0

通常、インストーラは新しいフォルダとファイルが継承するようにアクセス許可を作成して設定します。あなたの状況では、構造を再帰的に呼び出すためにcaclsなどを呼び出すためのカスタムアクションを記述し、アクセス許可を適用する必要があります。私の知る限りこれを行うには、MSIやWiXの機能が組み込まれていません。

+1

私は、WiXであるVooDooの黒い魔法の袋から、知恵の未知のナゲットがほしいと思っていました。 –

関連する問題