Thursday, April 29, 2010

Windows 7 Software Deployment Script Tool

As you can see by my infrequent posts…I’ve been busy.  One of my projects is to develop and test out all our software distribution and imaging tools so that we can begin the rollout/upgrade of Windows 7.  To put it bluntly, it’s been painful. Windows 7 is just different enough to be a real pain in the butt.  One of my main concerns is our automated build process. We use Prism Deploy as our software distribution tool.  A clean Windows 7 build is loaded from Windows Deployment Services (a whole lotta setup involved there) and then we run a Prism Deploy script to load all our standard apps.  The problem is UAC gets in the way even as an administrator.  Even though you can turn it off you can’t stop it from prompting for some programs that write to HKEY_LocalMachine or to folders like C:\Program Files.  For example this line of the script to load FireFox works great for XP but now under Windows 7 it isn’t silent anymore:

/Run /Wait %comspec% /c %installdir%\firefox\FirefoxSetup3.6.3.exe -ms

The trick to get it to work involves the Elevation PowerToy…specifically the ElevateCommand PowerToy.  Installing this tool let’s me run the same command but it works with no GUI interruption:

/Run /Wait %comspec% /c elevate %installdir%\firefox\FirefoxSetup3.6.3.exe -ms

(Watch the wrap on that, it wasn’t intentional.)  Now the script works as intended.  There is one thing to note. The elevate command seems to shell out to a separate process so the current command windows closes.  For me this is an issue because my “/wait” directive in the Prism script no longer waits for the install to finish. If you have software dependencies that are written out in your script you’ll need to figure out a way to wait until things finish before moving on to the next install.

Good luck…happy installing.