Jump to content

[Solved] .MSP-File as Silent-Installer


Thiersee

Recommended Posts

  • 2 weeks later...

Create WinRAR SFX

 

Compression: Store
Place SFX script commands in tab commands:

 

----- START SFX SCRIPT ------

;The comment below contains SFX script commands
Setup=msiexec /p <msp file name> .msp REINSTALL=ALL REINSTALLMODE=omus /qn
TempMode
Silent=1
Overwrite=1

----- END SFX SCRIPT ------

 

Why apply an .msp to Adobe?

 

Read: http://www.mockbox.net/server-stuff/configmgr-sccm/302-install-adobe-reader-x-1001-using-sccm?hitcount=0

 

Download Adobe Customization Wizard XI: http://www.adobe.com/support/downloads/detail.jsp?ftpID=5515

Edited by Jim Brisse
Link to comment
Share on other sites

Thiersee I found something that you can use, It's not my work but I've used it in the past, I just had to remember which computer I kept it on...

 

MSP patch files

 

An MSP-file contains a patch to be applied to a MSI-file (or an AIP).

 

A patch is usually an update to a new version of a software product.

 

A typical example for MSP-files are updates for Adobe Reader.

 

Creating a patch file is an alternative to creating a new MSI-file.

 

A patch from an MSP-file can be applied to an already installed software product by double-clicking the MSP-file, or by issuing the command
msiexec /p patch.msp REINSTALL=ALL REINSTALLMODE=omus  (the options are important, otherwise it only updates the locally cached copy of the MSI-file).

 

It is possible let windows installer install an MSI-file plus one or more MSP-files in one step with a command like this:
msiexec /I package.msi PATCH="c:\directory\patch.msp"

 

It is not possible to do specify an MSP-file when deploying software with GPO, like it can be done with MST files.

 

It is possible to slipstream one or more patches from MSP-files into an MSI file and to deploy that with GPO. Slipstreaming requires these steps:

extract the MSI file into an empty directory with the command:  msiexec /qb /a "%msi%" TARGETDIR="%aip%"

apply the patch from the MSP-file with the command: msiexec /qb /a "%msi%" /p "%msp%"

 

Notes:
The result is not a self-contained MSI-file, but an AIP (Administrative Installation Point).
If you don't want to enter commands manually, see my BAT-script below
replace %aip% with the full path to an empty directory (will become the AIP).
replace %msi% and %msp% with the path to those files (don't know if this must also be the full path).
do the second step inside the AIP-directory.
do all as admin or it may fail (for example when trying to do this for Adobe Reader).
to apply a MSP-file to an AIP instead to a MSI, run only the second command inside the AIP-directory.

 

If you don't want to do this manually, use my batch ApplyMSP.bat. Simply create a new directory, copy the MSI-file, the MSP-file and this BAT-file there.
Then double-click on the BAT. It will display the name of the MSI-file and of the MSP-file that it has found. Then it asks if the MSI is an MSI or an AIP.
I used this to slipstream Adobe Reader versions 10.0.1 and 10.0.2.

 

----- START SCRIPT ------

 

@echo off

rem ---------------------------------------------------------------------------
rem
rem Description:
rem    Creates slipstreamed updated AIP
rem    by applying a patch from a MSP-file either to a
rem    MSI-file or to an administrative installation point (AIP).
rem
rem Use:
rem    1. create new directory
rem    2. copy AIP or MSI-file there
rem    3. copy MSP-file there as well
rem    4. copy this batch there as well and execute it
rem
rem Notes:
rem - must be run with admin rights (if patching Adobe Reader 10)
rem - should be run on PC where Adobe Reader was never installed
rem - if patching MSI-file will create directory AIP and put all output there
rem - installation does not need just the new MSI-file. Copy the whole AIP path!
rem - resulting MSI-file should be renamed to reflect new version number
rem
rem For more info and newer version of this:
rem http://www.klaus-hartnegg.de/gpo/msp.html
rem
rem ---------------------------------------------------------------------------

rem Verify that we have admin rights
"%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" >nul 2>&1
if errorlevel 1 echo ** WARNING: this may require admin-rights

set error=

rem Search MSI- and MSP-file
call :search msi
set msi=%rc%
if not %error%.==. goto error
call :search msp
set msp=%rc%
if not %error%.==. goto error

echo.
echo ------------------------------------------------
echo Will patch MSI-file
echo    %msi%
echo.
echo with patch from MSP-file
echo    %msp%
echo ------------------------------------------------
echo.
echo Do you want me to apply the patch to a MSI-file,
echo or to an Administrative Installation Point (AIP)?
echo.
echo Note: If you select MSI, I will extract the MSI-file
echo to a new AIP, otherwise I will use the existing AIP.
echo.
echo Please enter MSI, AIP, or Q to quit.
set /p type="Reply: "
echo.
if %type%.==msi. goto doMSI
if %type%.==MSI. goto doMSI
if %type%.==aip. goto doAIP
if %type%.==AIP. goto doAIP
if %type%.==q. goto end
if %type%.==Q. goto end
echo ** ERROR: unknown reply %type%
goto error

:doMSI
if exist AIP\NUL goto dupeaip
mkdir AIP
cd AIP
set aip=%CD%
echo ** Extracting MSI-file to AIP %aip%
msiexec /qb /a "%msi%" TARGETDIR="%aip%"
if errorlevel 1 goto err1
echo ** Searching extracted MSI-file in AIP
call :search msi
set msi=%rc%
if not %error%.==. goto error
echo ** Found MSI-file in AIP: %msi%

:doAIP
echo ** Applying patch from MSP-file
msiexec /qb /a "%msi%" /p "%msp%"
if errorlevel 2 goto err2
echo ** SUCCESS
pause
start explorer /e,.

goto end

:search
set rc=
for %%i in (*.%1) do set rc=%%i
if "%rc%."=="." goto no%1
set dupe=
for %%i in (*.%1) do if not "%%i"=="%rc%" set dupe=1
if not %dupe%.==. goto dupe%1
set dupe=
set rc=%CD%\%rc%
if not exist "%rc%" goto whoops
goto:eof

:nomsi
echo ** ERROR: no MSI-file found
set error=1
goto end

:dupemsi
echo ** ERROR: more than one MSI-file found
set error=1
goto end

:nomsp
echo ** ERROR: no MSP-file found
set error=1
goto end

:dupemsp
echo ** ERROR: more than one MSP-file found
set error=1
goto end

:whoops
echo ** UNKNOWN ERROR
set error=1
goto end

:dupeaip
echo ** ERROR: directory AIP already exists
goto error

:err1
echo ** ERROR: extraction of MSI-file to AIP failed
goto error

:err2
echo ** ERROR: applying patch failed
goto error

:error
pause
:end

 

----- END SCRIPT ------

 

Save as ApplyMSP.bat

Link to comment
Share on other sites

  • 3 weeks later...

Create WinRAR SFX

 

Compression: Store

Place SFX script commands in tab commands:

 

----- START SFX SCRIPT ------

;The comment below contains SFX script commands

Setup=msiexec /p <msp file name> .msp REINSTALL=ALL REINSTALLMODE=omus /qn

TempMode

Silent=1

Overwrite=1

----- END SFX SCRIPT ------

.....

It works, thanks a lot!

 

Thiersee

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...