Do you want to be a Windows 7 rock star…

By arwidmark / January 19, 2010

Super security rock star Steve Riley, Mikael Nystrom and me is coming to a town near you in March. It’s the Windows 7 RoadShow – 2010 Edition. A full day technical seminar on Windows 7.

On the Agenda: Live Demonstrations – Leading Experts – Windows 7 – Security – Management – Deployment – Tips & Tricks.

For more info and registration, go to 

/ Johan

Generate Computernames in MDT 2010 based on prefix and a sequencenumber

By arwidmark / January 16, 2010

Generate Computernames in MDT 2010 based on prefix and a sequencenumber

This procedure works like this: If they computername is in the database already (known), it will assign that name to the PC. If the computer is not in the database (unknown), it will generate a computername based on the prefix and the next sequencenumber.

Step 1- Setting up the Database (detailed step-by-step guide & Video tutorial for this step is available for download on )

  1. On the MDT Server (MDT01 in my example), install SQL Server 2008 Express SP1. After installation, enable Named Pipes and restart the service
  2. Using the Deployment Workbench, in the advanced node, create a new Database (named MDT in my example)
  3. Using SQL Management Studio (Server name is MDT01\SQLEXPRESS), create a Security Login for the domain\user account that you use for your Lite Touch installations
  4. For the previously created Security Login, add the following permissions to the MDT Database.
    1. db_datareader
    2. db_datawriter

Step 2 – Add and configure a Stored Procedure + Table for generating computernames based on prefix + sequencenumber

  1. Download the files from here…
  2. Using SQL Management Studio, open the InsertComputerNames.sql script and execute it (F5)
  3. For the Security Login created in Step 1, grant execute permissions to the IdentifyComputer Stored Procedure (found under Programmability / Stored Procedures)
  4. Open the MachineName.sql script and execute it (F5)
  5. Edit the MachineNameSequence table, in the prefix field, type in PC, in the sequence field type in 0 (Zero)

Step 3 – Configure the Deployment Share rules

  1. Use the info in the sample customsettings.ini file to configure the rules on your deployment share to use the stored procedure

/ Johan

Pushing MDT 2010 Lite Touch installations to remote clients…

By arwidmark / January 16, 2010

To start a MDT 2010 Lite Touch installation remotely, e.g. without having to visit the machine, you can use the psexec tool (Microsoft / Sysinternals).

In my sample the remote PC is named PC0004 and my deployment server is MDT01. The deployment share is MDTProduction$ and the user account I use for my installations is TSLAB\BuildAccount. That account has administrator rights on the PC0004 machine.

  1. On MDT01, configure the rules (bootstrap.ini and customsettings.ini) on the deploymentshare so that the refresh installation process is fully automated. Below you find a fully automated sample rule set.
    [Settings] Priority=Default
    [Default] SkipBDDWelcome=YES
    [Settings] Priority=Default
    TimeZoneName=Pacific Standard Time
  2. Make sure the account used has administrator rights on PC0004. Can be achieved in many ways, I normally use Group Policy and the restricted groups feature to remotely add members to the administrators group on the clients.
  3. If the firewall is enabled on PC0004, make sure that the File and Printer Sharing exception is allowed. I use Group Policy for that too.
  4. On MTD01, download the PSTools package from Microsoft, extract it, and copy psexec.exe to C:\Windows\System32.
  5. On MDT01, in a command prompt (or via a batchfile), execute psexec.exe \\PC0004 -u TSLAB\BuildAccount -p P@ssw0rd cscript.exe \\MDT01\MDTProduction$\Scripts\litetouch.vbs

 / Johan


MDT 2010 Lite Touch, Windows XP and VMware Workstation 7.0

By arwidmark / January 11, 2010

Recently I have received quite a number of emails from people having problem using VMware Workstation 7.0 to build reference images with MDT 2010 Lite Touch. Here is a guide…

Verify the XP media, the VM, and get the drivers

First, verify that the Windows XP Pro Media is working correctly, and that your vmware workstation VM happily will deploy XP. And as a bonus – get all the vmware drivers unpacked and ready to import later on.

  1. Download the Windows XP Pro SP3 ISO from Microsoft
  2. Create a Virtual Machine with the following Settings
    Hardware Compatibility: Workstations 6.5-7.0
    Install From: I will install the operating system later
    Guest operating system: Microsoft – Windows XP Professional
    Processor Configuration:
    Memory: (512 MB)
    Network Type: Use host-only networking
    SCSI Adapter: Buslogic
    Virtual Disk SCSI:
    Disk Size: 40 GB
  3. Take a snapshot of the virtual machine
  4. Configure the VM to use the Windows XP Pro SP3 iso 
  5. Start the VM, and boot from the Windows XP iso, during setup start, press F6 to load a third party mass storage driver
  6. When prompted for additional mass storage drivers, connect the VMware SCSI Driver Floppy (C:\Program Files\VMware\VMware Workstation\Resources\vmscsi.flp), and press S to specify additional drivers and select the VMWARE SCSI Controller.
  7. After the textpart of the setup is complete, disconnect the SCSI Driver Floppy.
  8. After the Windows XP Pro SP3 Setup is complete, install the VMware Tools
  9. From the VM, copy the following folders from C:\Program Files\VMware\VMware Tools\Drivers to your deployment server
  10. From the VM, copy the following folders from C:\Program Files\Common Files\VMware\Drivers to your deployment server

