Yeah, I don't think you'll be able to do that. Here's the script that uninstalls Office 2003 and install Office 2007, but can't do what you mentioned in your example.. 'This script will uninstall Microsoft Office 2003, wait for the uninstall to finish and then begin 'installing Microsoft Office 2007. This can be configured to be completely silent or allow prompts 'to inform its progress. Dim install Dim startseconds Dim endseconds Dim difference startseconds = Int(Timer) 'start the initial time when script was run 'This will start the uninstall of Office 2003 based on its PID number and the /qn switch is silent 'If a confimation is desired the /qn+ switch can be used. Set wshell = CreateObject("WScript.Shell") wshell.run "msiexec /x {90110409-6000-11D3-8CFE-0150048383C9} /qb-" '/qn -silent /qb- no modal Set wshell = nothing 'END code to uninstall Office 2003 install = 1 WScript.Sleep 10000 'allows the process time to start before Process Check() function runs ProcessCheck() 'WScript.Echo "office 2003 has been uninstalled. Office 2007 will begin installation." 'starts install of Office 2007. To make this fully silent the custom-uA.xml file needs to be modified Set wshell = CreateObject("WScript.Shell") 'this batch line must run locally where the setup.exe file is 'UNC pathing does not work with batch commands wshell.run "setup.exe /config custom-uA.xml" 'this batch line must run locally where the setup.exe file is Set wshell = nothing 'End code to install Office 2007 install = 2 WScript.Sleep 10000 'allows the process time to start before Process Check() function runs ProcessCheck() endseconds = Int(Timer) difference = (endseconds - startseconds) / 60 'WScript.Echo "office 2007 has been installed." WScript.Echo "Office 2003 was uninstalled and Office 2007 was installed" & vbCrLf & vbCrLf & "This took " & difference & " minutes" 'Function to check the processes Sub ProcessCheck() Dim computer computer = "." Dim process Dim processNumber Dim count count = 15 'any number that grater than possible processes with the same name If install = 1 Then process = "msiexec.exe" Do until count <= 1 Set service = GetObject("winmgmts:\\" & computer & "\root\cimv2") Set results = service.ExecQuery(" Select * from Win32_Process where Name ='" & process & "'") count = 0 for each obj in results count= count+1 ' Wscript.echo obj.Name ' Wscript.echo obj.ProcessID Next WScript.sleep 1000 loop 'WScript.Echo "count = " & count Else 'office 07 setup process = "setup.exe" count=1 Do until count = 0 Set service = GetObject("winmgmts:\\" & computer & "\root\cimv2") Set results = service.ExecQuery(" Select * from Win32_Process where Name ='" & process & "'") count = 0 for each obj in results count = 1 ' Wscript.echo obj.Name ' Wscript.echo obj.ProcessID Next WScript.sleep 1000 loop 'WScript.Echo "count = " & count End If End Sub 'END the Function to check the processes