29 September 2011

Orca Tutorial -- Modifying an MSI file

In order to modify the installation process of an MSI file, you will need to use a program that can look at the MSI database. For that, I use Orca and Admin Studio. Both are great tools, but Orca is more in-depth and does not require an SCCM server.

The first thing is to download and install Orca. It is freeware and can be found in several places on the net. Second, make a copy of an MSI file to play around with.

There are usually three things we use Orca for. Those are: 1) the installation location, 2) Lookup properties to include in the command line argument, and/or 3) Answer all prompts.

When you first open up, I am using Quicktime.msi as an easy example, you will see the Tables on the left side. There are 4 primary tables that are most commonly dealt with in making changes. I have highlighted them in yellow and red, with red, Component and Property being the two that almost always will be used 95% of the time.


The property table is the table that has the most commonly changed properties. In my experience, the most common property I change is the INSTALLDIR, which sets the installation directory. The Component Table contains most of the conditions on each window. When you click on the component table, sort by the Condition column. This column contains most of the options in the installation windows. To make a change to one of these, go to the Property Table and add the condition as a property. Next, enter the preferred value for that condition. Checkboxes will be a 1 or 0 value, On or Off. You can also go to the Checkbox Table to see the list of all available checkboxes.


NOTE: The first thing you need to do before making changes is to click on the Transform--->New Transform. This sets the process up to generate the Transform file. This has to be done before you start making changes to the MSI file, otherwise you will lose all of the changes made. Second, unless you are absolutely sure that the changes you made are permanent, DO NOT CLICK FILE--->SAVE. This will permanently make changes to your MSI file and if you need to undo them, you will have to replace the file itself. Once you have created the new transform and made the changes, the last step is to click Transform-->Generate Transform. This creates the MST file that will be associated in the msiexec.exe command line argument.

There is also the option of not making a change inside the MSI and adding the Property to the command line.


So here are two examples of the msiexec.exe command line argument:
1) Including the transform file you generated
  • msiexec.exe /i QuickTime.msi TRANSFORMS=Transform.mst /qb- /norestart
2) Using the properties found inside the MSI Tables at the end of the command line argument
  • msiexec.exe /i QuickTime.msi /qb- /norestart INSTALLDIR="c:\temp"

I hope this helps in learning Orca. I pretty much learned all of my knowledge on my own and by messing around with installation files.

6 comments:

  1. Hi.
    Could you please explain step by step how to do the following in a .mst? Im using Orca.

    I want to change installation location from
    c:\program files\application
    to
    c:\application

    Thanks in advance.

    ReplyDelete
  2. In order to create the mst file, the first thing you have to do in Orca is to click Transform-->New Transform. This sets up Orca to log the changes you make to apply them to the MST file. If you make the changes before clicking New Transform, they will be applied directly to the msi file. Once you have clicked New Transform, click on the Property Table. See if there is a property in there named TARGETDIR. You can alphabetize the property table by clicking on the Property column header. If TARGETDIR is not there, then click on the Control Table. You will see the Property column. Click on the header to alphabetize it. Scroll to the bottom and you will see the list of available properties to insert into the Property table. Look specifically for the TARGETDIR property. Once you have verified it is there, click back on the Property Table. Now click Tables-->Add Row. For the Property, enter TARGETDIR. For Value, enter c:\application and then click OK. You have now made the change needed. Next, click on Transform-->Generate Transform. Select the location to save the transform at and then name the transform whatever you desire. Personally, I always name them Transform.mst just for consistency. You are finished. That is all that is to creating a transform. In order to implement the transform, use the syntax from one of my examples above.

    ReplyDelete
  3. how to modify MSI permanently becuase I use MSI with MST via activity directory ,I found MST property value doesn't set in MSI ,

    ReplyDelete
  4. First, I suggest making a copy of the msi before permanently modifying it. Open up the MSI in ORCA, make the appropriate changes to it, and then file-->save. That will add the changes directly to the msi file, thereby not requiring the presence of the MST file. The only reason this is not normally done is because the once changes are made to the MSI, they are permanent. That is why most create and institute the MST file. I have done the direct modification of the MSI file in past deployments.

    ReplyDelete
  5. Hi Mick, Thanks--this really helped me!

    ReplyDelete
  6. Just wanted to say this post was super helpful for me, after digging around for hours looking for just a good simple explaination of how this works.
    Thanks!!!

    ReplyDelete