Configure the Deployment Server

  1. On your MDT 2010 Lite Touch deployment server, extract the Windows XP Pro ISO file to a folder.
  2. Then, using the MDT 2010 Deployment Workbench, Create a deployment share
  3. Import the Windows XP Operating System (Unattend setup)
  4. Import the vmware drivers
  5. Create a task sequence
  6. Update the deployment share
  7. Copy the LiteTouchPE_x86.iso to the host PC
  8. Revert the XP VM back to its snapshot, configure it to boot from the LiteTouchPE_x86.iso, start it and complete the deployment wizard (select WORKGROUP and to capture to an image)
  9. MDT will now deploy Windows XP, inject the vmware drivers, run sysprep and create a Wim file on the server.


If you want to reduce the time it takes to run sysprep to just a few minutes, do the following:

  1. In the folder where you have the XP operating System, create a $OEM$\$1\Drivers\Ref_VMSCSI folder and copy the VMware SCSI driver to that folder.
  2. In the Task Sequence, disable the “Add mass storage drivers to sysprep.inf for XP and 2003” action.
  3. Configure the [Sysprep] and [SysprepMassStorage] sections in sysprep inf to look like below.

    [Sysprep] ;   BuildMassStorageSection = Yes

    [SysprepMassStorage] ;
    ; Added for VMware VMSCSI Support
    PCI\VEN_104B&DEV_1040 = C:\Drivers\Ref_VMSCSI\vmscsi.inf
    ; Below driverlist is Common XP builtin drivers

Deploy the image

To test deploying the new image.

  1. Import the Windows XP Pro SP3 Custom Image.
  2. Create a new task sequence
  3. Revert the XP VM back to its snapshot, configure it to boot from the LiteTouchPE_x86.iso, start it and complete the deployment wizard (don’t select to capture the image)
  4. MDT will now deploy the Windows XP Pro SP3 Custom Image



MDT 2010 Annoyances #7 – ZTI Task Sequence may hang in State Restore phase when deploying Windows 7 x64

By arwidmark / January 10, 2010

When using MDT 2010 Zero Touch to deploy Windows 7 x64 the Task Sequence may hang in State Restore phase. The hang occurs when the Use MDT Toolkit Action tries to run.

It’s actually not MDT’s fault, its a bug in ConfigMgr, and it will occur for every script/action that tries to use the Microsoft.SMS.TSEnvironment. The root cause is an invalid registry entry preventing tscore.dll from registering.

Fix the registry by adding the following code to ZTISCCM.wsf, here is the updated script:

Dim tmpShell, tmpFSO
Set tmpShell = CreateObject(“WScript.Shell”)
Set tmpFSO = CreateObject(“Scripting.FileSystemObject”)
If tmpFSO.FileExists(tmpShell.ExpandEnvironmentStrings(“%WINDIR%\SysWOW64\CCM\TSCore.DLL”)) then
  On Error Resume Next
  tmpShell.RegWrite “HKCR\TypeLib\{D5E1749D-832D-4587-AFC3-9462187FE2F5}\1.0\0\win64\”, tmpShell.ExpandEnvironmentStrings(“%WINDIR%\SysWOW64\CCM\TSCore.DLL”)
   On Error Goto 0
End if


MDT 2010 Annoyances #6 – TimeZoneName variable does not work correctly with Windows 7 x64

By arwidmark / January 5, 2010

When deploying Windows 7 x64 using MDT 2010 Zero Touch and ConfigMgr 2007 SP2 the TimeZoneName variable does not work as expected. Windows 7 x86 however works fine.


Add a “Set a  Task Sequence variable” action before the “Apply Windows Settings” action in the Task Sequence, and set OSDTimeZone to %TIMEZONENAME%

Note: You also need to have a x64 unattend.xml in your settings package.


Windows Embedded 2009 Trial Edition and Sysprep

By arwidmark / December 27, 2009

When deploying Windows Embedded 2009 Trial Edition with sysprep you need to enter a valid runtime PID.

If you add the Trial PID you got from Microsoft into sysprep.inf, and you deploy that image, the mini-setup will display the following error message: “An unexpected error has occurred while changing your computer network configuration“. Later on, after the mini-setup the Windows Embedded OS will reboot into a hang.

Solution: Retrieve the Trial runtime PID from the system (not the same as the Embedded Trial PID from Microsoft)

After building your base image (running through FBA etc.), open regedit and locate  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\WindowsEmbedded key. In here you will find the RunTimePID value. Copy that PID into sysprep.inf and it will work like a charm.

Quote of the day – Dealing with Multiple Partitions

By arwidmark / December 14, 2009

The best multiple partitions analogy ever…

Generally I would always recommend to only have ONE partition these days. Going down the route of making multiple partitions is like having multiple wives/girlfriends/lovers… it’s all fun and games for a while but ends with disaster.

– Andreas H.

1 3 4 5 6 7 15
Page 5 of 15