Hi all,

I have a package that is already deployed to a number of PC's. I need to apply this MSP I have now and was wondering what is the best why to do this. As GPO does not handle MSP, I was thinking of creating a MSI, add in the MSP in to a temp directory and when it is on the users PC then run a script to install that patch.

Will this work, or any other ways of doing this that is easier would be great.

Thanks all

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


I have tried a few method which have been suggested on here like using the i6comp utility and the msix.exe and still no joy. Bugger!
Answered 06/22/2006 by: Thegunner
Second Degree Green Belt

Please log in to comment
What has worked perfectly for me in the past:

Write a VB script that exits quickly if the patch has already been deployed to the target system (by checking for a reg setting, folder or file that's unique to the patched application). If the patch hasn't been applied to the target then the script uses msiexec to patch the installed MSI. Finally, apply this VB script as a Logon script of the same GPO that deploys the full MSI.

Here's an example of my VB script I used to patch an already deployed MSI. The FlagFolder is the thing that's unique to the patched installation, you'd have to modify this if you check against a registry or file. This script also writes a detailed report to the appevent log. Hope this helps:

disclaimer: You have a royalty-free right to use, modify, reproduce, and distribute this script file in any way you find useful, provided that you agree that the author has no warranty, obligations, or liability for such use.

Option explicit
On error resume next
dim oShell, oFSO
dim sMSILaunch, sAppEventText, sDate
'Adjust the following constants for desired results
const sGPOname = "APP .NET Framework 1.1 - C"
const sVBScriptName = "dotNET1.1_MSP_KB839424.VBS"
const sMSIEXEC = "%comspec% /c %Windir%\System32\msiexec.exe "
const sPatchSwitch = "/P "
const sMSP = "\\server\share\NetFramework11\NDP1.1-KB839424-X86.msp "
const sQuietSwitch = "/qn "
const sFlagFolder = "%Windir%\Microsoft.NET\Framework\v1.1.4322\Updates\M839424"

'Reference *************************************************************************
'Windows Scripting Host Object connections
Set oSHELL = WScript.CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")
sMSILaunch = sMSIEXEC & sPatchSwitch & sMSP & sQuietSwitch
sAppEventText = "Starting " & sVBScriptName & chr(10) & "which is a " &_
"startup script of the GPO: " & chr(10) & sGPOname & chr(10)
'Worker and Output Section *********************************************************
If oFSO.FolderExists(sFlagFolder) = False Then
sAppEventText = sAppEventText & "The folder " & chr(34) & sFlagFolder & chr(34) &_
" doesn't exist, which indicates that the patch, " & chr(34) & sMSP & chr(34) &_
" is needed." & chr(10) & "The following MSIEXEC command will be run:" & chr(10) &_
sMSILaunch & chr(10) & "* see subsequent MSIInstaller event for details. End of script."
oSHELL.LogEvent 4, sAppEventText
oSHELL.run sMSILaunch, 0, True
sAppEventText = sAppEventText & "The folder " & chr(34) & sFlagFolder & chr(34) &_
" exists, indicating patch is already applied. No action will be taken. End of script."
oSHELL.LogEvent 4, sAppEventText
End If
Answered 06/22/2006 by: fosteky
Purple Belt

Please log in to comment
Why not update the MSI with the MSP and then hit Redeploy?
Answered 06/25/2006 by: AngelD
Red Belt

Please log in to comment
AngelD's suggestion is sound, but obviously necessitates the uninstall and reinstall of the application for all users, which may not be desirable should you have a lot of users and the package is sizeable.

I only suggest running the patch against the workstation installations because it avoids the need to uninstall and reinstall the app on all target computers.
Answered 06/27/2006 by: fosteky
Purple Belt

Please log in to comment
I think the problem with applying the patch by script is that after the patch, in add/remove programs it still shows the previous version. I just applied msp patch to adobe reader, and though the reader itself is now 7.0.8, in add/remove programs it's still 7.0.7 (in the title of the product; in the version, it is now correctly 7.0.8).

Also, what if the installation is managed (published or advertised)? then you obviously have to update the administrative share as well, for the future installations; which will put it out of sync with the existing installations, so if someone wants to uninstall, he may be unable to. I did not try it, but I think it is very likely.
Answered 07/19/2006 by: vrapp
Senior Yellow Belt

Please log in to comment