MDT 2008, VMWare Workstation and Stop 0x7B

When working with the Microsoft Deployment Toolkit (MDT) I spend a lot of time in VMWare Workstation as it makes the job of developing and testing a workstation image much simpler. However there is one big gottcha that you should be aware of. Make sure you edit your .VMX file and modify the following:

scsi0.present = “TRUE” should be changed to scsi0.present = “FALSE”

If you don’t do this then after deploying a Syspreped image to VMWare Workstation you’ll end up with a Stop 0x7B error and much less hair than when you started.

Thanks Chris for reminding me of something I supposedly knew. :)

Read more

MDT 2008 Source Code

I’m not sure how I missed this one or how long it has been available but you can download the source code for MDT 2008 from Microsoft Download. You can learn a lot about how MDT 2008 works and also a lot about managed MMC snap-ins from the MDT 2008 source code. Click here to download.

Read more

Unattended Installation for the .NET Framework 3.5

There seems to be a bit of confusion around the place about installing the .NET Framework 3.5 and it’s prerequisites. Firstly I’ll say that the .NET Framework 3.5 standalone redistributable package available from the Microsoft Download Center contains all the prerequisites for .NET 3.5 except the Windows Installer 3.1 Redistributable. Yes it’s true, everything you need is in the one file: dotnetfx35.exe.

Secondly there is some great information on deploying the .NET Framework 3.5 on MSDN at

You will see from the article above you can silently install the .NET Framework 3.5 but running the following command:

  • dotnetfx35.exe /q /norestart

Wow! Couldn’t be easier! However what if you’re in an environment where everything is installed via MSIs and undergoes a certain degree of package standardization before deployment??? I found myself in this situation and as it turns out there is a lot of information available on this as well. Aaron Stebner has a wealth of information on installing the .NET Framework. In particular:

There is also a batch script at the bottom of for creating the Administrator installation points. I had a few problems with the script on MSDN so I used my own version which is included below. Download dotnetfx35.exe from Microsoft Downloads and place it in a temp folder somewhere under a directory called 3.5. I used C:\netFramework\3.5 as my location. Then copy the batch file below into a file called Create35AdminInstall.cmd under C:\netFramework. Double-Click the Batch file and you’re away!! When the script is finished you will end up with admin install points for:

  • MSXML Parser 6 – msiexec /i netfx35_deploy\AdminInstallPoint\MSXML6_x86\msxml6.msi /qb-
  • RGB Rasterizer – msiexec /i netfx35_deploy\AdminInstallPoint\RGBRAST_x86\RGB9RAST_x86.msi /qb-
  • .NET Framework 2.0 SP1 – msiexec /i netfx35_deploy\AdminInstallPoint\NETFX20_x86\netfx20a_x86.msi /qb VSEXTUI=1
  • .NET Framework 3.0 SP1 – msiexec /i netfx35_deploy\AdminInstallPoint\NETFX30_x86\netfx30a_x86.msi /qb VSEXTUI=1
  • .NET Framework 3.5 – msiexec /i netfx35_deploy\AdminInstallPoint\netfx35_x86\vs_setup.msi  /qb VSEXTUI=1


@Echo Off
set WORKFOLDER=%~dp0netfx35_deploy
set dotNetFX35build=%WORKFOLDER%\dotnetfx35.exe
echo Creating Admin Install points for NETFX3 %PROCESSOR_ARCHITECTURE%

REM Create folders where work will be done
md “%WORKFOLDER%\extracted”
md “%WORKFOLDER%\AdminInstallPoint”
md “%WORKFOLDER%\logs”

REM Extract the files from the NETFX35 redist SFX
Echo Extract the files from the NETFX35 redist SFX
call “%~dp03.5\dotnetfx35.exe” /q /x:”%WORKFOLDER%\extracted”

REM ————————————————————
REM create the MSXML6 x86 admin install point
Echo Create the MSXML6 x86 admin install point
md “%WORKFOLDER%\AdminInstallPoint\MSXML6_x86”
call msiexec /a “%WORKFOLDER%\extracted\wcu\dotNetFramework\dotNetFX30\x86\msxml6.msi” /qb /l*v “%WORKFOLDER%\logs\MSXML6_x86.log” Targetdir=”%WORKFOLDER%\AdminInstallPoint\MSXML6_x86″

