Customizing MSI file for Group Policy installation--hitting a wall

Hi folks-

I'm working with a vendor MSI file that I'm desperately trying to get GP-ready so I can push it out to my Win7 clients.

I've tried using Orca and Inst Edit! to manually edit and also create transforms. There are two obstacles I'm trying to overcome:

1) a prompt with 3 radio buttons asking for the installation type

radio buttons
2) a prompt asking for a server name string that comes up a few seconds AFTER the "Install" button has been clicked. This server name then gets edited into "ELNSDMViewer.exe.config" and installation is complete.

server name
No luck trying to set the unwanted features to "Level 0" and I'm unable to find where to enter the server name. Nothing obvious inside the Property or other tables.

feature table
Any help, much appreciated.
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Vadim RappCommented:
> No luck trying to set the unwanted features to "Level 0"

see if there's anything in Condition table. If not, need to analyze the log and find where the luck gets dropped.

>  I'm unable to find where to enter the server name

Find this control in Control table and see what property is assigned to it.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
See whether the command line running the .msi with a /a option.  That option will provide you with the answer file that can be included with the .msi  
.msi /? There are option to include answer files, the issue is whether that option is available/included...
Vadim RappCommented:
arnold, option /a for msi file invokes administrative installation. There's no such thing as answer file for msi, from what I know. Where did you get this from?
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

The administrative install if available places the install file in a state that can be run out if GPO software deployment.
The answers selected during that set are included in the location to which it is installed.

Software deployment adds /silent /q.

Some msi include options to generate the answer file.
Elmo_OxygenAuthor Commented:
Correct, /a just invokes the admin install. No answer file.

I searched inside the Control table for "server" which just returns the generic controls for "The InstallShield(R) Wizard will create a server image of [ProductName] at a specified network location. To continue, click Next." and "Specify a network location for the server image of the product."

Are certain MSI's inflexible in that a hands-free installation can't be achieved? I wonder if I should look into an MSI packager like the old WINinstall app.
You have to see whether the MSI installer uses/references an option to create an answer/unattended.
When you run the MSI, look in %temp% see what is there.

You have to provide the transform/answer file for unattended install.  The variables/parameters must match what the forms are looking for.

Confused two separate things. can you run the application from a network share?

see whether the msi /? provides parameterrs that can be passed to it to answer the parameters or use an MST file that includes the parameters with their respective answers.

msiexec /?
some msi/exe's include the option to run the installer interface only to get responses ........
Vadim RappCommented:
> Are certain MSI's inflexible in that a hands-free installation can't be achieved? I wonder if I should look into an MSI packager like the old WINinstall app.

Yes, some are, but usually everything can be achieved by specifying right properties in the command line.

> I searched inside the Control table for "server"

No, it's unlikely that you would find it like that.
Go to the table "Dialog" and find the dialog "Server Name". Don't search for anything, do it visually.
Once you found it, go to the table "Control" , sort by column "Dialog_" and review all controls belonging to that dialog, also visually.

Alternatively, you can simply upload that MSI right here (rename .msi to .txt to bypass E-E security feature) and we will take a look, it probably will take 1/10 of time compared to explaining how to do it.
Elmo_OxygenAuthor Commented:
Getting closer! I ran a manual installation with the /lime switch to create a verbose log file. At least I narrowed down the location of the prompt for the server name entry to the CustomAction table. Here is the originnal embedded VBscript asking the user to input the server name string:

Dim path  ,windPath,servername,copyServerName

Set WshShell = CreateObject("WScript.Shell") 
servername = Session.Property("SNAME")
If servername="" then 
servername=InputBox("Enter the Server Name","Server  Name")
End If

'servername=InputBox("Enter the Server Name","Server  Name")


if copyServerName="" then 
end if

Open in new window

I modified the vbscript to explicitly state servername="".

The last thing is to force the "Client" option for the installation...
Vadim RappCommented:
1. I guess the author is in better position to decide what can and what can't be shared.
2. He could make administrative installation and upload only the msi without the files.
Do you have an opportunity to contact the vendor to see whether they have a transform file format that can be used with their installer to automate/distribute the application?

They may have info/writeup to achieve this.
Vadim RappCommented:
From the script, it looks like the property is SNAME, but it may be something else, for example remains from some old days before they put up separate dialog, and now the property may be different. The most reliable is to find the control that actually works and find the property it's linked to.

Another way is to specify, say, server name MYSERVER999, then analyze installation log and find out which property had value MYSERVER999.

Yet another way is to look where this server name goes into, i.e. whether it's being put into registry key, or something else. For example, if server name is placed into registry, then that registry value in the installation will be specified as [property-name]. That will be the property to modify.

Finally, if in your deployment you are going to specify one and same server name for all installations, the easiest is to simply replace that [property-name] for the hardcoded server name you want.
Elmo_OxygenAuthor Commented:
Sorry for not being clear, but I was able to modify the original vbscript above and explicitly state the server name.  That worked. So 1 out of 2 solved.

All that remains is forcing the "Client" option. Perhaps it's within reach. I believe this section of the ControlEvent table is key:

Vadim RappCommented:
Look for these custom actions - InstallClient, etc - find out what they do.
Elmo_OxygenAuthor Commented:
Pretty basic

Vadim RappCommented:
I would simply remove them and left determination to the standard means. If the actual installation is being done by the standard means, rather than by those custom actions themselves, and custom action only patch the levels of the features, it should work.
I've requested that this question be deleted for the following reason:

Not enough information to confirm an answer.
Vadim RappCommented:
The topic of the question was hitting a wall while customizing the installation. The discussion did show quite a few techniques to do that, and the author has confirmed that he found the answer using one of them - he found the custom action script where the property is assigned. His second problem is only the matter of choosing which of the several suggested ways to use.

Split between
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows Server 2008

From novice to tech pro — start learning today.