Installshield Folder Permissions not working

2020-05-29 06:14发布

问题:

Using InstallShield 2012 Professional to install a ASP.NET website, and a custom app pool running in securitry context of a network service account. When I test the website, I encounter a permissions issue (file permissions), and the website fails with the message "Error: Access is Denied.".

Using InstallShield, I set permissions to each file for read access to the user "Authenticated Users". I set the permissions within the InstallShield ISM file by navigating to "Application Data" -> "Files and Folders"

  • Select each folder in the "Destination computer's folders"
  • Right-click each folder in the "Destination computer's folders"
  • Select context menu "Properties"
  • Click button "Permissions"
  • Add entry in "Name(s):" section for user "Authenticated Users", and domain is blank (select "Read & Execute", "List Folder Contents", "Read")

... then perform this action over and over again for each folder, then for each file.

Once I test, I find I have the problem. If I navigate to the actual files installed on the server and review, they appear correct, but do not function correctly. Infact, I - as a Authenticated User - do not have permissions to navigate the folder structure, but because I am an admin I can tweak the permissions and get in. If I manually reset these permissions on each of these files (and related folders) the website functions correctly. This means the app pool setup, the file copy, and the network service account are all functioning correctly, and the problem is strictly related to the permissions on the files IIS is trying to access.

Has anyone had this problem, and overcome it? If so, how? (I would prefer to avoid using InstallScript to set permissions.)

回答1:

Notes:.

when considering settings in the "General Information" area, specifically the "Locked-Down Permissions" property - the behavior of file level permissions settings in InstallShield will differ. When selecting "Traditional Windows Installer handling", I was never successful adding explicit permissions. I noticed when doing so, all inherited permissions on the folder would dissappear. Additionally, while it appears the permissions are set in Windows, they behave like they are not set. Manual manipulation tests would show they were not correctly set.

When setting the "Locked-Down Permissions" property to "Custom InstallShield handling", I was able to add a permission and all inherited permissions remained intact. With this, I was able to apply the desired permissions to the root installation directory in the "Application Data"->"Files and Folders" area, and because I elected "Custom InstallShield handling" I am able to select the check box "Apply these permissions to child objects" in the advanced area of the permissions area of a folder property.

Steps to finalize and fix my problem:

In InstallShield (ISM file)...

  • Navigate to "General Information" (Lefthand pane)
  • Set Locked-Down Permissions to "Custom InstallShield handling"
  • Navigate to "Application Data"
  • Right-click the root folder where program is to be installed
  • Click "Properties"
  • Click button "Permissions"
  • Right-click top half of screen in white box area labeled "Name(s)"
  • Select context menu item "New"
  • Remove domain user leaving this field blank
  • Added user "Authenticated User"
  • Select check boxes in lower area ("Read & execute", "List Folder Contents", "Read")
  • Click button "Advanced"
  • Check checkbox "Apply these permissions to child objects"
  • Click button "OK"
  • Click button "OK"
  • Click button "OK"

Recompile installation program and install. Now works.