WiXツールセットを使用してProgramData内の既存のフォルダーとファイルのアクセス許可を設定します

日没

WIXツールセット(3.10.3)を使用してインストールパッケージをビルドするプロジェクトを継承しました。アプリケーションは、共有データをダウンロードしてに保存しますc:\ProgramData\Vendor\ApplicationNameただし、このパスは、インストール中に作成されるのではなく、パスが初めて要求されるたびに、アプリケーション自体の実行中に作成されます。

複数のWindowsユーザーがアプリケーションを使用するときに発生するアクセス許可関連の問題を発見しました。アプリケーションがバックエンドから新しいデータファイルをダウンロードするときはいつでも、それらのファイルの「フルコントロール」権限を取得するのは現在のWindowsユーザーです。他の誰かが別のWindowsアカウントでログインすると、それらのファイルへの読み取り権限しかありません。また、これらの混合アクセス許可は、アプリケーションがローカルファイルをバックエンドと同期させようとするときに問題を引き起こします。

アプリケーションは昇格された特権を必要としないため、インストール中にこれを修正する必要があります。最初のステップとして、c:\ProgramData\Vendor\インストール中にフォルダーが作成され、。を使用して正しいアクセス許可を取得することを確認しました<util:PermissionEx User="Everyone" GenericAll="yes" />これらの権限は継承されるため、新規インストールを行うすべてのユーザーの問題が解決されます。

問題は、アクセス許可がインストール作成されたフォルダー/ファイルによってのみ継承されることです。これは、以前のバージョンからアップグレードしたユーザーには、混合アクセス許可が残ったデータファイルが残っていることを意味します。したがって、インストール中に既存のすべてのフォルダーとファイルが新しいアクセス許可を取得することを確認する必要があります。どうすればこれを達成できますか?

日没

わかりました、これは私がそれを解決した方法です。それが将来誰かを助けることができることを願っています。

まず、MSIのwxsファイルに次のものを追加しました。

<Directory Id="CommonAppDataFolder">
    <Directory Id="ProgramDataVendorFolder" Name="MyVendor">
        <!--This will create the \ProgramData\MyVendor\MyProductName\ folder. -->
        <Directory Id="ProgramDataAppFolder" Name="MyProductName" />
    </Directory>
</Directory>

<DirectoryRef Id="ProgramDataAppFolder">
<Component Id="CmpCreateCommonAppDataFolderWithPermissions" Guid="13ae94b7-9ef5-4181-bfa9-933844a13418" Permanent="yes">
  <CreateFolder>
    <!--This will ensure that everyone gets full permissions to the folder that we create in the ProgramData folder. -->
    <util:PermissionEx User="Everyone" GenericAll="yes" />
  </CreateFolder>
</Component>  
</DirectoryRef> 

そしてそれを含めました:

<Feature Id="ProductFeature" Title="$(var.ProductName)" Level="1">
    <!--Add folder -->
    <ComponentRef Id="CmpCreateCommonAppDataFolderWithPermissions" />
</Feature>

これらの3つのことにより、フォルダーが既に存在する場合でも、すべてのユーザーがProgramData内のフォルダーに完全にアクセスできるようになりました。

ただし、以前のアクセス許可の問題のためにファイルの仮想化がすでにアクティブになっている場合は、アクセス許可を変更するだけでは不十分です。ファイルの仮想化をオフにするために、次のコマンドを使用して実行可能ファイルにapp.manifestを追加しました。

<requestedExecutionLevel  level="asInvoker" uiAccess="false" />

以前に使用したVirtualStoreに重要なファイルが含まれている場合、それらはProgramDataフォルダーに自動的に表示されないことに注意してください。

ファイル/レジストリの仮想化に関する詳細については、https//blogs.technet.microsoft.com/mrsnrub/2010/08/11/uac-virtualization-allowing-standard-users-to-update-a-system-を参照してください。保護地域/

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Macを使用してNASドライブ上のすべてのファイルとフォルダーにアクセス許可を設定する方法

分類Dev

/ var / www /内のフォルダーとファイルのアクセス許可を変更しますか?

分類Dev

/ var / www /内のフォルダーとファイルのアクセス許可を変更しますか?

分類Dev

Wix:フォルダーのアクセス許可を設定するCustomAction

分類Dev

YAMLファイルを使用してElasticBeanstalkでフォルダーのアクセス許可を設定するにはどうすればよいですか?

分類Dev

icacls.exeを使用して、ドメインユーザーに特別なフォルダーのアクセス許可を設定します

分類Dev

SFTPのスタートアップフォルダを/ home / username以外に設定すると、アクセス許可の問題が発生します

分類Dev

setfacl を使用して、ファイルとフォルダーに異なるデフォルトのアクセス許可を設定するにはどうすればよいですか?

分類Dev

NTFSセキュリティアクセス許可を設定して、サブフォルダー/ファイルの変更を許可しますが、親は許可しません

分類Dev

Linuxの場合-クライアントアプリの呼び出しとダウンロードファイルのファイルを保存するフォルダーのアクセス許可を設定する方法

分類Dev

書き込みとしてアプリ/ストレージ内のフォルダーにアクセスするためのWebサーバーのアクセス許可を設定します