REM ————————————————————
REM create the RGBRAST x86 admin install point
Echo Create the RGBRAST x86 admin install point
md “%WORKFOLDER%\AdminInstallPoint\RGBRAST_x86”
call msiexec /a “%WORKFOLDER%\extracted\wcu\dotNetFramework\dotNetFX30\RGB9RAST_x86.msi” /qb /l*v “%WORKFOLDER%\logs\RGBRAST_x86.log” REBOOT=ReallySuppress Targetdir=”%WORKFOLDER%\AdminInstallPoint\RGBRAST_x86″

REM ————————————————————
REM Extract NETFX 35 x86 components
Echo Extract NETFX 35 x86 components
md “%WORKFOLDER%\extracted\netfx35_x86”
call “%WORKFOLDER%\extracted\wcu\dotNetFramework\dotNetFX35\x86\netfx35_x86.exe” /q /x: “%WORKFOLDER%\extracted\netfx35_x86”

REM ————————————————————
REM create the NETFX35 x86 admin install point
Echo Create the NETFX35 x86 admin install point
md “%WORKFOLDER%\AdminInstallPoint\netfx35_x86”
call msiexec /qb /a “%WORKFOLDER%\extracted\netfx35_x86\vs_setup.msi” USING_EXUIH=1 REBOOT=ReallySuppress /l*v “%WORKFOLDER%\logs\netfx35_x86.log” TARGETDIR=”%WORKFOLDER%\AdminInstallPoint\netfx35_x86″

REM ————————————————————
REM create the NETFX20 x86 SP1 admin install point
Echo Create the NETFX20 x86 SP1 admin install point

REM 2.0 SP1 files location
Set fx20=%WORKFOLDER%\extracted\wcu\dotNetFramework\dotNetFX20\
md “%WORKFOLDER%\AdminInstallPoint\NETFX20_x86”
call msiexec /a “%fx20%netfx20a_x86.msi” TARGETDIR=”%WORKFOLDER%\AdminInstallPoint\NETFX20_x86″
call msiexec /a “%WORKFOLDER%\AdminInstallPoint\NETFX20_x86\netfx20a_x86.msi” PATCH=”%fx20%ASPNET.msp;%fx20%CLR.msp;%fx20%CRT.msp;%fx20%NetFX_CA.msp;%fx20%NetFX_Core.msp;%fx20%NetFX_Other.msp;%fx20%PreXP.msp;%fx20%WinForms.msp;%fx20%DW.msp” USING_EXUIH=1 REBOOT=ReallySuppress /l*v “%WORKFOLDER%\logs\netfx20_x86.log”

REM msiexec.exe /i c:\netfx20sp1\x86\AIP\netfx20a_x86.msi /l*v %temp%\netfx20sp1x86log.txt /qb VSEXTUI=1

REM ————————————————————
REM create the NETFX30 SP1 x86 admin install point
Echo Create the NETFX30 x86 SP1 admin install point

REM 3.0 SP1 files location
Set fx30=%WORKFOLDER%\extracted\wcu\dotNetFramework\dotNetFX30\
md “%WORKFOLDER%\AdminInstallPoint\NETFX30_x86”
call msiexec /a “%fx30%netfx30a_x86.msi” TARGETDIR=”%WORKFOLDER%\AdminInstallPoint\NETFX30_x86″
call msiexec /a “%WORKFOLDER%\AdminInstallPoint\NETFX30_x86\netfx30a_x86.msi” PATCH=”%fx30%WCF.msp;%fx30%WCS.msp;%fx30%WF.msp;%fx30%WPF1.msp;%fx30%WPF2.msp;%fx30%WPF_Other.msp;%fx30%XPS.msp;%fx30%WF_32.msp;%fx30%WPF2_32.msp;%fx30%WPF_Other_32.msp” USING_EXUIH=1 REBOOT=ReallySuppress /l*v “%WORKFOLDER%\logs\netfx30_x86.log”


The batch file can be download (1.87 KB)

Read more

Outlook slow when doing LDAP lookup

I recently upgraded my work PC to include Outlook 2003, (don’t ask) and discovered that Outlook 2003 was painfully slow when doing any LDAP searches. This is actually a known problem with Outlook and LDAP lookups so lets get straight to the fix.

