I am looking to put together a how to on this topic, but first i need to learn how to do it.

there are a lot of apps that are listed with additional registry keys you can run to disable unwanted features. editing existing entires is a piece of cake, but adding features is another story.
i.e. the beyond feature in acrobat reader 8. in that thread someone says to add reg keys via orca, but does not give instructions.

i have been unable to find any information that can point me in the direction i need to start compiling documentation. It would also be useful if someone can let me know how to run vbs script in the msi, it may be easier to add reg keys using vbs, than trying to create an MST file to do it for you.

thanks in advance for any help you can offer
0 Comments   [ + ] Show Comments


Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.


Hi bruor,
your on the right track with ORCA. There are reasons for this. One of the main one is the neutral behaviour of ORCA. That means it changes nothing in MSI file, but the things you do yourself (with the execption of the modifying date).
To add something to a MSI file, you should understand the structure of MSI file and its execution sequences.
Adding a registry key via MST isn't that hard at all.
First of all, get the Installer SDK from Microsoft:
Its a small installer and you choose the SDK's you need in there and they will be downloaded during install.
Orca and a lot of other usefull utilities are part of it. And not to forget: The reference documentation!
Go right away to it and study the docu of the registry table!
Then, open the file in ORCA and choose 'Transform-New Transform' to start a new tranform.
After that, navigate to the 'Registry' table and choose Add Row from the context menu in the right pane.
Before you actually do that, you should know the exact registry key to add.
You also need to know to which component you will add this new row in the registry table.
Usually, its ok to add it to the component, which allready holds the most of the other rows in the table.
The registry column can be freely choosen, but it has to be unique.

This method should be the prefered one, because it uses the built in technique to do the job.

But it does not allways suit the needs. Especally, if there are Custom Actions which alter the registry after the 'WriteRegistryValues' action in the 'InstallExecuteSequence' table (this is the place where the values are actually written to the registry. Well, almost, see below).
The easiest way to do a registry change almost anywhere in the MSI, is a custom action, which uses the reg.exe utility.

Please lern to generate and read MSI log files. A good utility for analysing them, is 'WiLogUtl.exe' from the SDK.

Another important thing to understand, are different stages of an MSI installation.
Upon start, the Installer steps into the 'InstallUISequence' table. But, it depends on the settings on the command line or the GPO if the sequences in this table are executed.
After that, it steps into the 'InstallExecuteSequence'. There the most important thing is to understand the 'defered' actions.
This means, all action between the actions 'InstallInitialize' + 'InstallFinalize' are not executed directly, but written to the so called MSI-Script (placed in C:\Config.msi).
Finally, if all defered actions are done without an error, the MSI-Script is executed.

Hope, this gives you some hints and ideas.
Regards, Nick
Answered 12/10/2006 by: nheim
Tenth Degree Black Belt

Please log in to comment
does anyone know if there are legal issues handing out mst files generated by admin studio?

it would be great is there were an mst repository on the site where we could upload customized mst files...
Answered 12/12/2006 by: bruor
Senior Yellow Belt

Please log in to comment
Answer this question or Comment on this question for clarity