分類Dev

ディレクトリと子フォルダのアクセス許可を設定します

分類Dev

C#を使用してIISAppPoolユーザーにファイルのアクセス許可をリモートで設定します

分類Dev

WordPressとWinSCPのアクセス許可:ファイルのアップロードを取得しています...は成功しましたが、アクセス許可やタイムスタンプの設定中にエラーが発生しました

分類Dev

フォルダーのアクセス許可を更新して、ユーザーにscpファイルをそこに許可しますか?

分類Dev

apache Webサイトからファイルをアップロードした後、404ファイルマネージャーからアクセスできます。フォルダとファイルのアクセス許可は644です

分類Dev

VSTSからアプリIDのフォルダーアクセス許可を設定しますか?

分類Dev

ターゲットフォルダのアクセス許可を777に設定したい

分類Dev

Sudoなしでホームフォルダ内のファイルのアクセス許可を変更することはできません

分類Dev

JFileChooserは、特定のフォルダーへのアクセスを許可し、そのフォルダーにファイルをコピーします

分類Dev

デフォルトのACLで新しいファイルとフォルダーに設定されたアクセス許可

分類Dev

すべてのフォルダーとファイルのアクセス許可を変更する

分類Dev

InnoSetup-インストールフォルダのアクセス許可を設定する方法

分類Dev

フォルダとファイルのアクセス許可を設定する

分類Dev

新しいファイルとフォルダーのデフォルトのアクセス許可を変更する

分類Dev

JavaでVFSを介してリモートフォルダーのアクセス許可を設定する方法はありますか?

分類Dev

Icaclsすべてのユーザーに新しいファイルを含むフォルダーへのアクセスを許可しますか?

分類Dev

Azureクラウドサービスパッケージのファイル/フォルダーのアクセス許可を設定する方法

分類Dev

ファイル/フォルダーのアクセス許可を印刷する

Related 関連記事

  1. 1

    Macを使用してNASドライブ上のすべてのファイルとフォルダーにアクセス許可を設定する方法

  2. 2

    / var / www /内のフォルダーとファイルのアクセス許可を変更しますか?

  3. 3

    / var / www /内のフォルダーとファイルのアクセス許可を変更しますか?

  4. 4

    Wix:フォルダーのアクセス許可を設定するCustomAction

  5. 5

    YAMLファイルを使用してElasticBeanstalkでフォルダーのアクセス許可を設定するにはどうすればよいですか?

  6. 6

    icacls.exeを使用して、ドメインユーザーに特別なフォルダーのアクセス許可を設定します

  7. 7

    SFTPのスタートアップフォルダを/ home / username以外に設定すると、アクセス許可の問題が発生します

  8. 8

    setfacl を使用して、ファイルとフォルダーに異なるデフォルトのアクセス許可を設定するにはどうすればよいですか?

  9. 9

    NTFSセキュリティアクセス許可を設定して、サブフォルダー/ファイルの変更を許可しますが、親は許可しません

  10. 10

    Linuxの場合-クライアントアプリの呼び出しとダウンロードファイルのファイルを保存するフォルダーのアクセス許可を設定する方法

  11. 11

    書き込みとしてアプリ/ストレージ内のフォルダーにアクセスするためのWebサーバーのアクセス許可を設定します

  12. 12

    ディレクトリと子フォルダのアクセス許可を設定します

  13. 13

    C#を使用してIISAppPoolユーザーにファイルのアクセス許可をリモートで設定します

  14. 14

    WordPressとWinSCPのアクセス許可:ファイルのアップロードを取得しています...は成功しましたが、アクセス許可やタイムスタンプの設定中にエラーが発生しました

  15. 15

    フォルダーのアクセス許可を更新して、ユーザーにscpファイルをそこに許可しますか?

  16. 16

    apache Webサイトからファイルをアップロードした後、404ファイルマネージャーからアクセスできます。フォルダとファイルのアクセス許可は644です

  17. 17

    VSTSからアプリIDのフォルダーアクセス許可を設定しますか?

  18. 18

    ターゲットフォルダのアクセス許可を777に設定したい

  19. 19

    Sudoなしでホームフォルダ内のファイルのアクセス許可を変更することはできません

  20. 20

    JFileChooserは、特定のフォルダーへのアクセスを許可し、そのフォルダーにファイルをコピーします

  21. 21

    デフォルトのACLで新しいファイルとフォルダーに設定されたアクセス許可

  22. 22

    すべてのフォルダーとファイルのアクセス許可を変更する

  23. 23

    InnoSetup-インストールフォルダのアクセス許可を設定する方法

  24. 24

    フォルダとファイルのアクセス許可を設定する

  25. 25

    新しいファイルとフォルダーのデフォルトのアクセス許可を変更する

  26. 26

    JavaでVFSを介してリモートフォルダーのアクセス許可を設定する方法はありますか?

  27. 27

    Icaclsすべてのユーザーに新しいファイルを含むフォルダーへのアクセスを許可しますか?

  28. 28

    Azureクラウドサービスパッケージのファイル/フォルダーのアクセス許可を設定する方法

  29. 29

    ファイル/フォルダーのアクセス許可を印刷する

ホットタグ

アーカイブ