Windows Installer provides a nice rollback feature that kicks in when a fatal issue occurs during the installation of a [Windows Installer-based] application installation. This rollback feature gracefully restores the system to its previous state removing any traces that the installation was attempted. Note that this isn’t a full system state restore, it’s just a reversal of any operations performed by the Windows Installer.
Do you really need rollback during Operating System Deployment (OSD) though? If something goes wrong with an application installation during OSD, rolling back gracefully is more or less pointless as you really don’t want any errors whatsoever during OSD. Thus, disabling rollback during OSD reduces the overhead and time it takes for Windows Installer-based application installations to execute which in turn can reduce the overall run-time of an OSD task sequence.
Disabling rollback is as simple as the setting the DisableRollback value in the HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer registry key to 1 immediately before the task sequence initiates any Windows Installer-based applications and back 0 after they are complete. This can be easily done during OSD using a “Run Command Line” task and the following command-lines:
[ms_label background_color=”#00274c” ]Disabling Rollback[/ms_label]
%windir%\system32\reg.exe add HKLM\Software\Policies\Microsoft\Windows\Installer /v DisableRollback /t REG_DWORD /d 1 /f
[ms_label background_color=”#00274c” ]Enabling Rollback[/ms_label]
%windir%\system32\reg.exe add HKLM\Software\Policies\Microsoft\Windows\Installer /v DisableRollback /t REG_DWORD /d 0 /f
I can’t say that I’ve done any extensive bench-marking so YMMV, but every little bit helps when you would like to reduce OSD time or simply optimize the process.