Is there a way to prevent or control the location and name of the "random" / GUID-based folders created in C:\User\\AppData\Local\Temp during installation of an MSI created with Installshield 2012?
-
Why would you need to change this? An implementation detail that should not be touched I would say. In addition to the TEMP folders there is [some caching going on on the installation files](https://stackoverflow.com/a/48823086/129130). – Stein Åsmul Mar 16 '19 at 03:05
-
Are you running from a setup.exe? – Stein Åsmul Mar 16 '19 at 15:09
-
@SteinÅsmul, Why? Because a customer is using a security tool that needs to be instructed to whitelist each executable 1 by 1, with no wildcard capability to handle random folder names. Setup.exe? No, using MSI (i.e. msiexec /i myinstaller.msi). – tdcc Mar 18 '19 at 15:46
-
OK, I have checked on a virtual and written you a short summary. – Stein Åsmul Mar 18 '19 at 19:21
-
Now that sounds like a crazy tool btw :-). – Stein Åsmul Mar 18 '19 at 19:31
-
From my experience the practice of disabling executable files in %temp% folder is *very* troublesome. You'll get a lot issues due to this. – montonero Mar 21 '19 at 09:21
-
I think that goes without saying. It is fighting windmills. Just enforce real-time checking via a security software, and that will do. And that will also create problems. – Stein Åsmul Mar 21 '19 at 15:06
1 Answers
ISSetupFile: I believe the folder you mention is used to hold the files added as support files to the installer - for example license agreement files
, config files
, bitmaps
and similar. In other words files that are not to be installed, but are used during the installation process (in setup dialogs for example). This is a special Installshield feature which means you don't have to extract the files from the Binary table of the MSI yourself. Instead you add them as ISSetupFile
entries and they end up in a custom table in the final, compiled MSI. During installation they are extracted by the custom action ISSetupFilesExtract
. The extraction folder name will be the product GUID for the MSI being installed (unless there are changes to this recently - there could be, for security updates and such things). You can find this product code in the Property Table of the MSI, using Orca or an equivalent tool (towards bottom).
Hacks: I suppose you can try to remove or disable this table. Seeing as many files are used in the GUI, the setup might still run without this table in silent mode, but files can also be used in custom actions that run in silent mode. If this is the case the setup will crash without these files. You can try to zap the table or better yet use a transform to disable it.
Administrative Installation: I trust you are familiar with administrative installations? Essentially a file extract for any MSI. Maybe that helps the white listing process - but I guess you have that down already. This approach will not help against these GUID folders though - unless you also disable the ISSetupFile entries.
Links:

- 39,960
- 25
- 91
- 164
-
Thank you for providing some help. You are correct that some of these files are indeed extracted to a random/GUID folder name but there already exist a way to override it using the SUPPORTDIR property and setting it to a known location. However, there is another set of files being extracted to C:\User\
\AppData\Local\Temp\{GUID}\. The list includes: IsConfig.ini, setup.inx, ISRT.dll, ISBEW64.exe, _isres_0x0409.dll, String1033.txt, _isuser_0x0409.dll, _isuser.dll, setup.exe. The GUID changes on every install. This is what is giving me a hard time. – tdcc Mar 19 '19 at 23:23 -
This behavior is probably different in different Installshield versions, and hence you would need to check with Installshield support I guess - or the [Installshield community user forums](http://community.installshield.com/). The files you list would seem to be the Installshield runtime (`ISRT.dll`), your Installscript custom actions in compiled form (`setup.inx`), and various string lists and other resources. I guess that isn't too useful, but just mentioned. I am surprised those are there when you run the MSI directly, I thought only a `setup.exe` would need them, but I must be mistaken. – Stein Åsmul Mar 19 '19 at 23:42
-
I suppose the scripting runtime and the compiled Installscript will be there for setups that use Installscript custom actions. If you don't use scripts those files might not be there, but the resource files might still be there. – Stein Åsmul Mar 20 '19 at 12:48