This is one that you'll deal with sooner or later, Windows XP Service Pack 3 is a valid example (requires a reboot after install and therefore produces an exit code of 3010 or 0x80070bc2

Your task sequence will interpret the return code and act upon it by restarting your install before continuing but this may not be your desired result. To get around this you need to wrap the original program in a VBS script (or similar script) which masks the return code and produces a retval of 0 (zero) meaning all is good and no need to reboot.


A very simple example of this is the following code which could be called from within a task sequence and allow the ts to continue even if the returned retval was 3010:

Dim Retval
Retval=0

' *** Install Application. ***

Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")


' open normal and don't wait

WSHShell.Run "
notepad.exe", 1, True
Set WSHShell = Nothing




' *** show us what RETVAL is, unrem to see what retval = ***

  MsgBox "The actual return code was " &retval

' *** unrem to set to 3010 for testing ***

'retval = 3010

If retval = 3010 Then

MsgBox "The return code was 3010, resetting to 0"
else
MsgBox "The actual return code was " &retval
WScript.Quit(Retval)
End If



' *** set the return value to 0 anyway. ***

Retval=0
MsgBox "The return code was reset to 0"
WScript.Quit(Retval)

The sample above is a script for starting your program (notepad.exe in this case but it could be an msi script or whatever), i've added Msgbox lines that you can rem out/in to change the behavior of the script, try it out yourself to see the results.

References:

1. http://www.myitforum.com/forums/Preventing-Task-Sequence-Reboot-After-Software-Install-with-3010-m220480.aspx

2. http://social.technet.microsoft.com/Forums/en-US/configmgrosd/thread/60293abd-30a8-4f9c-80d5-e83c0b822a1c

Trackbacks

No Trackbacks

Comments

No Comments