Hi Everyone!

I am in need of help pretty please...
The task of silently delivering SQL Server 2008 Express R2 (unattended)...32 and 64bit...

The forum shows ideas to extract SQLEXPRWT_x86_ENU.exe so the setup.exe is shown and with these switches can be deployed....sounds pretty good....except I would like to deploy the native executable with the switches as the executable is nice and compressed....approx. 250Mb and uncompress much much more...

SQLEXPRWT_x86_ENU.exe can use either switches or an INI file and called with /configurationfile=c:\temp\config.ini.
Noticed that a path needs to be specified to the ini file....cannot use ".\" or no path at all.
Using SCCM to deploy the SQLEXPRWT_x86_ENU.exe program with the various switches could not be done....too many characters unfortunately....
Next plan was to simply wrap the two files in a MSI and call the command SQLEXPRWT_x86_ENU.exe /q /configurationfile=c:\temp\config.ini

Using this command above on a Win7 32bit works a treat....but wrapping this in a MSI...and testing on the same env is not working?

Contents of MSI:
The config.ini in the file...in a component....component linked to a feature.
The executable in the binary table (source).
Source = of the custom action (LocalInstall) - linked to the binary (Source).
Type = 3074. - Binary exe in script, Execute Deferred and No Impersonate.
Target = /q /configurationfile=c:\temp\config.ini
Action = Install
The InstallExecutiveSequence is the last sequence before InstallFinalise.

Did not seem to work....Error 1722.

So I tried other options....
Added the SQL exe as a file....with a component and feature etc.
Called the SQL exe

Action Type Source Target
LocalInstall 3074 Source /Q /configurationfile=[Temp]32bit_config.ini

LocalInstall 3090 SQLEXPRWT_x86_ENU.exe /Q /configurationfile=[Temp]32bit_config.ini

LocalInstall 3106 Temp SQLEXPRWT_x86_ENU.exe /Q /configurationfile=[Temp]32bit_config.ini

Temp is definited in the Directory table as c:\temp....I can see the source delivered there....but fails after a while...
Verbose logging....shows that I am either getting a 1722, 1721, 2715 - depends on the CA shown above....
None worked.....but of all of them....I really thought the last one would have worked...
Can someone please tell me out of the top 3...which one "should" work....?
I am going to rename Source....to something a little more original just in case now....
No go....lost...
0 Comments   [ - ] Hide 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.
Answer this question or Comment on this question for clarity


SQL Server is already in MSI format so you cannot wrap it in another MSI.

Extract the MSIs and create transforms for them, rather than use the Setup stub.
Answered 06/08/2011 by: VBScab
Red Belt

Please log in to comment
but wrapping this in a MSI...and testing on the same env is not working

This wont work because sql server is an msi and all your custom action types are synchronous. May be Asynch,No wait will work but as VBSCab mentioned creating transform is the best way to go.

If not you can use wise script wrapper.
Answered 06/08/2011 by: naveen.packager
Green Belt

Please log in to comment
Thanks for a quick reply! You Guys are absolutely correct! I have been more of generalist lately so my skills are slippin! Or my memory....

Well....its a shame that Microsoft did not allow the executable support relative paths such as \configurationfile=.\config.ini....
Otherwise I it would be simply to deliver...now it will a few MSIs with transforms...linked in SCCM...

The reason for my previous logic as I needed an easier automation....because no component management will occur anyway..
If the extract with a few MSIs and transforms....
Could I...
1st package to simply dump the files (executable and INI file) to c:\temp.
Second package to execute the command locally....

LocalInstall 3106 SystemFolder cmd.exe /c "SQLEXPRWT_x86_ENU.exe /Q /configurationfile=[Temp]32bit_config.ini"
Answered 06/08/2011 by: tron2ole
Third Degree Blue Belt

Please log in to comment
Usually I use WPS....but stuck with InstEd for the next couple of weeks.....
Therefore....no wisescript....unfortunately.
Answered 06/08/2011 by: tron2ole
Third Degree Blue Belt

Please log in to comment
Is there no option to trigger the command-line in a script and prepend the script's current path (easily found in for example VBS) to the configurationfile parameter's value?
You could then run the script in SCCM instead of the command line directly.
Answered 06/08/2011 by: pjgeutjens
Red Belt

Please log in to comment
I am no expert but I have found the best means of passing parameters or config files to an msi to run from sccm is to wrap them up in an exe instead of using a transform. It may sound too simple but winrar and 7zip are really good at producing self extractors with config. This has helped me to get grouchy installs working from sccm when nothing else can.

This way has also helped when I wish to wrap a couple of exe's or msi's into one exe and then call a bat/cmd/vbs to run each install with config. Takes care of relative pathes as well.
Answered 06/08/2011 by: rich0864
Orange Belt

Please log in to comment
Yeah I think vbs is the answer.....but I could imagine that a compression tool could do the job too..
Wisescript would be done already....
VBSCab idea is the idealistic way approach....but since I am not component managing and just basically wrapping it up silently unattended....I still thought an MSI would do the job...
I dont think Asynch,No wait would work....as the task of copying the exe would have to complete before executing the switches...
In my mind I thought of building a one MSI....make it an administrative install....so the ini file resides outside the MSI database...
And if the ini file needs replacement...easy job......
I might check out placing the files after InstallFinalise or something....
Thanks for the alternatives....
Answered 06/08/2011 by: tron2ole
Third Degree Blue Belt

Please log in to comment
did read the whole thing but you are trying to write to c:\temp which will fail in UAC enabled machines.

write the log to c:\ProgramData\

sorry if everyone else already answered correctly
Answered 06/08/2011 by: jmcfadyen
Fifth Degree Black Belt

Please log in to comment
Hey JMcFadyen.....I was hoping to meet you last time you were down South in Melb!
Next time.......

UAC is disabled....all good....I am an "......."! How the ... I earnt 3 stars - I do not know????

My mind gets stubborn and now back with my first thought...

Easy Solution:
1. Extract the executable...
2. Execute the setup.exe - SIMPLE! No need for the full path to the configurationfile when using this method!
3. Just include the config file with the setup binaries and execute:
4. setup /configurationfile=config.ini
Answered 06/08/2011 by: tron2ole
Third Degree Blue Belt

Please log in to comment
And the uninstall - no need for the configurationfile switch...
setup /q /action=uninstall /features=..... /instancename="instance"
Add cleanup script if required....
Fits nicely in SCCM...
Answered 06/08/2011 by: tron2ole
Third Degree Blue Belt

Please log in to comment