April 21 2010

Considerations when scripting for 64-bit machines with SCCM

As Microsoft 64-bit client Operating Systems become more common, we need to ensure we are covering all combinations when scripting in general as well as within SCCM programs. I wanted to highlight a recent situation where I couldn’t figure out why my script couldn’t write to the %systemroot%System32 folder on a 64 bit Windows 7 workstation. Then it clicked – whenever a 32-bit application attempts to access %windir%System32, the access is redirected to %windir%SysWOW64 – and don’t forget – the SCCM client is 32-bit!

32-bit applications can access the native system directory by substituting %windir%Sysnative for %windir%System32. WOW64 recognizes Sysnative as a special alias used to indicate that the file system should not redirect the access.

There are some good references here, here and here.

As a separate but related topic, I think it’s worthwhile pointing out this relatively new post at MyITForum that relates to UNC paths within batch files. Most people will tell you that UNC paths are not supported in a batch file – well that isn’t necessarily the case – “%~dp0” is a variable that can be used in your batch file that will give you the full UNC path of where your script is being run from. From more info, see this post http://www.myitforum.com/absolutenm/templates/Articles.aspx?articleid=15520&zoneid=87

April 9 2010

SCCM OSD and Dell SigmaTel audio driver on Windows XP

Several Dell laptop models including the E6400, D630, D520 and D430 all require the Sigmatel audio drivers on Windows XP. While the ‘auto apply drivers’ and ‘apply driver packages’ features of SCCM OSD work well for all other device drivers, the Sigmatel audio drivers have been a constant pain. I have finally resolved this by adding a command line step to the task sequence with the following command line:

setup.exe -s -SMS -f2"c:windowstempaudiodriver.log"

There setup.exe is the InstallShield installation provided from the Dell support website. The -s makes it silent and the -SMS prevents the network connection and Setup.exe from closing before the setup is complete. I also create a WMI query condition on the step so it only applies to certain models:

Select * from Win32_ComputerSystemProduct Where Name LIKE "%Latitude D430%"

We don’t seem to have this problem with Windows 7, the ‘auto apply drivers’ works nicely.