Add the follow to the registry:

[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\LDAP] “DisableVLVBrowsing”=dword:00000001

Or you can just download the following file LDAPOutlookFix.reg (.36 KB)



Read more

Extracting or Silent Install of HP SoftPaq Drivers

I do a lot of unattended installs of Windows an find that extracting or silently installing some of the HP Softpaq drivers is quite troublesome. Over time I’ve discovered a number of options that may be helpful:

  • “SPxxxxx.exe is the SoftPaq to unpack
  • “-pdf” is a runtime switch that overrides the build parameters
  • “-f” is a runtime switch that overrides the default path set at build time
  • “-s” instructs the package to unpack in silent mode, skipping the Welcome, License, and Directory screens
  • “-e” instructs the package to extract only, that is, do not run the component installation program.
  • -s -a -silent -reboot (Good for silent installs.)
Read more

Using MBSA 2.0 behind a Firewall

With the MBSA 1.0 it was relatively simple to use inside corporate firewalls, you just had to get a single file from Microsoft and you were away. As I discovered just recently, things are a little more difficult in MBSA 2.0.

Firstly MBSA 2.0 uses the new Windows Update Agent(WUA) API which is described by Microsoft as “a set of COM interfaces that enable system administrators and programmers to access Windows Update and Windows Server Update Services (WSUS).” The WUA is typically installed by going to Windows Update or turning on Automatic Updates but since this may not be possible in a testing or development environment here is what you need to do:

    1. Go to Updating the Windows Update Agent
    2. Click on the link to download (
    3. Extract the XML file from
    4. Open the XML. (The XML file contains a list of node that store the latest version information and download link for WUA.)
    5. Find the architecture node that machines your platform and copy the downloadUrl entry. (For most people that will be x86)
    6. Paste into a browser and download the file.
    7. Also look at the MUAuthCab entry and copy the url into a browser and download the file.
    8. Place these two files into %USERPROFILE%\Local Settings\Application Data\Microsoft\MBSA\2.0\Cache

Now go ahead and get the latest version of MBSA 2.0 from Microsoft and install it (

The final step is to download a file called into %USERPROFILE%\Local Settings\Application Data\Microsoft\MBSA\2.0\Cache. can be obtained from here.

Now you can fire up MBSA 2.0 and scan to your hearts content. As a word of warning, make sure you update on a daily basis so that you have the most up-to-date patch information at hand.

Read more

Exporting and Importing Dialup and VPN Connections

I’m in the middle of creating an SOE (Standard Operating Environment) and found a neat little way to import and export Dialup and VPN settings. Go into your network connections dialog and create the connections that you wish to export. Then go to C:\Documents and Settings\All Users\Application Data\Microsoft\Network\Connections\Pbk and copy the file called rasphone.pbk. The next time you need to create those connection you just copy the file to that location. Or if you are building an unattended installed or network install of Windows XP place the file in your $OEM$ dir like so, $OEM$\$Docs\All Users\Application Data\Microsoft\Network\Connections\Pbk.

(Be aware that if you are doing a dialup connection you may need to manually edit the connection if you have imported a .pbk from another machine that does not share the same modem.)

Read more

How to fix Windows XP SourcePath pointing to the wrong spot

Have you ever been installing an optional component of windows, such as IIS, and been prompted with the box below:


Some might say, “Well you are obviously and idiot, put the CD in the drive.” It just so happens that you can get this message when you do have the CD in the drive. What’s happened here is that you’ve changed the path to the location where windows was installed from. So in my case when i originally installed windows the CD drive was G:, now it is F:. Windows stores this information in the registry under a String Value called SourcePath. To Change the value open up regedit and go to: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup and change SourcePath to the new location of our XP install files. In may case I set it to F: Now as long as I have the CD in the drive I won’t be prompted to select a location.


If you want to do away with the need to keep putting your CD in the drive, just copy your I386 directory to the hard drive and point SourcePath to the location you’ve copied the files to. Simple.

Read more

Microsoft release an updated Solutions Accelerator for Desktop Deployment

I just noticed that Microsoft have again updated their Solution Accelerator for Business Desktop Deployment(BDD). If you are interested in automating a deployment of windows xp take a look as it is really very good. You can find the BDD over here.

Read more