OKLINTLff.msp runs fine by itself but coupled with other patches nope

(imported topic written by mcalvare91)

I’ve created a fixlet that, if a system requires it, will install an Office 2003 Post SP2 hotfix OLKINTLff.msp and the office2007-kb936864-fullfile-x86-en-us.exe. A client with office 2003 sp2 AND the Office 2007 compatibility pack is the perfect candidate for this scenario. Sorry for the long post, but I just want to be sure I give the info necessary.

Scenario #1:

Office 2003 SP2 system. The fixlet runs and installs the OLKINTLff.msp hotfix 100% of the time, no issues.

Scenario #2:

Office 2003 SP2 system with the Office 2007 Compatibility pack installed. I get intermittent results on this on the same system. Sometimes the OLKINTLff.msp will run and sometimes it won’t. The office2007-kb936864-fullfile-x86-en-us.exe runs first if it finds a relevant system (in this case has the Office 2007 CP installed) and then I run the Office 2003 Post SP2 hotfix (OLKINTLff.msp).

here’s the code:

//Office 2K3 Compatibility Pack (If Needed)

if {(exists key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall%7B90120000-0020-0409-0000-0000000FF1CE%7D” whose (exists value “DisplayName” whose (it as string as lowercase = “compatibility pack for the 2007 office system”) of it ) of registry)}

wait __Download\office2007-kb936864-fullfile-x86-en-us.exe /passive /norestart

endif

//Office 2K7 Hotfix (If Needed)

If {exists (folder (value “ProgramFilesDir” of key “HKLM\Software\Microsoft\Windows\CurrentVersion” of registry as string & “\Microsoft Office\Office12”)) and exists file “emsmdb32.dll” whose (version of it as string < ") of (folder (value “ProgramFilesDir” of key “HKLM\Software\Microsoft\Windows\CurrentVersion” of registry as string & “\Microsoft Office\Office12”))}

wait __Download\office2007-kb936864-fullfile-x86-en-us.exe /passive /norestart

Endif

//Office 2K3 HotFix (If Needed)

if {exists (folder (value “CommonFilesDir” of key “HKLM\Software\Microsoft\Windows\CurrentVersion” of registry as string & “\SYSTEM\MSMAPI\1033”)) and exists file “emsmdb32.dll” whose (version of it as string < “11.0.8025.0”) of (folder (value “CommonFilesDir” of key “HKLM\Software\Microsoft\Windows\CurrentVersion” of registry as string & “\SYSTEM\MSMAPI\1033”))}

wait “{pathname of system folder & “\msiexec.exe”}” /p “{pathname of parent folder of client folder of current site as string & “\actionsite__Download\OLKINTLff.msp”}” REBOOT=ReallySuppress /passive

endif

I’m wondering a couple of things:

#1. Because the .exe spawns child processes that run could it be that the Office 2003 hotfix is being launched while msiexec is still running from the previous hotfix causing this one to not run? And, because it’s intermittent, does it catch it sometimes and not others?

#2. Could a recommendation be to insert a pause in the code between the hotfixes, say a minute or so?

#3. If #1 is true, there is a way for me to watch msiexec as a running process, so how can I loop to do nothing while the process is still running and then when the process stops, to continue?

OR…am I way off and you guys know why I’m seeing this issue?

thanks

(imported comment written by BenKus)

Hi mcalvare,

I don’t know much about these particular patches, but I do notice that your 3rd action will look for the file in the folder “{pathname of parent folder of client folder of current site as string & “\actionsite__download\OLKINTLff.msp”}”… This would only work if your action was taken as a master operator… try changing it to:

wait “{pathname of system folder & “\msiexec.exe”}” /p __Download\OLKINTLff.msp REBOOT=ReallySuppress /passive

Does that help? If not, note there is a command “pausewhile” that is documented at http://support.bigfix.com/bes/misc/customactions.html … for example, you can do something like

pausewhile {not exists running application “someapp.exe”}

(note that this action would not end until someapp.exe exits so you need to be careful).

Ben

(imported comment written by mcalvare91)

Thank you. I will give this a shot and post back my findings!

(imported comment written by mcalvare91)

oh wait…I’m new so I might be interpreting this incorrectly, but:

pausewhile {not exists running application “someapp.exe”}

shouldn’t it be:

pausewhile {exists running application “msiexec.exe”}

(imported comment written by jessewk)

There should be a space between pause and while.

pause while {true} // will pause until true becomes false

pause while {false} // will move onto the next line.

(imported comment written by mcalvare91)

Still unsuccessful using:

wait “{pathname of system folder & “\msiexec.exe”}” /p __Download\OLKINTLff.msp REBOOT=ReallySuppress /passive

I watched msiexec.exe and noticed that it takes quite a bit of time to close, so as a test, I ran the office 2007 hotfix and on the heels of it, ran the OLKINTLff.msp and it ran fine manually even though a previous version of msiexec.exe was still running. So the theory of the msiexec.exe being open and running a second hotfix while it’s still open causing the OLKINTLff.msp to not run is incorrect.

No matter where I place the OLKINTLff.msp hotfix, it just seems to get “skipped”. Example, I run it like this in the fixlet:

//Installations / Executions:

//Bad Tasks

wait __Download\BadTasks.exe Communicator.exe “Communicator” Outlook.exe “Outlook” Msmsgs.exe “Messenger” Iexplore.exe “Internet Explorer” Winword.exe “Word” Powerpnt.exe “Power Point” Excel.exe “Excel” Messenger.exe “Messenger” PWConsole.exe “LiveMeeting”

//Office 2K3 HotFix (If Needed)

if {exists (folder (value “CommonFilesDir” of key “HKLM\Software\Microsoft\Windows\CurrentVersion” of registry as string & “\SYSTEM\MSMAPI\1033”)) and exists file “emsmdb32.dll” whose (version of it as string < ") of (folder (value “CommonFilesDir” of key “HKLM\Software\Microsoft\Windows\CurrentVersion” of registry as string & “\SYSTEM\MSMAPI\1033”))}

wait “{pathname of system folder & “\msiexec.exe”}” /p __Download\OLKINTLff.msp REBOOT=ReallySuppress /passive

endif

//Office 2K3 Compatibility Pack (If Needed)

if {(exists key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall%7B90120000-0020-0409-0000-0000000FF1CE%7D” whose (exists value “DisplayName” whose (it as string as lowercase = “compatibility pack for the 2007 office system”) of it ) of registry)}

wait __Download\office2007-kb936864-fullfile-x86-en-us.exe /passive /norestart

endif

and after badtask runs (just a utility that finds open applications and then prompts user to close them) BigFix shows that //office2K3 hotfix (If Needed) line is completed, but it does not run. It’s not running quiet, so I should see it either run or show me some kind of failure. It runs fine when I just run it alone on a system, so I know the syntax is correct.

any other suggestions?

(imported comment written by BenKus)

Hey mcalvare,

Does this work if you run it alone in a Fixlet?

wait “{pathname of system folder & “\msiexec.exe”}” /p __Download\OLKINTLff.msp REBOOT=ReallySuppress /passive

Perhaps it has an issue running properly as the system account…

If it does work, why not simplify your life and make a separate Fixlet for each of these issues (bad task, office 2k3 hotfix, and offices 2k3 compatibility pack) and put them in a Baseline so that they run one after the other?

Ben