Attempting to make the work with tools like CACLS.exe, XCACLS.vbs (with CScript.exe) and ICACLS.exe a little easier, I have developed a script and built it into a new action, which can be used in Setup Factory. After the installation, you will be able to make calls to the proper application that should be used on the target operating system.
How to use
After the scripts were copied into the correct sub folders of Setup Factory, you must add two files to your project:
- Add XCALCS.vbs to your list of primer files.
- Add SetFolderPermissions.lua to your script files (next to _SUF70_Global_Functions)
Now you are already able to include this new action into your scripts. As soon as you type the dot, the new function will be shown in the drop-down menu, as you can see in this image:
The action wizard makes the passing of the parameters as easy as possible:
Set the user or group that the action should affect:
If you use the options in the drop-down, the corresponding SIDs will be used. (SIDs are security identifiers in Windows operating systems and look as gibberish like "S-1-5-20".) This means, when you set "Everybody", it will still work correctly on non-English Windows operating systems, where this user group has a different, localized name.
Now set the operation. Are you giving a new right, or taking something away?
Set the right you want to control, like read, write, execute, full access.
Finally, you may want to set the same rights for child items as well, instead of just the folder.
You can inspect the exact syntax of the command that was created (using CScript.exe or ICACLS.exe) in the installer's log file, so this will allow you to review the parameters (and execute the command manually) if something is not working as you expected.
This script is provided as-is, and you can edit and modify it further to fit your requirements.
If you are using Setup Factory 9, then you can use the new File.SetPermissions() action.
Don't have Setup Factory?
If you want to purchase a license for Setup Factory 9, now is a good time! You can get 10% off the list price simply by clicking the banner below: