<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Deployment Guys : MDT</title><link>http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx</link><description>Tags: MDT</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Preventing OEM builds from Accidentally Performing Mini-Setup without the Task Sequence</title><link>http://blogs.technet.com/deploymentguys/archive/2009/12/01/preventing-oem-builds-from-accidentally-performing-mini-setup-without-the-task-sequence.aspx</link><pubDate>Tue, 01 Dec 2009 16:48:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3297619</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3297619.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3297619</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3297619</wfw:comment><description>When you pre-load an OEM build on machines, they are usually set-up to perform Mini-setup as soon as they come up. Customers sometimes have difficulties ensuring that these machines boot to WinPE using boot media or PXE rather than simply performing Mini-setup...(&lt;a href="http://blogs.technet.com/deploymentguys/archive/2009/12/01/preventing-oem-builds-from-accidentally-performing-mini-setup-without-the-task-sequence.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3297619" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Approving Windows Updates in an MDT 2010 Standalone Environment from a ConfigMgr Software Update Point</title><link>http://blogs.technet.com/deploymentguys/archive/2009/10/22/approving-windows-updates-in-an-mdt-2010-standalone-environment-from-a-configmgr-software-update-point.aspx</link><pubDate>Thu, 22 Oct 2009 01:06:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3288304</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3288304.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3288304</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3288304</wfw:comment><description>You’ve no doubt read some of the benefits around using the Software Update Point features of ConfigMgr. However, if you are already using MDT standalone as an Image Engineering environment – there is sometimes a duplication in having to manage software...(&lt;a href="http://blogs.technet.com/deploymentguys/archive/2009/10/22/approving-windows-updates-in-an-mdt-2010-standalone-environment-from-a-configmgr-software-update-point.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3288304" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3288304.ashx" length="1498" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/deploymentguys/archive/tags/ConfigMgr/default.aspx">ConfigMgr</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category></item><item><title>Making WinPE Wait for Network in LTI Deployments</title><link>http://blogs.technet.com/deploymentguys/archive/2009/09/23/making-winpe-wait-for-network-in-lti-deployments.aspx</link><pubDate>Wed, 23 Sep 2009 21:24:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3282767</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3282767.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3282767</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3282767</wfw:comment><description>&lt;P&gt;In some environments, network device drivers and/or infrastructure take longer to load than WinPE waits before running the task sequence. This can be due to congested DHCP scopes, link negotiation latency or slow loading network drivers. In these cases, it is necessary to delay the start of the task sequence until a valid IP address is obtained otherwise the task sequence will fail. &lt;/P&gt;
&lt;P&gt;In order to do this, you can create a script that will wait for a valid IP address before continuing on with the LiteTouch Wizard. The LiteTouch Wizard is launched using a RunSynchronous command in the Unattend.xml file for WinPE. MDT obtains this file from %ProgramFiles%\Microsoft Deployment Toolkit\Templates folder. Here are instructions for doing this with MDT 2008 and an x86 Boot Image &lt;STRONG&gt;(UPDATE : MDT 2010 includes a wait by default)&lt;/STRONG&gt;:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;1. Navigate to %ProgramFiles%\Microsoft Deployment Toolkit\Templates and rename the Unattend_PE_x86.xml file to Unattend_PE_x86.old&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;2. Copy the attached Unattend_PE_x86.xml file to %ProgramFiles%\Microsoft Deployment Toolkit\Templates .&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;3. Navigate to your Distribution Share&amp;nbsp;and copy the attached WinPEFiles folder there.&lt;/P&gt;
&lt;P&gt;4. Navigate to the WinPEFiles\Windows\System32 edit the file “WaitForIP.bat” replace &amp;lt;SERVERNAME&amp;gt; with the name of your WDS Server.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/MakingWinPEwaitforNetwork_F2FA/image_4.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/MakingWinPEwaitforNetwork_F2FA/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/MakingWinPEwaitforNetwork_F2FA/image_thumb_1.png" width=244 height=170 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/MakingWinPEwaitforNetwork_F2FA/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;5. In the Deployment Workbench ,&amp;nbsp;navigate to&amp;nbsp;the Deploy Node and right click on the LAB deploy point and&amp;nbsp;choose &lt;STRONG&gt;Properties&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;6. In the Windows PE tab under extra directory to add and Browse to the WinPEFiles folder created in step 3. Note: navigate to the WinPEFiles and not any of the sub directories. Click OK to apply the change.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/MakingWinPEwaitforNetwork_F2FA/image_8.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/MakingWinPEwaitforNetwork_F2FA/image_8.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/MakingWinPEwaitforNetwork_F2FA/image_thumb_3.png" width=510 height=417 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/MakingWinPEwaitforNetwork_F2FA/image_thumb_3.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;7. In the Deployment Workbench , right click on the LAB Deploy point and choose “&lt;STRONG&gt;Update”&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;This post was contributed by &lt;/EM&gt;&lt;STRONG&gt;&lt;I&gt;Aly Shivji&lt;/I&gt;&lt;/STRONG&gt;&lt;EM&gt; a consultant with Microsoft Services - U.S. East Region.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the &lt;/STRONG&gt;&lt;A href="http://www.microsoft.com/info/cpyright.mspx" mce_href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;STRONG&gt;Terms of Use&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3282767" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3282767.ashx" length="1735" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category></item><item><title>Using Device Aliases for Hardware Specific Application Installation</title><link>http://blogs.technet.com/deploymentguys/archive/2009/09/21/using-device-aliases-for-hardware-specific-application-installation.aspx</link><pubDate>Mon, 21 Sep 2009 12:36:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3280390</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3280390.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3280390</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3280390</wfw:comment><description>&lt;P&gt;In my last &lt;A href="http://blogs.technet.com/deploymentguys/archive/2009/09/10/using-and-extending-model-aliases-for-hardware-specific-application-installation.aspx" target=_blank mce_href="http://blogs.technet.com/deploymentguys/archive/2009/09/10/using-and-extending-model-aliases-for-hardware-specific-application-installation.aspx"&gt;post&lt;/A&gt; I described how to use and extend model aliases.&amp;nbsp; In this installment I show how you can do the same thing with individual devices or groups of devices.&lt;/P&gt;
&lt;P&gt;Defining setting, applications, etc. by model works in many instances.&amp;nbsp; However, there are time when a device may or may not be installed in any particular model (e.g. broadband wireless adapter) and you may need to install an application only if the device is installed.&amp;nbsp; I had just such a need at my current customer and this led me to develop a concept of Device Aliases.&amp;nbsp; I define a Device Alias as a friendly name given to a device or groups of devices for which you want to configure the same settings, applications, etc.&lt;/P&gt;
&lt;P&gt;I used a simple version of the concept of a Device Alias in my post on &lt;A href="http://blogs.technet.com/deploymentguys/archive/2008/08/03/implementing-the-windows-xp-tablet-pc-edition-2005-single-image-deployment-supplemental-guide-process-in-mdt-2008-full-update.aspx" target=_blank mce_href="http://blogs.technet.com/deploymentguys/archive/2008/08/03/implementing-the-windows-xp-tablet-pc-edition-2005-single-image-deployment-supplemental-guide-process-in-mdt-2008-full-update.aspx"&gt;Windows XP Tablet PC Edition 2005 Single-Image Deployment&lt;/A&gt;.&amp;nbsp; The IsTablet property is actually a device alias for the defined set of digitizer devices.&amp;nbsp; IsTablet is set to True when one of the digitizer devices if present.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Settings] &lt;BR&gt;Priority=IsTabletCheck, Default &lt;BR&gt;Properties=MyCustomProperty, TabletPnpIds, IsTablet &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[IsTabletCheck] &lt;BR&gt;TabletPnpIds=ACPI\WACF004,ACPI\WACF008,ACPI\MAI3310,ACPI\FUJ02E5 &lt;BR&gt;UserExit=ZTI-DetectHardwareExit.vbs &lt;BR&gt;IsTablet=#DetectDevices("%TabletPnpIds%")#&lt;/FONT&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You could use this method as is to create additional device aliases.&amp;nbsp; However, once you have more that a few of these, the Properties line in CustomSettings.ini would become loaded with Device Alias variables.&amp;nbsp; So I took a different approach for defining multiple Device Aliases.&amp;nbsp; Before I explain, I want to note that for my new design to work you will need to fix a bug that I found in one of the MDT scripts.&amp;nbsp; I explain how to fix the script at the end of this post.&lt;/P&gt;
&lt;P&gt;I decided to design the new implementation with its own INI file called DeviceAlias.ini.&amp;nbsp; Below is a sample INI file that I created for testing this on my laptop (Lenovo T61p).&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[HIDClass] &lt;BR&gt;WacomDigitizer=ACPI\WACF004,ACPI\WACF008 &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Display] &lt;BR&gt;NVIDIAQuadroFX570M=PCI\VEN_10DE&amp;amp;DEV_040C,PCI\VEN_10DE&amp;amp;CC_030000 &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Net] &lt;BR&gt;Intel82566MMGigabit=PCI\VEN_8086&amp;amp;DEV_1049,PCI\VEN_8086&amp;amp;CC_020000 &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[NoPrefix] &lt;BR&gt;IsTablet=ACPI\WACF004,ACPI\WACF008,ACPI\MAI3310,ACPI\FUJ02E5 &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[NoPrefix-Mouse] &lt;BR&gt;ThinkPadUltraNav=ACPI\IBM0057&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This INI file is organized in to sections.&amp;nbsp; The sections contain the &amp;lt;Device Alias entry&amp;gt;=&amp;lt;Plug and Play ID list&amp;gt; entries.&amp;nbsp; These section names are used in a prefix that is added to the device alias.&amp;nbsp; When the prefix is added the Device Alias is of the form Device_&amp;lt;section name&amp;gt;_&amp;lt;device alias entry&amp;gt;.&amp;nbsp; In this example, a machine with an NVIDIA Quadro FX570M display adapter would have a the Device Alias of &lt;STRONG&gt;Device_Display_NVIDIAQuadroFX570M&lt;/STRONG&gt; set to True.&amp;nbsp; I add the prefix to make it easier to find and sort Device Alias entries in the &lt;STRONG&gt;Make and Model&lt;/STRONG&gt; entries in the MDT Database.&amp;nbsp; As in the example above, I like to use the device class as the prefix.&amp;nbsp; However, the section names can be anything you want.&amp;nbsp; For Device Alias variables that you don’t want to have a prefix (&lt;STRONG&gt;IsTablet&lt;/STRONG&gt; is a good example), just begin the section name with &lt;STRONG&gt;NoPrefix&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;I have updated ZTI-DetectHardwareExit.vbs with two new functions to process the Device Alias INI file.&amp;nbsp; The first, SetDeviceAliases, reads each section in the INI file and evaluates each entry to determine if any of the Plug and Play IDs in the list for the entry is installed.&amp;nbsp; It then sets the Device Alias for that entry to True or False based on that determination.&amp;nbsp; Finally, for any Device Alias that is True (the device is present), the Device Alias is added to a list item called &lt;STRONG&gt;DeviceAlias&lt;/STRONG&gt;.&amp;nbsp; This list item is used in the database queries.&amp;nbsp; Below is an example of the CustomSettings.ini entries to use SetDeviceAliases.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Settings] &lt;BR&gt;Priority=SetDeviceAlias &lt;BR&gt;Properties=MyCustomProperty, SetDeviceAliases&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[SetDeviceAlias] &lt;BR&gt;UserExit=ZTI-DetectHardwareExit.vbs &lt;BR&gt;SetDeviceAliases=#SetDeviceAliases("DeviceAlias.ini")#&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Even a Device Alias is insufficient to identify which hardware specific applications should be installed during a deployment.&amp;nbsp; At minimum, you usually also need to know the operating system version and architecture for which the applications are targeted.&amp;nbsp; For example, for an NVIDIA Quadro FX570M display adapter you would typically have one or more hardware specific applications for Windows XP x86, one for Windows Vista x86, one for Windows Vista x64, etc.&amp;nbsp; To that end I created a new composite property called &lt;STRONG&gt;DeviceOSArchAlias&lt;/STRONG&gt;. which combines the Device Alias, OSVersion, and Architecture properties.&amp;nbsp; (I refer to this property by a newly minted acronym called &lt;STRONG&gt;DOAA&lt;/STRONG&gt;.&amp;nbsp; Sounds like something Homer Simpson would say. &lt;FONT face=Wingdings&gt;J&lt;/FONT&gt; )&amp;nbsp; I create this by using another new function, SetDeviceOSArchAliases, using CustomSettings.ini entries like the ones below:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Settings] &lt;BR&gt;Priority=SetDeviceAlias &lt;BR&gt;Properties=MyCustomProperty, SetDeviceAliases, SetDeviceOSArchAliases &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[SetDeviceAlias] &lt;BR&gt;UserExit=ZTI-DetectHardwareExit.vbs &lt;BR&gt;SetDeviceAliases=#SetDeviceAliases("DeviceAlias.ini")# &lt;BR&gt;SetDeviceOSArchAliases=#SetDeviceOSArchAliases("DeviceAlias.ini")#&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;SetDeviceOSArchAliases also adds the DOAA entries that are True to a list item called &lt;STRONG&gt;DeviceOSArchAlias&lt;/STRONG&gt; to be used in the database queries.&amp;nbsp; So for the DeviceAlias.ini shown above, SetDeviceOSArchAliases run on a Windows Vista x64 machine that an NVIDIA Quadro FX570M display adapter, an Intel 82566MM Gigabit ethernet adapter, and a ThinkPad UltraNav pointing device will create the following properties and list items: &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;U&gt;Device Alias Properties&lt;/U&gt; &lt;BR&gt;Device_HIDClass_WacomDigitizer = False &lt;BR&gt;Device_Display_NVIDIAQuadroFX570M = True &lt;BR&gt;Device_Net_Intel82566MMGigabit = True &lt;BR&gt;IsTablet = False &lt;BR&gt;ThinkPadUltraNav = True &lt;/P&gt;
&lt;P&gt;&lt;U&gt;DeviceAlias List Item&lt;/U&gt; &lt;BR&gt;DeviceAlias001 = Device_Display_NVIDIAQuadroFX570M &lt;BR&gt;DeviceAlias002 = Device_Net_Intel82566MMGigabit &lt;BR&gt;DeviceAlias003 = ThinkPadUltraNav &lt;/P&gt;
&lt;P&gt;&lt;U&gt;DOAA Properties&lt;/U&gt; &lt;BR&gt;DOAA_Display_NVIDIAQuadroFX570M_Vista_X64 = True &lt;BR&gt;DOAA_Net_Intel82566MMGigabit_Vista_X64 = True &lt;BR&gt;ThinkPadUltraNav_Vista_X64 = True &lt;/P&gt;
&lt;P&gt;&lt;U&gt;DeviceOSArchAlias List Item&lt;/U&gt; &lt;BR&gt;DeviceOSArchAlias001 = DOAA_Display_NVIDIAQuadroFX570M_Vista_X64 &lt;BR&gt;DeviceOSArchAlias002 = DOAA_Net_Intel82566MMGigabit_Vista_X64 &lt;BR&gt;DeviceOSArchAlias003 = ThinkPadUltraNav_Vista_X64&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;To define settings, applications, roles, etc. in the MDT Database based on either the &lt;STRONG&gt;DeviceAlias &lt;/STRONG&gt;or &lt;STRONG&gt;DeviceOSArchAlias&lt;/STRONG&gt;, enter the DeviceAlias or DeviceOSArchAlias as the &lt;STRONG&gt;Model&lt;/STRONG&gt; in the &lt;STRONG&gt;Make and Model&lt;/STRONG&gt; entries in the Database.&amp;nbsp; You can put anything you want in the the Make field in the database entries.&amp;nbsp; I enter the alias type (DeviceAlias or DeviceOSArchAlias) so that I can sort the entries by type.&amp;nbsp; Here is a screen shot with a DeviceAlias or DeviceOSArchAlias entry for a device in the Panasonic Toughbook model CF-U1 that I have been working with recently.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsingandExtendingModelAliasesforHardware_D9A4/Model-DeviceAlias_2.jpg" target=_blank mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsingandExtendingModelAliasesforHardware_D9A4/Model-DeviceAlias_2.jpg"&gt;&lt;IMG title=Model-DeviceAlias border=0 alt=Model-DeviceAlias src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsingandExtendingModelAliasesforHardware_D9A4/Model-DeviceAlias_thumb.jpg" width=244 height=113 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsingandExtendingModelAliasesforHardware_D9A4/Model-DeviceAlias_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;You would then use CustomSettings.ini entries like the ones below.&amp;nbsp; (The DatabaseVariables section below is there because I like to use variables for the common database parameters in the other sections so that the actual values only have to be changed in the DatabaseVariables section.&amp;nbsp; Note that some lines may wrap on the screen depending on your display resolution.)&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Settings] &lt;BR&gt;Priority=SetDeviceAlias, DatabaseVariables, DASettings, DAPackages, DAApps, DAAdmins, DARoles, DOAASettings, DOAAPackages, DOAAApps, DOAAAdmins, DOAARoles &lt;BR&gt;Properties=MyCustomProperty, MASQLServer, MADatabase, MANetlib, MASQLShare, SetDeviceAliases, SetDeviceOSArchAliases &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[SetDeviceAlias] &lt;BR&gt;UserExit=ZTI-DetectHardwareExit.vbs &lt;BR&gt;SetDeviceAliases=#SetDeviceAliases("DeviceAlias.ini")# &lt;BR&gt;SetDeviceOSArchAliases=#SetDeviceOSArchAliases("DeviceAlias.ini")# &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[DatabaseVariables] &lt;BR&gt;MASQLServer=SQLS001 &lt;BR&gt;MADatabase=MDT &lt;BR&gt;MANetlib=DBNMPNTW &lt;BR&gt;MASQLShare=Logs$ &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[DASettings] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelSettings &lt;BR&gt;Parameters=DeviceAlias &lt;BR&gt;DeviceAlias=Model &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[DAPackages] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelPackages &lt;BR&gt;Parameters=DeviceAlias &lt;BR&gt;DeviceAlias=Model &lt;BR&gt;Order=Sequence &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[DAApps] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelApplications &lt;BR&gt;Parameters=DeviceAlias &lt;BR&gt;DeviceAlias=Model &lt;BR&gt;Order=Sequence &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[DAAdmins] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelAdministrators &lt;BR&gt;Parameters=DeviceAlias &lt;BR&gt;DeviceAlias=Model &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[DARoles] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelRoles &lt;BR&gt;Parameters=DeviceAlias &lt;BR&gt;DeviceAlias=Model &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[DOAASettings] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelSettings &lt;BR&gt;Parameters=DeviceOSArchAlias &lt;BR&gt;DeviceOSArchAlias=Model &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[DOAAPackages] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelPackages &lt;BR&gt;Parameters=DeviceOSArchAlias &lt;BR&gt;DeviceOSArchAlias=Model &lt;BR&gt;Order=Sequence &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[DOAAApps] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelApplications &lt;BR&gt;Parameters=DeviceOSArchAlias &lt;BR&gt;DeviceOSArchAlias=Model &lt;BR&gt;Order=Sequence &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[DOAAAdmins] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelAdministrators &lt;BR&gt;Parameters=DeviceOSArchAlias &lt;BR&gt;DeviceOSArchAlias=Model &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[DOAARoles] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelRoles &lt;BR&gt;Parameters=DeviceOSArchAlias &lt;BR&gt;DeviceOSArchAlias=Model&lt;/FONT&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;In a computer replacement and/or OS change (different source and destination OS) scenario you will likely only want to set the DeviceOSArchAlias and do the DOAA database queries using a Gather step in the State Restore phase.&amp;nbsp; This is because you will almost always want the hardware specific settings, application installations, etc. based on the target model and operating system.&lt;/P&gt;
&lt;H3&gt;Fixing the Database Class Bug&lt;/H3&gt;
&lt;P&gt;As I explained earlier, there is a bug in the MDT Database class that needs to be fixed before the database queries above will work.&amp;nbsp; If a parameter in the database section is a list item like DeviceOSArchAlias, then the Database class Query function does not use the translated column name (Model in this case) and the query fails.&lt;/P&gt;
&lt;P&gt;The problem appears in line 2691 in the MDT 2008 Update 1 version of ZTIUtility.vbs or line 549 in the MDT 2010 RTW version of ZTIDataAccess.vbs .&amp;nbsp; This line is:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;tmpClause = sElement &amp;amp; " IN ("&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The query works if the line is changed to:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;tmpClause = sColumn &amp;amp; " IN ("&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;If you need to make this change, be sure to edit not only the copies in your current deployment shares but also edit the copy in %ProgramFiles%\Microsoft Deployment Toolkit\Templates\Distribution\Scripts so that new deployment shares will get the fix as well.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the &lt;/STRONG&gt;&lt;A href="http://www.microsoft.com/info/cpyright.mspx" mce_href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;STRONG&gt;Terms of Use&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This post was contributed by &lt;B&gt;Michael Murgolo,&lt;/B&gt; a Senior Consultant with Microsoft Services - U.S. East Region.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3280390" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3280390.ashx" length="5046" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category></item><item><title>Using and Extending Model Aliases for Hardware Specific Application Installation</title><link>http://blogs.technet.com/deploymentguys/archive/2009/09/10/using-and-extending-model-aliases-for-hardware-specific-application-installation.aspx</link><pubDate>Thu, 10 Sep 2009 11:30:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3279639</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3279639.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3279639</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3279639</wfw:comment><description>&lt;P&gt;In a post on his blog from a few years ago (found &lt;A href="http://blogs.technet.com/benhunter/archive/2007/03/28/bdd-2007-tips-creating-model-aliases.aspx" target=_blank mce_href="http://blogs.technet.com/benhunter/archive/2007/03/28/bdd-2007-tips-creating-model-aliases.aspx"&gt;here&lt;/A&gt;) Ben Hunter described a method of creating and using model aliases using BDD/MDT User Exit scripts.&amp;nbsp; A model alias is a friendly name assigned to cover multiple model variations in a manufacturer’s computer model family.&amp;nbsp; I have been going through this exercise for my current customer and have found some limitations to using Ben’s process exactly as is.&lt;/P&gt;
&lt;P&gt;First, the MDT properties &lt;STRONG&gt;Make&lt;/STRONG&gt; and &lt;STRONG&gt;Model&lt;/STRONG&gt; (which come from the &lt;STRONG&gt;Manufacturer&lt;/STRONG&gt; and &lt;STRONG&gt;Model&lt;/STRONG&gt; properties of the &lt;A href="http://msdn.microsoft.com/en-us/library/aa394102(VS.85).aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/aa394102(VS.85).aspx"&gt;&lt;STRONG&gt;Win32_ComputerSystem&lt;/STRONG&gt;&lt;/A&gt; WMI class) are no longer sufficient or necessarily the most convenient properties for determining the model alias.&amp;nbsp; For example, distinguishing between Microsoft’s different types of virtual machines (Virtual PC, Virtual Server, Hyper-V) requires looking at &lt;STRONG&gt;Version&lt;/STRONG&gt; property of the &lt;A href="http://msdn.microsoft.com/en-us/library/aa394077(VS.85).aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/aa394077(VS.85).aspx"&gt;&lt;STRONG&gt;Win32_BIOS&lt;/STRONG&gt;&lt;/A&gt; WMI class.&amp;nbsp; Also, many current Lenovo computer models already have the &lt;STRONG&gt;Version&lt;/STRONG&gt; property of the &lt;A href="http://msdn.microsoft.com/en-us/library/aa394105(VS.85).aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/aa394105(VS.85).aspx"&gt;&lt;STRONG&gt;Win32_ComputerSystemProduct&lt;/STRONG&gt;&lt;/A&gt; WMI class filled in with a friendly name for the model.&amp;nbsp; Here is a sample of a User Exit script with an expanded &lt;STRONG&gt;SetModelAlias&lt;/STRONG&gt; function that uses this additional information. (Note that some lines may wrap on the screen depending on your display resolution.)&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;Function UserExit(sType, sWhen, sDetail, bSkip) &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLogging.CreateEntry "USEREXIT:ModelAliasExit.vbs started: " &amp;amp; sType &amp;amp; " " &amp;amp; sWhen &amp;amp; " " &amp;amp; sDetail, LogTypeInfo &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UserExit = Success &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;End Function &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;Function SetModelAlias() &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLogging.CreateEntry "------------ Initialization USEREXIT:ModelAliasExit.vbs|SetModelAlias -------------", LogTypeInfo &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sMake = oEnvironment.Item("Make") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sModel = oEnvironment.Item("Model") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = "" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sCSPVersion = "" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sBIOSVersion = "" &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set colComputerSystemProduct = objWMI.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Err then &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLogging.CreateEntry "Error querying Win32_ComputerSystemProduct: " &amp;amp; Err.Description &amp;amp; " (" &amp;amp; Err.Number &amp;amp; ")", LogTypeError &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each objComputerSystemProduct in colComputerSystemProduct &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If not IsNull(objComputerSystemProduct.Version) then &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sCSPVersion = Trim(objComputerSystemProduct.Version) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLogging.CreateEntry "USEREXIT:ModelAliasExit.vbs|SetModelAlias - Win32_ComputerSystemProduct Version: " &amp;amp; sCSPVersion, LogTypeInfo &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End if &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set colBIOS = objWMI.ExecQuery("SELECT * FROM Win32_BIOS") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Err then &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLogging.CreateEntry "Error querying Win32_BIOS: " &amp;amp; Err.Description &amp;amp; " (" &amp;amp; Err.Number &amp;amp; ")", LogTypeError &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each objBIOS in colBIOS &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If not IsNull(objBIOS.Version) then &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sBIOSVersion = Trim(objBIOS.Version) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLogging.CreateEntry "USEREXIT:ModelAliasExit.vbs|SetModelAlias - Win32_BIOS Version: " &amp;amp; sBIOSVersion, LogTypeInfo &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End if &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Check by Make &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select Case sMake &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case "Dell Computer Corporation", "Dell Inc.", "Dell Computer Corp." &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Use Model with spaces removed &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = Replace(sModel, " ", "") &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case "IBM", "LENOVO" &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Check by Version property of the Win32_ComputerSystemProduct WMI class first &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Not sCSPVersion = "" Then &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select Case sCSPVersion &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case "ThinkPad T61p" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = "ThinkPadT61" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case Else &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Use Version with spaces removed &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = Replace(sCSPVersion, " ", "") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Select &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Check by first 4 characters of the Model &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If SetModelAlias = "" Then &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sModelSubString = Left(sModel,4) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select Case sModelSubString &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case "1706" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = "ThinkPadX60" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case Else &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = sModel &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLogging.CreateEntry "USEREXIT:ModelAliasExit.vbs|SetModelAlias - Alias rule not found.&amp;nbsp; ModelAlias set to Model value." , LogTypeInfo &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Select &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case "Matsushita Electric Industrial Co.,Ltd." &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Left(sModel,5) = "CF-U1" Then &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = "CF-U1" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = sModel &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLogging.CreateEntry "USEREXIT:ModelAliasExit.vbs|SetModelAlias - Alias rule not found.&amp;nbsp; ModelAlias set to Model value." , LogTypeInfo &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case "Microsoft Corporation" &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Microsoft virtualization technology detected, assign defaults &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = "Hyper-V" &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Try to determine more specific values using Version property of the Win32_BIOS WMI class &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select Case sBIOSVersion &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case "VRTUAL - 1000831" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = "Hyper-VBetaorRC0" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case "VRTUAL - 5000805", "BIOS Date: 05/05/08 20:35:56&amp;nbsp; Ver: 08.00.02" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = "Hyper-V" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case "A M I&amp;nbsp; - 2000622" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = "VS2005R2SP1orVPC2007" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case "A M I&amp;nbsp; - 9000520" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = "VS2005R2" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case "A M I&amp;nbsp; - 9000816", "A M I&amp;nbsp; - 6000901" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = "WindowsVirtualPC" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case "A M I&amp;nbsp; - 8000314" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = "VS2005orVPC2004" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case Else &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = sModel &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLogging.CreateEntry "USEREXIT:ModelAliasExit.vbs|SetModelAlias - Alias rule not found.&amp;nbsp; ModelAlias set to Model value." , LogTypeInfo &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Select &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case "VMware, Inc." &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = "VMware" &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Case Else &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Instr(sModel, "(") &amp;gt; 2 Then &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = Trim(Left(sModel, Instr(sModel, "(") - 2)) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetModelAlias = sModel &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLogging.CreateEntry "USEREXIT:ModelAliasExit.vbs|SetModelAlias - Alias rule not found.&amp;nbsp; ModelAlias set to Model value." , LogTypeInfo &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End if &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Select &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLogging.CreateEntry "USEREXIT:ModelAliasExit.vbs|SetModelAlias - ModelAlias has been set to " &amp;amp; SetModelAlias, LogTypeInfo &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLogging.CreateEntry "------------ Departing USEREXIT:ModelAliasExit.vbs|SetModelAlias -------------", LogTypeInfo &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;End Function&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Second, even a model alias is insufficient to identify which hardware specific applications should be installed during a deployment.&amp;nbsp; At minimum, you usually also need to know the operating system version and architecture for which the applications are targeted.&amp;nbsp; For example, for a Lenovo T61 you would typically have one hardware specific application list for Windows XP x86, one list for Windows Vista x86, one list for Windows Vista x64, etc.&amp;nbsp; To that end I created a new composite property called &lt;STRONG&gt;ModelOSArchAlias&lt;/STRONG&gt;. which combines the ModelAlias, OSVersion, and Architecture properties.&amp;nbsp; (I refer to this property by a newly minted acronym called &lt;STRONG&gt;MOAA&lt;/STRONG&gt;.&amp;nbsp; Catchy, isn’t it. &lt;FONT size=2 face=Wingdings&gt;J&lt;/FONT&gt; )&amp;nbsp; I create this by using CustomSettings.ini entries like the ones below:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[Settings] &lt;BR&gt;Priority=SetModelAlias, Default &lt;BR&gt;Properties=MyCustomProperty, ModelAlias, ModelOSArchAlias &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[SetModelAlias] &lt;BR&gt;UserExit=ModelAliasExit.vbs &lt;BR&gt;ModelAlias=#SetModelAlias()# &lt;BR&gt;ModelOSArchAlias=%ModelAlias%_%OSVersion%_%Architecture%&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;So for a Lenovo ThinkPad X60 running 32-bit Windows Vista using my &lt;STRONG&gt;SetModelAlias&lt;/STRONG&gt; function and this CustomSettings.ini, the &lt;STRONG&gt;MOAA&lt;/STRONG&gt; would be &lt;STRONG&gt;ThinkPadX60_Vista_X86&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;To define settings, applications, roles, etc. in the MDT Database based on either the &lt;STRONG&gt;ModelAlias&lt;/STRONG&gt; or &lt;STRONG&gt;ModelOSArchAlias&lt;/STRONG&gt;, enter the ModelAlias or ModelOSArchAlias as the &lt;STRONG&gt;Model&lt;/STRONG&gt; in the &lt;STRONG&gt;Make and Model&lt;/STRONG&gt; entries in the Database.&amp;nbsp; You can put anything you want in the the Make field in the database entries.&amp;nbsp; I enter the alias type (ModelAlias or ModelOSArchAlias) so that I can sort the entries by type.&amp;nbsp; Here is a screen shot with a ModelAlias and ModelOSArchAlias entry for the Panasonic Toughbook model CF-U1 that I have been working with recently.&amp;nbsp; (Ignore the DeviceAlias and DeviceOSArchAlias entries.&amp;nbsp; I’ll describe those in my next post.&amp;nbsp; &lt;FONT size=2 face=Wingdings&gt;J&lt;/FONT&gt; )&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsingandExtendingModelAliasesforHardware_D9A4/Model-DeviceAlias_2.jpg" target=_blank mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsingandExtendingModelAliasesforHardware_D9A4/Model-DeviceAlias_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=Model-DeviceAlias border=0 alt=Model-DeviceAlias src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsingandExtendingModelAliasesforHardware_D9A4/Model-DeviceAlias_thumb.jpg" width=244 height=113 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsingandExtendingModelAliasesforHardware_D9A4/Model-DeviceAlias_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;You would then use CustomSettings.ini entries like the ones below.&amp;nbsp; (The DatabaseVariables section below is there because I like to use variables for the common database parameters in the other sections so that the actual values only have to be changed in the DatabaseVariables section.&amp;nbsp; Note that some lines may wrap on the screen depending on your display resolution.)&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[Settings] &lt;BR&gt;Priority=SetModelAlias, DatabaseVariables, MASettings, MAPackages, MAApps, MAAdmins, MARoles, MOAASettings, MOAAPackages, MOAAApps, MOAAAdmins, MOAARoles &lt;BR&gt;Properties=MyCustomProperty, MASQLServer, MADatabase, MANetlib, MASQLShare, ModelAlias, ModelOSArchAlias &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[SetModelAlias] &lt;BR&gt;UserExit=ModelAliasExit.vbs &lt;BR&gt;ModelAlias=#SetModelAlias()# &lt;BR&gt;ModelOSArchAlias=%ModelAlias%_%OSVersion%_%Architecture% &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[DatabaseVariables] &lt;BR&gt;MASQLServer=SQLS001 &lt;BR&gt;MADatabase=MDT &lt;BR&gt;MANetlib=DBNMPNTW &lt;BR&gt;MASQLShare=Logs$&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[MASettings] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelSettings &lt;BR&gt;Parameters=ModelAlias &lt;BR&gt;ModelAlias=Model &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[MAPackages] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelPackages &lt;BR&gt;Parameters=ModelAlias &lt;BR&gt;ModelAlias=Model &lt;BR&gt;Order=Sequence &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[MAApps] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelApplications &lt;BR&gt;Parameters=ModelAlias &lt;BR&gt;ModelAlias=Model &lt;BR&gt;Order=Sequence &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[MAAdmins] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelAdministrators &lt;BR&gt;Parameters=ModelAlias &lt;BR&gt;ModelAlias=Model &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[MARoles] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelRoles &lt;BR&gt;Parameters=ModelAlias &lt;BR&gt;ModelAlias=Model &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[MOAASettings] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelSettings &lt;BR&gt;Parameters=ModelOSArchAlias &lt;BR&gt;ModelOSArchAlias=Model &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[MOAAPackages] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelPackages &lt;BR&gt;Parameters=ModelOSArchAlias &lt;BR&gt;ModelOSArchAlias=Model &lt;BR&gt;Order=Sequence &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[MOAAApps] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelApplications &lt;BR&gt;Parameters=ModelOSArchAlias &lt;BR&gt;ModelOSArchAlias=Model &lt;BR&gt;Order=Sequence &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[MOAAAdmins] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelAdministrators &lt;BR&gt;Parameters=ModelOSArchAlias &lt;BR&gt;ModelOSArchAlias=Model &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Lucida Console"&gt;[MOAARoles] &lt;BR&gt;SQLServer=%MASQLServer% &lt;BR&gt;Database=%MADatabase% &lt;BR&gt;Netlib=%MANetlib% &lt;BR&gt;SQLShare=%MASQLShare% &lt;BR&gt;Table=MakeModelRoles &lt;BR&gt;Parameters=ModelOSArchAlias &lt;BR&gt;ModelOSArchAlias=Model &lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;In a computer replacement and/or OS change (different source and destination OS) scenario you will likely only want to set the ModelOSArchAlias and do the MOAA database queries using a Gather step in the State Restore phase.&amp;nbsp; This is because you will almost always want to hardware specific settings, application installations, etc. based on the target model and operating system.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the &lt;/STRONG&gt;&lt;A href="http://www.microsoft.com/info/cpyright.mspx" mce_href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;STRONG&gt;Terms of Use&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This post was contributed by &lt;B&gt;Michael Murgolo,&lt;/B&gt; a Senior Consultant with Microsoft Services - U.S. East Region.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3279639" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3279639.ashx" length="3007" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category></item><item><title>Keeping An Eye On USMT Progress v0.2</title><link>http://blogs.technet.com/deploymentguys/archive/2009/09/02/keeping-an-eye-on-usmt-progress-v0-2.aspx</link><pubDate>Wed, 02 Sep 2009 18:41:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3278746</guid><dc:creator>Daniel Oxley</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3278746.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3278746</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3278746</wfw:comment><description>&lt;P&gt;Back in June I &lt;A href="http://blogs.technet.com/deploymentguys/archive/2009/06/26/keeping-an-eye-on-usmt-progress.aspx" mce_href="http://blogs.technet.com/deploymentguys/archive/2009/06/26/keeping-an-eye-on-usmt-progress.aspx"&gt;posted&lt;/A&gt; a script that I’d written that displays the progress of the USMT capture and recover phases in a neat HTML window off to one side of the screen; particularly useful if you are capturing/recovering large amounts of data because otherwise it looked like the USMT progress had hung due to the progress bar not moving along for quite some time.&lt;/P&gt;
&lt;P&gt;While the script I wrote worked fine I was not 100% happy with it, mostly because it ate up too many CPU cycles, which could sometimes slow down the actual USMT progress; an effect that you would never want to happen!&amp;nbsp; The problem was that there was no quick and easy way to parse the last few lines of a text file in VBScript without first reading in all the previous lines.&amp;nbsp; This meant that as the log file grew, my script took longer and longer to run.&amp;nbsp; So, I took it back to the drawing board, and reworked the innards of it to produce version 0.2!&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/KeepingAnEyeOnUSMTProgress2_F67E/shot_2.jpg" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/KeepingAnEyeOnUSMTProgress2_F67E/shot_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=shot border=0 alt=shot src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/KeepingAnEyeOnUSMTProgress2_F67E/shot_thumb.jpg" width=334 height=154 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/KeepingAnEyeOnUSMTProgress2_F67E/shot_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;This time, the script runs extremely quickly and it will barely register on the CPU, meaning that it shouldn’t slow anything else down.&amp;nbsp; It still requires the same parameters to be passed to it when adding to the task sequence, which are detailed below.&amp;nbsp; To add it to the task sequence, simply add the following &lt;STRONG&gt;Run Command Line&lt;/STRONG&gt; action before the USMT capture or restore actions (or both):&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;cmd.exe /c “start /MIN cscript.exe Z:\Scripts\CUSTOM_USMT_Tracker.vbs C:\MININT\SMSOSD\OSDLOGS\USMTCapture.prg”&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;cmd.exe /c “start /MIN cscript.exe Z:\Scripts\CUSTOM_USMT_Tracker.vbs C:\MININT\SMSOSD\OSDLOGS\USMTRestore.prg”&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;It also has one other very important dependency.&amp;nbsp; You must download &lt;STRONG&gt;tail.exe&lt;/STRONG&gt; from the Windows Resource Kit and place it in the Tools folder of the MDT deployment share, along with this script.&amp;nbsp; You can get the tool &lt;A href="http://www.microsoft.com/downloads/details.aspx?DisplayLang=en&amp;amp;FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd" mce_href="http://www.microsoft.com/downloads/details.aspx?DisplayLang=en&amp;amp;FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd"&gt;here&lt;/A&gt;, it doesn’t matter that it is the 2003 version, I have tested it on Windows 7 and it works fine.&amp;nbsp; If you don’t put tail.exe in the tools folder, then the script will fail.&lt;/P&gt;
&lt;P&gt;The next update might take a while to get round to doing, but I want to remove the requirements for the command-line parameter, and have the script find the progress file on it’s own.&amp;nbsp; Also, it would be good to display more information rather than just the current position in the progress, perhaps an extra line that informs what the current task is that is being run.&amp;nbsp; Also, a few cosmetic changes wouldn't go amiss, but I am a techie not a graphic designer!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Attached to this post is the script file.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This post was contributed by &lt;STRONG&gt;Daniel Oxley&lt;/STRONG&gt; a consultant with Microsoft Consulting Services Spain&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the &lt;/STRONG&gt;&lt;A href="http://www.microsoft.com/info/cpyright.mspx" mce_href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;STRONG&gt;Terms of Use&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3278746" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3278746.ashx" length="2751" type="application/octet-stream" /><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Utilities/default.aspx">Utilities</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/USMT/default.aspx">USMT</category></item><item><title>Location Deployment Wizard for ConfigMgr 2007</title><link>http://blogs.technet.com/deploymentguys/archive/2009/08/17/location-deployment-wizard-for-configmgr-2007.aspx</link><pubDate>Mon, 17 Aug 2009 19:37:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3274244</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3274244.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3274244</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3274244</wfw:comment><description>&lt;P&gt;When working on deployment projects, there is often a requirement for a workstation to be customised on a location by location basis. Common workstation customisations which are applied in this manner include: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Localisation settings (locales, keyboard settings, time zones, Windows (Windows Vista/Windows 7) language injection &lt;/LI&gt;
&lt;LI&gt;Domain membership/organisational unit join information &lt;/LI&gt;
&lt;LI&gt;Location based applications to be installed &lt;/LI&gt;
&lt;LI&gt;Site or location based administrator groups or accounts that need to added to the local administrators group &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The Microsoft Deployment Toolkit (MDT) and its accompanying database offers features to tailor a workstation based on its location during a deployment. The MDT Database allows locations to be defined and a set of location specific settings can be stored against each entry. When a workstation is been deployed, an MDT database lookup determines its location and collects the relevant build settings for that location. The location is determined by carrying out a lookup of the default gateway on the target workstations assigned NIC against default gateways assigned to locations in the MDT Database. To learn more about the Microsoft Deployment Toolkit and the database supplied with MDT see &lt;A title=http://technet.microsoft.com/en-us/solutionaccelerators/dd407791.aspx href="http://technet.microsoft.com/en-us/solutionaccelerators/dd407791.aspx" mce_href="http://technet.microsoft.com/en-us/solutionaccelerators/dd407791.aspx"&gt;http://technet.microsoft.com/en-us/solutionaccelerators/dd407791.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;During a mass deployment it is quite common for workstations to be built in central locations and then to be shipped to other sites for use. In these circumstances, the MDT Database location functionality&amp;nbsp;may not be as useful as any database location lookups will return settings for the site at which the workstations are being built and not the site to which the workstation will be eventually shipped. &lt;/P&gt;
&lt;P&gt;A solution to this is to&amp;nbsp;use a location deployment wizard when using the MDT Database along with System Center Configuration Management (ConfigMgr) 2007 Operating System deployments (OSD) in zero touch scenarios. A location deployment wizard is an HTA that is displayed to the user/build engineer at the start of the workstation deployment process to display the location in which they are currently situated. If the location is the site at which the workstation will be based they can click next and the deployment will continue applying all the deployment settings for that site. However, the wizard allows an “override” for the detected location and allow the user/build engineer to select another location from the MDT Database. Overriding the detected location will apply all of the selected location deployment settings from the MDT Database to the workstation despite it not being at that location. This solution allows workstations to be built in a central location whilst being fully customised for their destination locations.&lt;/P&gt;
&lt;P&gt;The location deployment wizard is an HTA that is stored in a customised ConfigMgr OSD boot image and is executed before a ConfigMgr task sequence starts. The HTA uses Operating System Media Pre-Execution Hooks (&lt;A href="http://technet.microsoft.com/en-us/library/bb694075.aspx" mce_href="http://technet.microsoft.com/en-us/library/bb694075.aspx"&gt;http://technet.microsoft.com/en-us/library/bb694075.aspx&lt;/A&gt;) to place itself before the task sequence window. The location deployment wizard allows inputs that are stored as a ConfigMgr task sequence variable. The location variable can then be used by a ConfigMgr deployment task sequence to recover settings from the MDT Database throughout the deployment (During ZTIGather phase).&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2001_4.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2001_4.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Location Wizard 01" border=0 alt="Location Wizard 01" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2001_thumb_1.png" width=398 height=372 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2001_thumb_1.png"&gt;&lt;/A&gt; &lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2002_6.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2002_6.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Location Wizard 02" border=0 alt="Location Wizard 02" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2002_thumb_2.png" width=399 height=371 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2002_thumb_2.png"&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;H4&gt;&lt;/H4&gt;
&lt;H4&gt;Pre-Requisites&lt;/H4&gt;
&lt;P&gt;The following pre-requirements should be configured in your deployment environment:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;System Center Configuration Management 2007 (RTM, SP1, R2 or SP2 beta) environment configured for OSD deployments. &lt;/LI&gt;
&lt;LI&gt;Microsoft Deployment Toolkit 2008 / MDT 2010 Workbench + Database hosted on Microsoft SQL 2005 or 2008 (Express / Standard / Enterprise) &lt;/LI&gt;
&lt;LI&gt;ConfigMgr 2007 console with integrated MDT console functions &lt;/LI&gt;
&lt;LI&gt;The MS SQL Database hosting the MDT Database should be configured to allow NamedPipes &lt;/LI&gt;
&lt;LI&gt;A share should be setup on the MDT Database server for authentication when using NamedPipes from a WinPE environment by using the SQLShare$ method. &lt;/LI&gt;
&lt;LI&gt;ConfigMgr “Network Access Account” should have db_datareader access to the MDT SQL Database &lt;/LI&gt;
&lt;LI&gt;Another AD account should be created which&amp;nbsp;is assigned&amp;nbsp;db_datareader access to the MDT Database. &lt;B&gt;Note This account will be stored in a plain text file in the ConfigMgr OSD Boot image. This account should be limited to just db_datareader access on the MDT SQL Server and denied all other rights on the domain&lt;/B&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;H4&gt;Location Deployment Wizard Setup Steps&lt;/H4&gt;
&lt;P&gt;Download the location deployment wizard attached to this post and extract the files to a temporary location on the computer/server which has a ConfigMgr 2007 Console with integrated MDT console functions. There are 4 components which need to be configured in your environment for this solution to operate:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Configure the Bootstap.ini file&lt;B&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;Create a custom boot image&lt;B&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;Configure Location settings in the MDT Database&lt;B&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;Configure CustomSettings.ini file&lt;B&gt;&lt;/B&gt; &lt;/LI&gt;&lt;/OL&gt;
&lt;H5&gt;1. Configure the Bootstrap.ini file&lt;/H5&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;The Bootstrap.ini file contains the settings required by the Location Deployment Wizard to make the initial connection to the MDT Database. These settings need to be configured for your environment:&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Edit the Bootstrap.ini file in the &lt;B&gt;Location Deployment Wizard\LocationDeploymentWizard&lt;/B&gt; folder. This file is used by the location deployment wizard HTA to connect to the MDT Database for the first time:&lt;B&gt;&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;Replace &amp;lt;USERNAME&amp;gt; with the AD account created for reading the MDT Database in the pre-requirements e.g. CONTOSO\MDTDBReader&lt;B&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;Replace &amp;lt;PASSWORD&amp;gt; with the password of the account entered above&lt;B&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;Replace &amp;lt;SQL SHARE FOR AUTHENTICATION&amp;gt; with the name of a shared folder on the MDT Database server e.g. \\MDT01.contoso.com\SQLShare$&lt;B&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;Replace &amp;lt;MDT DATABASE SEVER&amp;gt; with the fully qualified domain name of the MDT Database server e.g. mdt01.contoso.com&lt;B&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;Replace &amp;lt;MDT DATABASE NAME&amp;gt; should be replaced with the instance name of the MDT Database in SQL e.g. MDTDB&lt;B&gt;&lt;/B&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H5&gt;2. Create a custom boot image&lt;/H5&gt;
&lt;P&gt;During OSD deployments a WinPE boot image provides the environment for deploying a workstation. ConfigMgr 2007 provides default boot images in the &lt;B&gt;Operating System Deployment -&amp;gt; Boot Images &lt;/B&gt;node in the console. A new custom boot image needs to be generated containing the location deployment wizard HTA and its supporting files – this will execute when the boot image first loads on a workstation:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Create a new custom boot image in the ConfigMgr console using the “Create Boot Image Using Microsoft Deployment” wizard: &lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2003_2.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2003_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Location Wizard 03" border=0 alt="Location Wizard 03" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2003_thumb.png" width=531 height=419 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2003_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;Follow the wizard, selecting the default options. On the &lt;B&gt;Image Options&lt;/B&gt; page set the &lt;B&gt;Extra Folder to Add&lt;/B&gt; as the &lt;B&gt;Location Deployment Wizard&lt;/B&gt; folder which is found in the root of the files extracted earlier &lt;/LI&gt;
&lt;LI&gt;Complete the wizard selecting the default options. ConfigMgr/MDT will now create a new customised boot image with the location deployment wizard included. &lt;/LI&gt;
&lt;LI&gt;Assign the boot image to the OSD deployment task sequence that you wish to use the location deployment wizard with: &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2004_2.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2004_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="Location Wizard 04" border=0 alt="Location Wizard 04" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2004_thumb.png" width=583 height=523 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/LocationBasedWizardforConfigMgr2007_6F39/Location%20Wizard%2004_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;H5&gt;3. Configure location settings in the MDT Database&lt;/H5&gt;
&lt;P&gt;Locations and their associated&amp;nbsp;settings need to be configured in the MDT SQL Database, these are typically configured through the interface in the&amp;nbsp;MDT workbench. In the MDT workbench go to the &lt;B&gt;Database&amp;nbsp;&amp;gt;&amp;gt; Locations Node&lt;/B&gt;. Here you can add as many different locations as are required for your environment.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;For a location to be available to the location deployment wizard it must be assigned at least one default gateway. This can be found in a locations properties on the &lt;B&gt;Identity&lt;/B&gt; tab. &lt;/LI&gt;
&lt;LI&gt;If no default gateways for a site are initially known then assign 0.0.0.0 as the default gateway for that location. Although this site will never be automatically detected by the location build wizard, it can be manually selected. &lt;/LI&gt;
&lt;LI&gt;In the &lt;B&gt;Details &lt;/B&gt;tab of a locations properties use the &lt;B&gt;SERVERA &lt;/B&gt;property&amp;nbsp;to populate sites or country e.g. UK. This is used by the location deployment wizard to break down the locations so there is not just one long list: &lt;/LI&gt;
&lt;LI&gt;Populate any other deployment site settings as required for your deployment including locales, time zones, keyboard settings, UI Language, location specific apps and location specific admins. &lt;/LI&gt;&lt;/UL&gt;
&lt;H5&gt;4. Configure CustomSettings.ini file&lt;/H5&gt;
&lt;P&gt;The CustomSettings.ini (&lt;A href="http://technet.microsoft.com/en-us/library/bb977690.aspx" mce_href="http://technet.microsoft.com/en-us/library/bb977690.aspx"&gt;http://technet.microsoft.com/en-us/library/bb977690.aspx&lt;/A&gt;) is a rules file which is used to automate deployments and setup how to query settings from the MDT Database. The location deployment wizard has its own CustomSettings.ini which is used during Gather phases in a ConfigMgr task sequence to retrieve location settings from the MDT Database. The CustomSettings.ini file included in the supplied location deployment wizard must be customised to your environment:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Edit the CustomSettings.ini file located in the root of the extracted files. The customsettings.ini file is a rules file is used by the MDT script ZTIGather.wsf to gather all of the location based settings from an MDT database:&lt;B&gt;&lt;/B&gt; 
&lt;UL&gt;
&lt;LI&gt;All instances of &amp;lt;FQDN MDT DATABASE&amp;gt; should be replaced with the fully qualified domain name of your MDT Database server e.g. mdt01.contoso.com&lt;B&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;All instances of &amp;lt;MDT DATABASE NAME&amp;gt; should be replaced with your MDT Database name in SQL e.g. MDTDB&lt;B&gt;&lt;/B&gt; &lt;/LI&gt;
&lt;LI&gt;All instances of &amp;lt;AUTHENTICATION SHARENAME&amp;gt; should be replaced by your shared folder name on the MDT Database server e.g. SQLShare$&lt;B&gt;&lt;/B&gt; &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;Once the customsettings.ini file has been updated it should be wrapped up into a ConfigMgr package (typically this is the MDT Settings package) and sent to all distribution points on your network which will be used for OSD. This rules package must be used by all Gather phases in your MDT integrated deployment task sequence to gather location settings from the MDT Database.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the &lt;/STRONG&gt;&lt;A href="http://www.microsoft.com/info/cpyright.mspx" mce_href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;STRONG&gt;Terms of Use&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;EM&gt; &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This post was contributed by &lt;/EM&gt;&lt;I&gt;&lt;STRONG&gt;Mark Hooks and Richard Smith,&lt;/STRONG&gt; c&lt;/I&gt;&lt;EM&gt;onsultants with Microsoft Services – U.K.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3274244" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3274244.ashx" length="69806" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/deploymentguys/archive/tags/ConfigMgr/default.aspx">ConfigMgr</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Configuration+Manager/default.aspx">Configuration Manager</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Utilities/default.aspx">Utilities</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Persisting ConfigMgr Packages during a Task Sequence</title><link>http://blogs.technet.com/deploymentguys/archive/2009/07/17/persisting-configmgr-packages-during-a-task-sequence.aspx</link><pubDate>Fri, 17 Jul 2009 17:30:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3265708</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3265708.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3265708</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3265708</wfw:comment><description>&lt;P&gt;The MDT Task Sequences for System Center Configuration Manager 2007 use a clever technique to download and persist the MDT Files package during each phase of the Task Sequence.&amp;nbsp; The Use Toolkit Package step uses the ZTISCCM.wsf script to copy the contents of the package to a WDPackage subfolder of the _SMSTaskSequence folder.&amp;nbsp; The Task Sequencer maintains this folder (the path of which is held in the _SMSTSMDataPath variable) for holding the logs and downloaded package contents.&amp;nbsp; So the WDPackage folder will continue to exist until the next reboot.&amp;nbsp; MDT places the path to the WDPackage folder in the DeployRoot variable.&lt;/P&gt;
&lt;P&gt;Doing this prevents repeated download of the MDT Files every time the execution of an MDT script is needed.&amp;nbsp; My customer wanted to be able to used the same technique for their custom scripts.&amp;nbsp; They maintain a package of custom scripts so that they are not mixed in with the MDT scripts.&amp;nbsp; This will allow them to update/replace the MDT Files package as needed without having to worry about their custom scripts.&lt;/P&gt;
&lt;P&gt;One way of doing this would be to simply create a Run Command Line step (after the Use Toolkit Package step) that simply does an xcopy of the files/folder in the package to either DeployRoot or ScriptRoot or a subfolder of those paths.&amp;nbsp; You can then call your scripts relative to the DeployRoot or ScriptRoot variable.&lt;/P&gt;
&lt;P&gt;I wanted to provide my customer with maximum flexibility for this so I created a custom script called ZTI-PersistSccmPackage.wsf.&amp;nbsp; This script should be copied to the root of the package along with a copy of the MDT script ZTIUtility.vbs.&amp;nbsp; The command has the following syntax:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;cscript ZTI-PersistSccmPackage.wsf /pathvar:&amp;lt;path variable name&amp;gt; /xcopy:"&amp;lt;additional xcopy switches&amp;gt;"&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The /pathvar switch sets the name of the variable the can be used to reference the path to the persisted files.&amp;nbsp; If you specify a variable name that is either DeployRoot, ScriptRoot, or ToolRoot, the script will copy the contents of the package to the corresponding location in the WDPackage folder created by the Use Toolkit Package step.&amp;nbsp; If you specify any other variable name, the script will create a randomly named folder in the _SMSTSMDataPath location, copy the contents of the package to that folder, and set a Task Sequence variable pointing to that folder path with the variable name specified with the /pathvar switch.&amp;nbsp; For example, if you had a package of custom scripts you wanted to persist in their own folder, you would could run the script like this:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;cscript ZTI-PersistSccmPackage.wsf /pathvar:CustomScriptRoot&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You could then reference your scripts using the CustomScriptRoot variable.&amp;nbsp; For example, if the package contained a script called MyScript.wsf you could run it from a Run Command Line step using the following syntax without having to add the package to the step:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;cscript "%CustomScriptRoot%\MyScript.wsf"&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The optional /xcopy switch is used to specify additional switches for the xcopy command.&amp;nbsp; By default, the script uses xcopy with the following switches: /s /e /h /y /c.&amp;nbsp; For example, if you wanted to add the /d switch to filter the copy by date or add the /exclude switch to exclude files from the copy, you would specify those using the /xcopy switch.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the &lt;/STRONG&gt;&lt;A href="http://www.microsoft.com/info/cpyright.mspx" mce_href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;STRONG&gt;Terms of Use&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This post was contributed by &lt;B&gt;Michael Murgolo,&lt;/B&gt; a Senior Consultant with Microsoft Services - U.S. East Region.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3265708" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3265708.ashx" length="2141" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/deploymentguys/archive/tags/SCCM+2007/default.aspx">SCCM 2007</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/ConfigMgr/default.aspx">ConfigMgr</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category></item><item><title>Single WIM Deployment of Windows XP Professional and Tablet PC Edition (and Other Operating Systems)</title><link>http://blogs.technet.com/deploymentguys/archive/2009/07/13/windows-xp-professional-and-tablet-pc-edition-deployment-with-a-single-wim.aspx</link><pubDate>Mon, 13 Jul 2009 22:55:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3107515</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3107515.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3107515</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3107515</wfw:comment><description>&lt;P&gt;&lt;STRONG&gt;Update 2009-07-17:&lt;/STRONG&gt; Corrected some errors in the application settings in the&amp;nbsp;&lt;STRONG&gt;Extracting the Sysprep Files&lt;/STRONG&gt; section&amp;nbsp;that occured because I did not make all necessary changes after doing a copy/paste.&lt;/P&gt;
&lt;P&gt;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;In my &lt;A href="http://blogs.technet.com/deploymentguys/archive/2008/08/03/implementing-the-windows-xp-tablet-pc-edition-2005-single-image-deployment-supplemental-guide-process-in-mdt-2008-full-update.aspx" target=_blank&gt;post&lt;/A&gt; on August 3 2009, I promised in an upcoming post I would show you how to create a single WIM file that contains several XP images with a single MDT Lite Touch Task Sequence (rerun four times).&amp;nbsp; Additionally, I said that I would show you how you can deploy these images from that WIM file onto the correct target hardware using either a single MDT Lite Touch Task Sequence or a single MDT Zero Touch Task Sequence in SCCM.&amp;nbsp; Well, that day is finally here!&lt;/P&gt;
&lt;H4&gt;Image Build: MDT Setup&lt;/H4&gt;
&lt;P&gt;For building and capturing images, I prefer to use the MDT Lite Touch process over Systems Center Configuration Manager 2007.&amp;nbsp; You have more control over the process, you can have tasks with a visible UI for testing and troubleshooting, and since the Task Sequencer runs as the built-in Administrator account you can configure settings that can get propagated to Default User settings.&amp;nbsp; So the process I'm about to describe will only use MDT Lite Touch for building and capturing images into the single WIM file.&amp;nbsp; Also, everything I describe in the post was done with MDT 2008 Update 1.&amp;nbsp; Once MDT 2010 has released or is close to releasing, I’ll blog what, if any, changes are necessary.&lt;/P&gt;
&lt;P&gt;As I described in the August 3rd post, the "Single Image" process for XP Pro/Tablet PC Edition will not be supported for Service Pack 3.&amp;nbsp; Because of this, I moved my current customer's XP deployment process back to separate images.&amp;nbsp; Since they have to support hardware that requires both types of XP ACPI HALs, this deployment process required four XP Images:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Windows XP Professional with ACPI Uniprocessor HAL (APIC HAL) &lt;/LI&gt;
&lt;LI&gt;Windows XP Tablet PC Edition 2005 with ACPI Uniprocessor HAL (APIC HAL) &lt;/LI&gt;
&lt;LI&gt;Windows XP Professional with Advanced Configuration and Power Interface (ACPI) PC HAL (PIC HAL) &lt;/LI&gt;
&lt;LI&gt;Windows XP Tablet PC Edition 2005 with Advanced Configuration and Power Interface (ACPI) PC HAL (PIC HAL) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;If you only require a subset of these images (perhaps you don’t need to support Tablet PCs or PIC hardware, etc.), you can modify the steps that follow accordingly.&lt;/P&gt;
&lt;P&gt;Using traditional sector-based imaging tool supporting four images would require four times the disk storage and four times the WAN traffic to replicate those images around.&amp;nbsp; However, using file-based WIM images that can take advantage of "single instance storage" that allows you to store all four of these images in a single WIM file that will only be slightly larger than any single image.&lt;/P&gt;
&lt;P&gt;All of the above images can be generated from a single MDT Task Sequence by simply running it four times on either the correct computer hardware or by using the correct XP Product Key.&amp;nbsp; Unfortunately, if you try this with MDT 2008 “out of the box”, the process will fail during the attempt to capture the second image.&amp;nbsp; This is because the MDT 2008 script that does the image capture, ZTIBackup.wsf, is hard-coded to use an image name of the format &lt;EM&gt;&amp;lt;TaskSequenceID&amp;gt;&amp;lt;drive letter&amp;gt;Drive&lt;/EM&gt; (e.g. XPPROSP2CDrive).&amp;nbsp; Since an image name must be unique within a WIM file, when ZTIBackup.wsf tries to append the next image with the same image name, it fails.&amp;nbsp; Therefore, to capture four image into on WIM with MDT 2008 as is you would need four identical Task Sequences.&amp;nbsp; And you would need to remember to specify the same WIM file in the deployment wizard when each Task Sequence.&lt;/P&gt;
&lt;P&gt;So to work around this limitation, I created a custom version of ZTIBackup.wsf (with the exciting name of ZTIBackupCustom.wsf).&amp;nbsp; With this version you can specify the image name prefix (the part before &lt;EM&gt;&amp;lt;drive letter&amp;gt;Drive&lt;/EM&gt;) using either a command line switch, /nameprefix, or a custom property, ImageNamePrefix.&amp;nbsp; I used this script instead of ZTIBackup.wsf in the Create WIM step in the Task Sequence.&amp;nbsp; Using only this change worked well but imposed the limitation the each run of the Task Sequence had to complete before starting the next.&amp;nbsp; Also, all the runs had to be completed in the proper order so that the image index in the WIM would come out the same each time.&lt;/P&gt;
&lt;P&gt;To get around this limitation, I changed the BackupFile MDT property (which holds the WIM file name) for each run of the Task Sequence so that each run created a different WIM file.&amp;nbsp; I then created a script that uses imagex /export to combine all the WIM files in to a single WIM.&amp;nbsp; This allows you to run the build in any order (even all at once) and re-run those that fail if needed.&lt;/P&gt;
&lt;H5&gt;OS Installation Media&lt;/H5&gt;
&lt;P&gt;You will need to assemble and import the XP SP2-integrated media as I described in my &lt;A href="http://blogs.technet.com/deploymentguys/archive/2008/08/03/implementing-the-windows-xp-tablet-pc-edition-2005-single-image-deployment-supplemental-guide-process-in-mdt-2008-full-update.aspx" target=_blank&gt;post&lt;/A&gt; on August 3 2009. &lt;/P&gt;
&lt;H5&gt;CustomSettings.ini&lt;/H5&gt;
&lt;P&gt;To control what edition of XP gets install, what image name prefix gets used, what BackupFile name is used, etc. I used MAC Address sections in CustomSettings.ini.&amp;nbsp; Doing it this way requires four computers with different MAC Addresses.&amp;nbsp; (I used Hyper-V and Virtual Server virtual machine as my build machines so that I didn’t need to be bothered with CD or PXE booting physical machines, but this process will work either way.&amp;nbsp; I used Hyper-V to build the APIC HAL images and needed Virtual Server to build the PIC HAL images.)&amp;nbsp; Here is what the CustomSettings.ini looks like:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Settings] &lt;BR&gt;Priority=Default, MACAddress, Finish &lt;BR&gt;Properties=MyCustomProperty, CapturedImageIndex, ImageNamePrefix, CompletionFile, BackupFile &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Default] &lt;BR&gt;OSInstall=Y &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;OrgName=Contoso &lt;BR&gt;_SMSTSORGNAME=Contoso &lt;BR&gt;SLShare=%DeployRoot%\Logs &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;SkipAppsOnUpgrade=YES &lt;BR&gt;SkipDeploymentType=YES &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeploymentType=NEWCOMPUTER &lt;BR&gt;SkipComputerName=YES &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;ComputerName set in MACAddress sections &lt;BR&gt;SkipDomainMembership=Yes &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; JoinWorkgroup=Workgroup &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;JoinDomain &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;DomainAdmin &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;DomainAdminDomain &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;DomainAdminPassword &lt;BR&gt;SkipUserData=yes &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UserDataLocation=NETWORK &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;UDDir &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;UDShare &lt;BR&gt;SkipComputerBackup=Yes &lt;BR&gt;SkipBuild=YES &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;BuildID set in MACAddress sections &lt;BR&gt;SkipTaskSequence=YES &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;TaskSquenceID set in MACAddress sections &lt;BR&gt;SkipProductKey=YES &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;ProductKey &lt;BR&gt;SkipPackageDisplay=YES &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;LanguagePacks &lt;BR&gt;SkipLocaleSelection=Yes &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; UserLocale=en-us &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InputLocale=en-us &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KeyboardLocale=en-us &lt;BR&gt;SkipTimeZone=Yes &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeZone=35 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeZoneName=Eastern Standard Time &lt;BR&gt;SkipApplications=YES &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;Applications &lt;BR&gt;SkipAdminPassword=YES &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AdminPassword=* &lt;BR&gt;SkipCapture=YES &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoCapture=YES &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ComputerBackupLocation=%DeployRoot%\Captures &lt;BR&gt;SkipBitLocker=YES &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;BDEDriveLetter &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;BDEDriveSize &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;BDEInstall &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;TPMOwnerPassword &lt;BR&gt;SkipSummary=YES &lt;BR&gt;SkipFinalSummary=NO &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[00:15:5D:11:AF:FF] &lt;BR&gt;; Vista x86 &lt;BR&gt;BuildID=Vistax86SP1 &lt;BR&gt;TaskSquenceID=Vistax86SP1 &lt;BR&gt;CapturedImageIndex=1 &lt;BR&gt;ComputerName=vx86sp1%HALNAME% &lt;BR&gt;WsusServer=&lt;/FONT&gt;&lt;A href="http://mdtserver/"&gt;&lt;FONT face="Courier New"&gt;http://MDTSERVER&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[00:15:5D:11:AF:FE] &lt;BR&gt;; XP Pro APIC HAL &lt;BR&gt;BuildID=XPSP3 &lt;BR&gt;TaskSquenceID=XPSP3 &lt;BR&gt;CapturedImageIndex=1 &lt;BR&gt;ComputerName=xppro%HALNAME% &lt;BR&gt;ProductKey=11111-22222-33333-44444-55555 &lt;BR&gt;WsusServer=&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;http://MDTSERVER&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[00:15:5D:11:AF:FD] &lt;BR&gt;; XP Tablet APIC HAL &lt;BR&gt;BuildID=XPSP3 &lt;BR&gt;TaskSquenceID=XPSP3 &lt;BR&gt;CapturedImageIndex=2 &lt;BR&gt;ComputerName=xptab%HALNAME% &lt;BR&gt;ProductKey=AAAAA-BBBBB-CCCCC-DDDDD-EEEEE &lt;BR&gt;WsusServer=&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;http://MDTSERVER&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[00:03:FF:64:17:41] &lt;BR&gt;; XP Pro PIC HAL &lt;BR&gt;BuildID=XPSP3 &lt;BR&gt;TaskSquenceID=XPSP3 &lt;BR&gt;CapturedImageIndex=3 &lt;BR&gt;ComputerName=xppro%HALNAME% &lt;BR&gt;ProductKey=11111-22222-33333-44444-55555 &lt;BR&gt;WsusServer=&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;http://MDTSERVER&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[00:03:FF:64:17:42] &lt;BR&gt;; XP Tablet PIC HAL &lt;BR&gt;BuildID=XPSP3 &lt;BR&gt;TaskSquenceID=XPSP3 &lt;BR&gt;CapturedImageIndex=4 &lt;BR&gt;ComputerName=xptab%HALNAME% &lt;BR&gt;ProductKey=AAAAA-BBBBB-CCCCC-DDDDD-EEEEE &lt;BR&gt;WsusServer=&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;http://MDTSERVER&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Finish] &lt;BR&gt;BackupFile=%TASKSEQUENCEID%_%CapturedImageIndex%.wim &lt;BR&gt;ImageNamePrefix=%TASKSEQUENCEID%.%CapturedImageIndex%.%TASKSEQUENCEVERSION%_ &lt;BR&gt;CompletionFile=%TASKSEQUENCEID%.%CapturedImageIndex%.txt&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The edition of XP (Professional or Tablet PC Edition 2005) that gets install is controlled by using the correct Pro or Tablet Product Key.&amp;nbsp; (In this sample 11111-22222-33333-44444-55555 represents the XP Pro product key and AAAAA-BBBBB-CCCCC-DDDDD-EEEEE represents the XP Tablet PC Edition product key.)&amp;nbsp; The BackupFile name is constructed from the TaskSquenceID and the custom property CapturedImageIndex.&amp;nbsp; So for example the BackupFile name for the XP Pro APIC HAL image would be XPSP3_1.wim.&amp;nbsp; The prefix for the image name within the WIM the TaskSquenceID, the custom property CapturedImageIndex, and the TASKSEQUENCEVERSION.&amp;nbsp; For the the XP Pro APIC HAL image, the ImageNamePrefix would be something like XPSP3.1.05.&lt;/P&gt;
&lt;H4&gt;Image Build: Task Sequence Details&lt;/H4&gt;
&lt;H5&gt;Installing XP Service Pack 3&lt;/H5&gt;
&lt;P&gt;As I stated in my &lt;A href="http://blogs.technet.com/deploymentguys/archive/2008/08/03/implementing-the-windows-xp-tablet-pc-edition-2005-single-image-deployment-supplemental-guide-process-in-mdt-2008-full-update.aspx" target=_blank&gt;post&lt;/A&gt; on August 3 2009, the only way to create a supported installation of Windows XP Tablet PC Edition 2005 Service Pack 3 is to first install Tablet PC Edition from Service Pack 2 media and then install the Service Pack 3 Update.&amp;nbsp; So to be consistent, the task sequence creates all the XP images by first installing from SP 2 media and installing the SP 3 Update as an Application in the Custom Tasks group.&lt;/P&gt;
&lt;P&gt;I did this by download the Windows XP Service Pack 3 Update from here: &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=5B33B5A8-5E76-401F-BE08-1E1555D4F3D4&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=5B33B5A8-5E76-401F-BE08-1E1555D4F3D4&amp;amp;displaylang=en&lt;/A&gt;. I extracted the contents of the update to a temporary folder with the following command:&lt;/P&gt;
&lt;P&gt;WindowsXP-KB936929-SP3-x86-ENU.exe /x:&amp;lt;temporary folder path&amp;gt;&lt;/P&gt;
&lt;P&gt;Then I used the temporary folder to import the extracted Service Pack 3 Update as an Application in MDT with the following settings:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Folder name: Microsoft Windows XP Service Pack 3 Update &lt;BR&gt;Name: Windows XP Service Pack 3 Update &lt;BR&gt;Version: 1.0 &lt;BR&gt;Publisher: Microsoft &lt;BR&gt;Language: en-US &lt;BR&gt;Source: .\Applications\Microsoft Windows XP Service Pack 3 Update &lt;BR&gt;CommandLine: Update.exe /passive /norestart /n &lt;BR&gt;WorkingDirectory: .\Applications\Microsoft Windows XP Service Pack 3 Update\i386\update&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;H5&gt;Updating the \Windows\Source folder&lt;/H5&gt;
&lt;P&gt;MDT copies the XP installation source files into the %windir%\Source folder so that it is available if an optional component needs to be installed later.&amp;nbsp; Unfortunately, since you are installing from SP 2 media and installing the SP 3 Update later the %windir%\Source folder will be at SP2 but the installed OS will be at SP3.&amp;nbsp; To fix this you have to add step to the Task Sequence to update the %windir%\Source folder with the SP3-level installation source files.&lt;/P&gt;
&lt;P&gt;To do this, create a temporary folder.&amp;nbsp; Copy ZTIUtility.wsf from the MDT Scripts folder and the custom scripts LTI-ReplaceWindowsSource.wsf and LTI-CopySysprepFiles.wsf (in the ZIP attachment below) into this folder.&amp;nbsp; Create a subfolder of the temporary folder called Source.&amp;nbsp; Copy the contents of the SP3-level integrated media or slipstreamed version of the XP Pro installation CD files into the Source folder (copy all files/folders from the CD especially the Support folder, not just the i386 folder).&amp;nbsp; The folder should look similar to this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/WindowsXPProfessionalandTabletPCEditionD_10D7E/Media_1.png" target=_blank&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=Media border=0 alt=Media src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/WindowsXPProfessionalandTabletPCEditionD_10D7E/Media_thumb_1.png" width=244 height=66&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Import this folder as an &lt;B&gt;Application with source files &lt;/B&gt;with the following settings:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Folder name: Windows XP Professional Service Pack 3 Integreted Media &lt;BR&gt;Name: Windows XP Professional Service Pack 3 Integreted Media &lt;BR&gt;Version: 1.0 &lt;BR&gt;Publisher: Microsoft &lt;BR&gt;Language: en-US &lt;BR&gt;Source: .\Applications\Windows XP Professional Service Pack 3 Integreted Media &lt;BR&gt;CommandLine: cscript.exe LTI-ReplaceWindowsSource.wsf &lt;BR&gt;WorkingDirectory: .\Applications\Windows XP Professional Service Pack 3 Integreted Media&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Add this as an Install Application step in the Custom Tasks group.&lt;/P&gt;
&lt;P&gt;If you are going to create your media for this step by slipstreaming SP3 into an SP2 installation source, this is what I recommend that you do.&amp;nbsp; Download the Windows XP Service Pack 3 - ISO-9660 CD Image File from &lt;A href="http://www.microsoft.com/DownLoads/details.aspx?familyid=2FCDE6CE-B5FB-4488-8C50-FE22559D164E&amp;amp;displaylang=en" target=_blank&gt;here&lt;/A&gt; and burn it to a CD using software that can burn ISO images to CD.&amp;nbsp; (I like using &lt;A href="http://www.imgburn.com/" target=_blank&gt;ImgBurn&lt;/A&gt; for this but there are many others you can use.)&lt;/P&gt;
&lt;P&gt;Copy the SP2 installation source that you imported following my instructions in the August 3, 2009 &lt;A href="http://blogs.technet.com/deploymentguys/archive/2008/08/03/implementing-the-windows-xp-tablet-pc-edition-2005-single-image-deployment-supplemental-guide-process-in-mdt-2008-full-update.aspx" target=_blank&gt;post&lt;/A&gt; to a temporary folder.&amp;nbsp; Delete the Dotnetfx, Support, and Valueadd folders from the temporary folder.&amp;nbsp; Replace them with the ones on the XP SP3 CD you just created.&amp;nbsp; Then use the SP3 installer (WindowsXP-KB936929-SP3-x86-ENU.exe) on the root of the CD to integrate SP3 into the temporary folder using the following command:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;WindowsXP-KB936929-SP3-x86-ENU.exe /integrate:"&amp;lt;temporary folder path&amp;gt;"&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Copy the resulting installation files into the Source folder in the above instructions.&amp;nbsp; Then create a Install Application step in the Custom Tasks group to “install” this as I described above.&lt;/P&gt;
&lt;H5&gt;Extracting the Sysprep Files&lt;/H5&gt;
&lt;P&gt;MDT copies the Sysprep files from the operating system folder in the Distribution folder.&amp;nbsp; Because of this, the Sysprep files copied will be the SP2 versions instead of the SP 3 versions.&amp;nbsp; Similar to the above step, we need to make sure the SP3 versions get copied instead.&lt;/P&gt;
&lt;P&gt;Create another Application in MDT as &lt;B&gt;Applications without source files or elsewhere on the network&lt;/B&gt; with the following settings:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Name: Windows XP Professional Service Pack 3 Sysprep Files &lt;BR&gt;Version: 1.0 &lt;BR&gt;Publisher: Microsoft &lt;BR&gt;Language: en-US &lt;BR&gt;CommandLine: cscript.exe LTI-CopySysprepFiles.wsf &lt;BR&gt;WorkingDirectory: %DeployRoot%\Applications\Windows XP Professional Service Pack 3 Integreted Media&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Then create a Install Application step in the Custom Tasks group to “install” this.&lt;/P&gt;
&lt;H5&gt;Changing the Create WIM Step &lt;/H5&gt;
&lt;P&gt;You still need to copy ZTIBackupCustom.wsf from the attached Zip file, place it in the MDT Scripts folder, and change the command line of the Create WIM step to use it instead of ZTIBackup.wsf.&lt;/P&gt;
&lt;H4&gt;Merging the WIM files&lt;/H4&gt;
&lt;P&gt;After completing all four runs of the Task Sequence, there should be four WIM files in the \Distribution\Captures folder: XPSP3_1.wim, XPSP3_2.wim, XPSP3_3.wim, and XPSP4_1.wim.&amp;nbsp; To merge them all into a new single WIM file (XPSP3.wim), I created the following CMD script (MergeXPImages.cmd) to do this.&amp;nbsp; It uses a small VBScript as well (both included in the Zip attachement).&amp;nbsp; This script is run on the MDT Server.&amp;nbsp; Be sure to change the &lt;STRONG&gt;set CAPTURES=D:\Distribution\Captures&lt;/STRONG&gt; line to point to your Captures folder path.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;@echo off &lt;BR&gt;setlocal &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;call "%ProgramFiles%\Windows AIK\Tools\PETools\pesetenv.cmd" &lt;BR&gt;set CAPTURES=D:\Distribution\Captures &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;:: Get the Last Modified date for the previous merged WIM if it exists &lt;BR&gt;:: and create an environment variable &lt;BR&gt;If exist "%CAPTURES%\XPSP3.wim" ( &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for /f "tokens=*" %%i in ('cscript //nologo GetFileDateInfo.vbs "%CAPTURES%\XPSP3.wim"') do set %%i &lt;BR&gt;) &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;:: Rename previous merged WIM so as not to overwrite or merge to the previous WIM &lt;BR&gt;If exist "%CAPTURES%\XPSP3.wim" rename "%CAPTURES%\XPSP3.wim" "XPSP3_%FileLastModified%.wim" &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;:: Merge the source WIMs into a single destination WIM &lt;BR&gt;call :MERGEIMAGE "%CAPTURES%\XPSP3_1.wim" "%CAPTURES%\XPSP3.wim" &lt;BR&gt;call :MERGEIMAGE "%CAPTURES%\XPSP3_2.wim" "%CAPTURES%\XPSP3.wim" &lt;BR&gt;call :MERGEIMAGE "%CAPTURES%\XPSP3_3.wim" "%CAPTURES%\XPSP3.wim" &lt;BR&gt;call :MERGEIMAGE "%CAPTURES%\XPSP3_4.wim" "%CAPTURES%\XPSP3.wim" &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;goto :EOF &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;:MERGEIMAGE &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for /f "delims=&amp;lt;&amp;gt; tokens=2,3*" %%i in ('imagex /info "%~1" 1') do set %%i=%%j &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; imagex /export "%~1" 1 "%~2" %NAME% &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; imagex /info "%~2" &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;goto :EOF&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;Deploying the XP Multi-image WIM&lt;/H4&gt;
&lt;P&gt;So now that you have this multi-mage WIM file, how do you make sure that the correct image gets applied in the deployment Task Sequence?&amp;nbsp; The steps are different depending on whether you are deploying with MDT Lite Touch Installation or with System Center Configuration Manager 2007 with MDT Integration.&amp;nbsp; You must use MDT Integration and an MDT Task sequence in ConfigMgr so that the Gather step will run.&lt;/P&gt;
&lt;P&gt;In both cases you will need to make the changes to CustomSettings.ini and use ZTI-DetectHardwareExit.vbs as shown in the &lt;STRONG&gt;Edit CustomSettings.ini for Detecting Tablet PC Hardware&lt;/STRONG&gt; section of my &lt;A href="http://blogs.technet.com/deploymentguys/archive/2008/08/03/implementing-the-windows-xp-tablet-pc-edition-2005-single-image-deployment-supplemental-guide-process-in-mdt-2008-full-update.aspx" target=_blank&gt;post&lt;/A&gt; on August 3 2009.&amp;nbsp; Using this multi-image WIM requires that the IsTablet variable is set correctly to True or False.&lt;/P&gt;
&lt;H5&gt;System Center Configuration Manager 2007&lt;/H5&gt;
&lt;P&gt;If you are deploying with System Center Configuration Manager, the setup is very straight forward.&amp;nbsp; Import the WIM files as an Operating System Image Package.&amp;nbsp; In your Task Sequence you will now need to have four Apply Operating System Image steps instead of one.&amp;nbsp; Give each a unique step name like &lt;EM&gt;Apply OS – XP Pro APIC HAL&lt;/EM&gt; to avoid confusion as to why there are four.&amp;nbsp; For all of them you will check &lt;EM&gt;Apply operating system from captured image&lt;/EM&gt; and select the &lt;EM&gt;Image package&lt;/EM&gt; you just created.&amp;nbsp; Then for each one you will select a different &lt;EM&gt;Image&lt;/EM&gt; number (1, 2, 3, or 4).&amp;nbsp; Finally you will set conditions on the &lt;EM&gt;Options&lt;/EM&gt; tab on each Apply Operating System Image step.&amp;nbsp; For example, the conditions for the XP Pro APIC HAL image would look like this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/WindowsXPProfessionalandTabletPCEditionD_10D7E/Conditions_2.jpg" target=_blank&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=Conditions border=0 alt=Conditions src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/WindowsXPProfessionalandTabletPCEditionD_10D7E/Conditions_thumb.jpg" width=244 height=87&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The table below shows the various settings for all the Apply Operating System Image steps.&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=0 width=491&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=223&gt;
&lt;P&gt;Step Name&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=62&gt;
&lt;P&gt;Image #&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=204&gt;
&lt;P&gt;Conditions&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=223&gt;
&lt;P&gt;Apply OS - XP Pro ACPIAPIC HAL&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=62&gt;
&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=204&gt;
&lt;P&gt;HALNAME equals ACPIAPIC and IsTablet equals FALSE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=223&gt;
&lt;P&gt;Apply OS - XP Tablet ACPIAPIC HAL&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=62&gt;
&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=204&gt;
&lt;P&gt;HALNAME equals ACPIAPIC and IsTablet equals TRUE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=223&gt;
&lt;P&gt;Apply OS - XP Pro ACPIPIC HAL&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=62&gt;
&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=204&gt;
&lt;P&gt;HALNAME equals ACPIPIC and IsTablet equals FALSE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=223&gt;
&lt;P&gt;Apply OS - XP Tablet ACPIPIC HAL&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=62&gt;
&lt;P&gt;4&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=204&gt;
&lt;P&gt;HALNAME equals ACPIPIC and IsTablet equals TRUE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;Similarly, you should have two Apply Windows Settings steps, one with the XP Professional Product Key and one with the XP Tablet PC Edition Product Key:&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=0 width=516&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=223&gt;
&lt;P&gt;Step Name&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=186&gt;
&lt;P&gt;Product key&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=105&gt;
&lt;P&gt;Conditions&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=223&gt;
&lt;P&gt;Apply Windows Settings – XP Pro&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=186&gt;
&lt;P&gt;(Windows XP Professional Volume License Key)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=105&gt;
&lt;P&gt;IsTablet equals FALSE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=223&gt;
&lt;P&gt;Apply Windows Settings - XP Tablet&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=186&gt;
&lt;P&gt;(Windows XP Tablet PC Edition 2005 Volume License Key)&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=105&gt;
&lt;P&gt;IsTablet equals TRUE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;H5&gt;&amp;nbsp;&lt;/H5&gt;
&lt;H5&gt;MDT 2008 Update 1&lt;/H5&gt;
&lt;P&gt;If you are using MDT Lite Touch Installation, things get a little trickier.&amp;nbsp; First import the WIM as a Operating System into MDT. After you do you will see four entries in Operating Systems like &lt;EM&gt;XPSP3.1.05_CDrive in "Windows XP SP3\XPSP3.wim"&lt;/EM&gt; if you used a folder name of Windows XP SP3 during import.&lt;/P&gt;
&lt;P&gt;When you create your deployment Task Sequence select the one that starts with &lt;EM&gt;XPSP3.1&lt;/EM&gt; as the operating system to install.&amp;nbsp; This will be the XP Pro APIC HAL image which should be the one that will be installed most often.&amp;nbsp; You can only have the one Install Operating System step in an MDT Task sequence.&lt;/P&gt;
&lt;P&gt;When you import a WIM as an Operating System in the Deployment Workbench it creates one or more entries in \Distribution\Control\OperatingSystems.xml.&amp;nbsp; It will create one entry for each image in the WIM files.&amp;nbsp; Below is an example of the entries in OperatingSystems.xml for my multi-image XP WIM file&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;lt;os guid="{e22d5b4a-1d2f-4c73-860a-ced219bb8c09}"&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Name&amp;gt;XPSP3.1.05_CDrive in "Windows XP SP3\XPSP3.wim"&amp;lt;/Name&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Description&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;/Description&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Platform&amp;gt;x86&amp;lt;/Platform&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Build&amp;gt;5.1.2600.5512&amp;lt;/Build&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Type&amp;gt;Windows XP&amp;lt;/Type&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Source&amp;gt;.\Operating Systems\Windows XP SP3&amp;lt;/Source&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;IncludesSetup&amp;gt;False&amp;lt;/IncludesSetup&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;SMSImage&amp;gt;False&amp;lt;/SMSImage&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;ImageFile&amp;gt;.\Operating Systems\Windows XP SP3\XPSP3.wim&amp;lt;/ImageFile&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;ImageIndex&amp;gt;1&amp;lt;/ImageIndex&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;ImageName&amp;gt;XPSP3.1.05_CDrive&amp;lt;/ImageName&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Flags&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;/Flags&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;HAL&amp;gt;acpiapic_up&amp;lt;/HAL&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Size&amp;gt;3003&amp;lt;/Size&amp;gt; &lt;BR&gt;&amp;lt;/os&amp;gt; &lt;BR&gt;&amp;lt;os guid="{1c47ea5f-73cd-44f2-a0a6-37583ac9b774}"&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Name&amp;gt;XPSP3.2.05_CDrive in "Windows XP SP3\XPSP3.wim"&amp;lt;/Name&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Description&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;/Description&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Platform&amp;gt;x86&amp;lt;/Platform&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Build&amp;gt;5.1.2600.5512&amp;lt;/Build&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Type&amp;gt;Windows XP&amp;lt;/Type&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Source&amp;gt;.\Operating Systems\Windows XP SP3&amp;lt;/Source&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;IncludesSetup&amp;gt;False&amp;lt;/IncludesSetup&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;SMSImage&amp;gt;False&amp;lt;/SMSImage&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;ImageFile&amp;gt;.\Operating Systems\Windows XP SP3\XPSP3.wim&amp;lt;/ImageFile&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;ImageIndex&amp;gt;2&amp;lt;/ImageIndex&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;ImageName&amp;gt;XPSP3.2.05_CDrive&amp;lt;/ImageName&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Flags&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;/Flags&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;HAL&amp;gt;acpiapic_up&amp;lt;/HAL&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Size&amp;gt;3236&amp;lt;/Size&amp;gt; &lt;BR&gt;&amp;lt;/os&amp;gt; &lt;BR&gt;&amp;lt;os guid="{61c15f32-1f9f-4c64-806a-202eaccac425}"&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Name&amp;gt;XPSP3.3.05_CDrive in "Windows XP SP3\XPSP3.wim"&amp;lt;/Name&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Description&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;/Description&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Platform&amp;gt;x86&amp;lt;/Platform&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Build&amp;gt;5.1.2600.5512&amp;lt;/Build&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Type&amp;gt;Windows XP&amp;lt;/Type&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Source&amp;gt;.\Operating Systems\Windows XP SP3&amp;lt;/Source&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;IncludesSetup&amp;gt;False&amp;lt;/IncludesSetup&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;SMSImage&amp;gt;False&amp;lt;/SMSImage&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;ImageFile&amp;gt;.\Operating Systems\Windows XP SP3\XPSP3.wim&amp;lt;/ImageFile&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;ImageIndex&amp;gt;3&amp;lt;/ImageIndex&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;ImageName&amp;gt;XPSP3.3.05_CDrive&amp;lt;/ImageName&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Flags&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;/Flags&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;HAL&amp;gt;acpipic_up&amp;lt;/HAL&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Size&amp;gt;3051&amp;lt;/Size&amp;gt; &lt;BR&gt;&amp;lt;/os&amp;gt; &lt;BR&gt;&amp;lt;os guid="{a8f8689f-ed34-4595-a2f8-02ef98832979}"&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Name&amp;gt;XPSP3.4.05_CDrive in "Windows XP SP3\XPSP3.wim"&amp;lt;/Name&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Description&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;/Description&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Platform&amp;gt;x86&amp;lt;/Platform&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Build&amp;gt;5.1.2600.5512&amp;lt;/Build&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Type&amp;gt;Windows XP&amp;lt;/Type&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Source&amp;gt;.\Operating Systems\Windows XP SP3&amp;lt;/Source&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;IncludesSetup&amp;gt;False&amp;lt;/IncludesSetup&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;SMSImage&amp;gt;False&amp;lt;/SMSImage&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;ImageFile&amp;gt;.\Operating Systems\Windows XP SP3\XPSP3.wim&amp;lt;/ImageFile&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;ImageIndex&amp;gt;4&amp;lt;/ImageIndex&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;ImageName&amp;gt;XPSP3.4.05_CDrive&amp;lt;/ImageName&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Flags&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;/Flags&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;HAL&amp;gt;acpipic_up&amp;lt;/HAL&amp;gt; &lt;BR&gt;&amp;nbsp; &amp;lt;Size&amp;gt;3284&amp;lt;/Size&amp;gt; &lt;BR&gt;&amp;lt;/os&amp;gt; &lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You will notice that each entry is assigned a unique GUID.&amp;nbsp; This is what MDT uses to track what OS to install when you select an OS in the Install Operating System step.&amp;nbsp; Unfortunately, MDT takes the GUID from the entry selected in the Install Operating System step and sets a global Task Sequence variable called OSGUID with the value.&amp;nbsp; This means that to change what OS gets installed within the Task Sequence, you have to override the OSGUID value with the GUID for the OS you want to install.&amp;nbsp; You also need to override the variable IMAGEINDEX as well.&amp;nbsp; To do this you need to create a series of Set Task Sequence Variable steps to override both variables using conditions similar to those on the ConfigMgr steps.&amp;nbsp; Below is a table showing the Set Task Sequence Variable steps for my sample above that should immediately precede the Install Operating System step and their conditions.&amp;nbsp; There should be no conditions on the Install Operating System step. &lt;BR&gt;&lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=0 width=685&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=173&gt;
&lt;P&gt;Step Name&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=85&gt;
&lt;P&gt;TS Variable&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=259&gt;Value&lt;/TD&gt;
&lt;TD vAlign=top width=166&gt;
&lt;P&gt;Conditions&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=172&gt;
&lt;P&gt;Set OSGUID - XP Tablet ACPIAPIC HAL&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=87&gt;
&lt;P&gt;OSGUID&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=258&gt;{1c47ea5f-73cd-44f2-a0a6-37583ac9b774}&lt;/TD&gt;
&lt;TD vAlign=top width=165&gt;
&lt;P&gt;HALNAME equals ACPIAPIC and IsTablet equals TRUE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=172&gt;
&lt;P&gt;Set IMAGEINDEX - XP Tablet ACPIAPIC HAL&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=89&gt;
&lt;P&gt;IMAGEINDEX &lt;/P&gt;&lt;/TD&gt;
&lt;TD width=257&gt;2&lt;/TD&gt;
&lt;TD vAlign=top width=165&gt;
&lt;P&gt;HALNAME equals ACPIAPIC and IsTablet equals TRUE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=172&gt;
&lt;P&gt;Set OSGUID - XP Pro ACPIPIC HAL&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=91&gt;
&lt;P&gt;OSGUID&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=256&gt;{61c15f32-1f9f-4c64-806a-202eaccac425}&lt;/TD&gt;
&lt;TD vAlign=top width=164&gt;
&lt;P&gt;HALNAME equals ACPIPIC and IsTablet equals FALSE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=171&gt;
&lt;P&gt;Set IMAGEINDEX - XP Pro ACPIPIC HAL&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=92&gt;
&lt;P&gt;IMAGEINDEX &lt;/P&gt;&lt;/TD&gt;
&lt;TD width=256&gt;3&lt;/TD&gt;
&lt;TD vAlign=top width=164&gt;
&lt;P&gt;HALNAME equals ACPIPIC and IsTablet equals FALSE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=171&gt;
&lt;P&gt;Set OSGUID - XP Tablet ACPIPIC HAL&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=93&gt;
&lt;P&gt;OSGUID&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=255&gt;{a8f8689f-ed34-4595-a2f8-02ef98832979}&lt;/TD&gt;
&lt;TD vAlign=top width=164&gt;
&lt;P&gt;HALNAME equals ACPIPIC and IsTablet equals TRUE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=171&gt;
&lt;P&gt;Set IMAGEINDEX - XP Tablet ACPIPIC HAL&lt;/P&gt;&lt;/TD&gt;
&lt;TD width=93&gt;
&lt;P&gt;IMAGEINDEX &lt;/P&gt;&lt;/TD&gt;
&lt;TD width=255&gt;4&lt;/TD&gt;
&lt;TD vAlign=top width=164&gt;
&lt;P&gt;HALNAME equals ACPIPIC and IsTablet equals TRUE&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;You will also need to set the ProductKey property to either the XP Pro or XP Tablet key depending on whether IsTablet equals FALSE or TRUE respectively.&amp;nbsp; This can be done using conditioned Set Task Sequence Variable steps or using CustomSettings.ini by adding sections like the ones shown below:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Settings] &lt;BR&gt;Priority=IsTabletCheck, ByTabletType, Default &lt;BR&gt;Properties=MyCustomProperty, TabletPnpIds, IsTablet, XPTabletProductKey &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[IsTabletCheck] &lt;BR&gt;TabletPnpIds=ACPI\WACF004,ACPI\WACF008,ACPI\MAI3310,ACPI\FUJ02E5 &lt;BR&gt;UserExit=ZTI-DetectHardwareExit.vbs &lt;BR&gt;IsTablet=#DetectDevices("%TabletPnpIds%")# &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[ByTabletType] &lt;BR&gt;Subsection=Tablet-%IsTablet% &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Tablet-True] &lt;BR&gt;ProductKey=AAAAA-BBBBB-CCCCC-DDDDD-EEEEE &lt;BR&gt;OSInstall=Y &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Tablet-False] &lt;BR&gt;ProductKey=11111-22222-33333-44444-55555&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;OSInstall=Y &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Tablet-Error] &lt;BR&gt;OSInstall=N &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Default]&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;where 11111-22222-33333-44444-55555 represents the XP Pro product key and AAAAA-BBBBB-CCCCC-DDDDD-EEEEE represents the XP Tablet PC Edition product key.&lt;/P&gt;
&lt;H4&gt;Creating Multi-image WIM files with Other Operating Systems&lt;/H4&gt;
&lt;P&gt;Creating and deploying multi-image WIM files can be done with other operating systems.&amp;nbsp; For example, you could use a single task sequence to create an custom WIM that contains custom images of Windows Vista Business and Windows Vista Enterprise.&amp;nbsp; Or create a single WIM file with Windows Server 2008 Standard, Enterprise, and Datacenter.&amp;nbsp; (You would generally only include images of the same OS and the same architecture with a single WIM.&amp;nbsp; You would not benefit from single instance storage if you tried to include x86 and x64 images in the same WIM.)&amp;nbsp; To do this, the image build process would have to be done more like the MDT 2008 deployment method described above.&amp;nbsp; What is unique about XP is all the images were created for the same source “Operating System” (the XP SP2 media).&amp;nbsp; For including multiple editions of other operating systems in a single WIM requires using multiple MDT “Operating Systems” in the Task Sequence.&amp;nbsp; This requires overriding the OSGUID and IMAGEINDEX like the process above except you would have to condition off another variable.&lt;/P&gt;
&lt;P&gt;For example, let’s say you wanted to create a WIM that contains custom images of Windows Vista Business and Windows Vista Enterprise.&amp;nbsp; You could set a custom variable call Edition like this:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Settings] &lt;BR&gt;Priority=Default, MACAddress, Finish &lt;BR&gt;Properties=MyCustomProperty, CapturedImageIndex, ImageNamePrefix, CompletionFile, BackupFile, Edition&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[Default] &lt;BR&gt;OSInstall=Y &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;.&amp;nbsp; &lt;BR&gt;.&amp;nbsp; &lt;BR&gt;. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[00:15:5D:11:AF:FF] &lt;BR&gt;; Vista Business x86 &lt;BR&gt;BuildID=Vistax86SP1 &lt;BR&gt;TaskSquenceID=Vistax86SP1 &lt;BR&gt;Edition=Business &lt;BR&gt;CapturedImageIndex=1 &lt;BR&gt;ComputerName=vbx86sp1 &lt;BR&gt;WsusServer=&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;http://MDTSERVER&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;[00:15:5D:11:AF:FE] &lt;BR&gt;; Vista Enterprise x86 &lt;BR&gt;BuildID=Vistax86SP1 &lt;BR&gt;TaskSquenceID=Vistax86SP1 &lt;BR&gt;Edition=Enterprise &lt;BR&gt;CapturedImageIndex=2 &lt;BR&gt;ComputerName=vex86sp1 &lt;BR&gt;WsusServer=&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;http://MDTSERVER&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;. &lt;BR&gt;. &lt;BR&gt;.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;In the image build Task Sequence you would select the most often deployed OS (let’s say Windows Vista Enterprise for example) in the Install Operating System step.&amp;nbsp; You would then create Set Task Sequence Variable steps that override the OSGUID and IMAGEINDEX with the ones for Windows Vista Business with a condition of Edition equals Business.&lt;/P&gt;
&lt;P&gt;For deploying the resulting WIM you would do similar conditioned steps for ConfigMgr and MDT but you would have to again use a custom variable for the condition that perhaps get set per computer, location, or role in CustomSettings.ini or the MDT database.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the &lt;/STRONG&gt;&lt;A href="http://www.microsoft.com/info/cpyright.mspx" target=_blank mce_href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;Terms of Use&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This post was contributed by &lt;B&gt;Michael Murgolo,&lt;/B&gt; a Senior Consultant with Microsoft Services - U.S. East Region.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3107515" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3107515.ashx" length="12967" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/deploymentguys/archive/tags/ConfigMgr/default.aspx">ConfigMgr</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/XP+Tablet+PC+Edition/default.aspx">XP Tablet PC Edition</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category></item><item><title>Keeping An Eye On USMT Progress</title><link>http://blogs.technet.com/deploymentguys/archive/2009/06/26/keeping-an-eye-on-usmt-progress.aspx</link><pubDate>Fri, 26 Jun 2009 12:31:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3258900</guid><dc:creator>Daniel Oxley</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3258900.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3258900</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3258900</wfw:comment><description>&lt;P&gt;I recently did a project where all users had around 25Gb (don’t ask!) of data that had to be migrated with the USMT during the OS deployment.&amp;nbsp; Because of the sheer volume of data, the USMT phases of the project took an extremely long time to complete, and because no on-screen feedback is given of the progress, the customer would often think that something had hung, so they often cancelled the deployment; only to find that it was indeed running correctly.&amp;nbsp; In order to stop them doing this, I wrote a very simple VBS script that showed the current progress of the USMT.&amp;nbsp; It works by simply parsing the progress file, looking for the percentage progress of the process.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/KeepingAnEyeOnUSMTProgress_836F/tracker_2.jpg" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/KeepingAnEyeOnUSMTProgress_836F/tracker_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=tracker border=0 alt=tracker src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/KeepingAnEyeOnUSMTProgress_836F/tracker_thumb.jpg" width=304 height=104 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/KeepingAnEyeOnUSMTProgress_836F/tracker_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;I thought I would publish it here, because when I showed it to some colleagues they asked for a copy as they thought it would be useful to use during the lab phases of MDT projects.&lt;/P&gt;
&lt;P&gt;It consists simply of a VBS file that requires the path of the USMT log file to be passed as a parameter.&amp;nbsp; The script creates a small HTML window that then displays a single line showing the progress of the USMT as a percentage.&amp;nbsp; You can either launch the script by hand or add it to the task sequence.&amp;nbsp; To add this to the task sequence, simple add the following “Run Command Line" action before the USMT capture or restore actions (or both):&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;cmd.exe /c “start /MIN cscript.exe Z:\Scripts\CUSTOM_USMT_Tracker.vbs C:\MININT\SMSOSD\OSDLOGS\USMTCapture.prg”&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;cmd.exe /c “start /MIN cscript.exe Z:\Scripts\CUSTOM_USMT_Tracker.vbs C:\MININT\SMSOSD\OSDLOGS\USMTRestore.prg”&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Why the two commands lines?&amp;nbsp; Well, the first one is to show the progress of the &lt;EM&gt;capture&lt;/EM&gt; phase of the USMT, and the second is to show the progress of the &lt;EM&gt;restore&lt;/EM&gt; phase.&amp;nbsp; Also, I should point out that the command is launched in this way because MDT needs to launch the command, and then move on.&amp;nbsp; If you don't have the cmd.exe /c "start" part at the beginning then MDT will launch the script and wait for it to finish (which is never) and the USMT commands will never fire.&amp;nbsp; You may also have noticed that I had to put the drive letter in the command path, this is because the variable %SCRIPTROOT% is not available with this usage.&lt;/P&gt;
&lt;P&gt;The screenshot below shows what it looks like in action.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/KeepingAnEyeOnUSMTProgress_836F/desktop_2.jpg" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/KeepingAnEyeOnUSMTProgress_836F/desktop_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=desktop border=0 alt=desktop src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/KeepingAnEyeOnUSMTProgress_836F/desktop_thumb.jpg" width=644 height=484 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/KeepingAnEyeOnUSMTProgress_836F/desktop_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Be warned though, this script does consume quite a few CPU cycles because it is probably not the most efficient routine; it was really a proof-of-concept thing that I wrote in order to show that everything was running as expected.&amp;nbsp; When I wrote it I was running it on dual core desktop computers and it didn’t seem to noticeable affect the deployment time.&lt;/P&gt;
&lt;P&gt;Attached to this post is the script file.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This post was contributed by &lt;STRONG&gt;Daniel Oxley&lt;/STRONG&gt; a consultant with Microsoft Consulting Services Spain&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the &lt;/STRONG&gt;&lt;A href="http://www.microsoft.com/info/cpyright.mspx" mce_href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;STRONG&gt;Terms of Use&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3258900" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3258900.ashx" length="2151" type="application/octet-stream" /><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Utilities/default.aspx">Utilities</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/USMT/default.aspx">USMT</category></item><item><title>Excluding USB, FireWire and other drives from USMT Capture</title><link>http://blogs.technet.com/deploymentguys/archive/2009/04/29/excluding-usb-firewire-and-other-drives-from-usmt-capture.aspx</link><pubDate>Wed, 29 Apr 2009 15:48:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3232151</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3232151.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3232151</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3232151</wfw:comment><description>&lt;P&gt;A common requirement during user state migration is to not capture data from certain drives.&amp;nbsp; The most commonly requested for exclusion are removable drives such as USB and FireWire drives.&amp;nbsp; There is no command line option to exclude these drives automatically with USMT v3.&amp;nbsp; I had to turn to scripting to accomplish this.&lt;/P&gt;
&lt;P&gt;I created a script, ZTI-ExcludeDrivesXmlGen.wsf (and its function library HelperFunctions.vbs), that will generate a USMT XML rules file to unconditionally exclude USB and FireWire drives (as well as additional specified drives) during the deployment.&amp;nbsp; The script should be run during the State Capture phase before Scanstate.exe is run.&amp;nbsp; The resulting XML file should be used on both the Scanstate.exe and Loadstate.exe command lines.&amp;nbsp; The script is driven by either command line switches or MDT properties:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Use the /output switch or the USMTExcludeDrivesOutput property to specify the output XML file.&amp;nbsp; If not specified, the default of oUtility.LogPath &amp;amp; "\MigExcludeDrives.xml" is used. &lt;/LI&gt;
&lt;LI&gt;Use the /usb switch or the property USMTExcludeUsbDrives=True to exclude USB and FireWire drives from the migration. &lt;/LI&gt;
&lt;LI&gt;Use the /scriptdrive switch or the property USMTExcludeScriptDrive=True to exclude the drive from which this script is running from the migration. &lt;/LI&gt;
&lt;LI&gt;Use the /drives switch or the USMTExcludeDrives property to exclude specific drives from the migration.&amp;nbsp; The switch should be specified like this example: &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /drives:"D:,E:,F:" &lt;BR&gt;The property should be specified like this example: &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; USMTExcludeDrives=D:,E:,F: &lt;/LI&gt;
&lt;LI&gt;Use the /flagfile switch or the USMTExcludeDriveFlagFile property to exclude specific drives from the migration using a flag file.&amp;nbsp; Using the /flagfile switch without a value or setting USMTExcludeDriveFlagFile=True will cause the script to exclude drives that have the default flag file, NO_USMT_ON_DRIVE.USMT, in the root folder of the drive.&amp;nbsp; (You SMS experts out there will get the choice of the default flag file name.&amp;nbsp; &lt;FONT face=Wingdings&gt;J&lt;/FONT&gt; )&amp;nbsp; Using the switch or property with a file name value will exclude drives that have the specified named flag file in the root folder of the drive.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Remember that the generated XML file must also&amp;nbsp;be used with Loadstate.exe.&amp;nbsp; Therefore, it must be saved to a location that from which it can be retrieved during the State Restore phase.&amp;nbsp; I have included a script, ZTI-CopyFilesToStateFolder.wsf, to copy files to a subfolder&amp;nbsp;of the state store location that can be used for this.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the &lt;/STRONG&gt;&lt;A href="http://www.microsoft.com/info/cpyright.mspx" mce_href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;STRONG&gt;Terms of Use&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This post was contributed by &lt;B&gt;Michael Murgolo,&lt;/B&gt; a Senior Consultant with Microsoft Services - U.S. East Region.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3232151" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3232151.ashx" length="12880" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/USMT/default.aspx">USMT</category></item><item><title>Deploying Windows 7 VL with MAK (Multiple Access Keys) using MDT 2010</title><link>http://blogs.technet.com/deploymentguys/archive/2009/03/30/deploying-windows-7-vl-with-mak-multiple-access-keys-using-mdt-2010.aspx</link><pubDate>Mon, 30 Mar 2009 11:00:26 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3219580</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3219580.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3219580</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3219580</wfw:comment><description>&lt;p&gt;My esteemed colleague - Doug Klokow who is a Senior Consultant in the worldwide deployment practice, working with Windows 7 TAP (Technical Adoption Program) customers in the US has put together a most useful set of instructions regarding Windows 7 deployment using MDT 2010 and MAK keys. This is of benefit when deploying to environments where access to KMS may be tricky during the activation timescales – I recently came across this in a university where professors and research staff go off on research assignments for up to a year at a time…When deploying Windows 7 Enterprise Volume License (VL) edition using MDT 2010, it is possible to include a MAK activation key, however, the standard methods of including the key in the unattend.xml file requires modification. Additionally, it is possible to deploy MAK keys using a custom script as part of a Task Sequence. &lt;/p&gt;  &lt;h5&gt;Situation&lt;/h5&gt;  &lt;p&gt;While deploying Windows 7 Enterprise VL with MDT 2010, the typical behaviour would be to include the activation key in the customisation wizard used to create a Task Sequence for the deployment of the Windows 7 operating system. By design, the Task Sequence wizard is designed to support retail activation keys, not volume license keys. The difference is subtle, but important to the context of this scenario.&lt;/p&gt;  &lt;p&gt;As you complete the New Task Sequence Wizard, you are prompted the Product key.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image002_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image002_thumb.jpg" width="354" height="291" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When you enter a product key into the field shown above, the MDT 2010 wizard adds the code into two specific locations of the unattend.xml file for this task sequence.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image004_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image004_thumb.jpg" width="356" height="309" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image006_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image006_thumb.jpg" width="328" height="309" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The first location for the ProductKey is the &lt;b&gt;WindowsPE&lt;/b&gt; phase, specifically, the &lt;b&gt;x86_Microsoft-Windows-Setup_neutral\UserData\ProductKey &lt;/b&gt;setting.&lt;/p&gt;  &lt;p&gt;The second location is in the &lt;b&gt;Specialize &lt;/b&gt;phase, specifically &lt;b&gt;the x86_Microsoft-Windows-Shell-Setup_neutral\ProductKey&lt;/b&gt; setting.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;     &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;h5&gt;Issue&lt;/h5&gt;  &lt;p&gt;The Unattended Windows Setup reference explains why there are two entries for the ProductKey setting, but if the Product Key for Windows 7 Enterprise is placed in both locations (as is the default) when entering the Product Key using the task sequence creation wizard, you will receive the following error when attempting to build or deploy a client machine with that task sequence.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image009_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image009" border="0" alt="clip_image009" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image009_thumb.jpg" width="393" height="164" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;     &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;h5&gt;Resolution&lt;/h5&gt;  &lt;p&gt;There are a number of options available to address this particular situation. Each provides a resolution, but using different methods.&lt;/p&gt;  &lt;h6&gt;OPTION 1&lt;/h6&gt;  &lt;p&gt;Simply delete the ProductKey entry in the &lt;b&gt;WindowsPE&lt;/b&gt; phase, specifically, the &lt;b&gt;x86_Microsoft-Windows-Setup_neutral\UserData\ProductKey &lt;/b&gt;setting. The unattended install should work as expected deploying your Windows 7 machine using the configurations your define. Once the Windows 7 installation is complete, it will be necessary to either manually kick off the activation process from the Computer Properties screen of the machine, or using the Volume Activation Management Tool (VAMT) to complete the activation remotely.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: At the time this blog was authored, an updated VAMT tool is not presently available with support for Windows 7. &lt;/p&gt;  &lt;h6&gt;OPTION 2&lt;/h6&gt;  &lt;p&gt;Use the &lt;b&gt;&lt;i&gt;slmgr.vbs&lt;/i&gt;&lt;/b&gt; script to perform the activation as a task in the task sequence in lieu of the ProductKey entries in the unattend.xml file. Check the two locations in the &lt;b&gt;unattend.xml&lt;/b&gt; file to validate that both entries for ProductKey are blank.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;STEP 1:&lt;/b&gt; Add the first entry into the Custom Tasks section of the State Restore phase as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image011_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image011" border="0" alt="clip_image011" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image011_thumb.jpg" width="360" height="320" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="96"&gt;           &lt;p&gt;Task Name:&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="542"&gt;           &lt;p&gt;Activate Client using VL MAK&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="96"&gt;           &lt;p&gt;Command Line:&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="542"&gt;           &lt;p&gt;cscript.exe c:\windows\system32\slmgr.vbs /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="96"&gt;           &lt;p&gt;Start in:&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="542"&gt;           &lt;p&gt;c:\windows\system32&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;NOTE: Replace the X's with your VL MAK key for Windows 7&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;STEP 2:&lt;/b&gt; Add the slmgr.vbs /ato script to automatically activate the client during deployment as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image013_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image013" border="0" alt="clip_image013" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image013_thumb.jpg" width="365" height="324" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="106"&gt;           &lt;p&gt;Task Name:&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="532"&gt;           &lt;p&gt;Activate the machine using the VL MAK&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="106"&gt;           &lt;p&gt;Command Line:&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="532"&gt;           &lt;p&gt;cscript.exe c:\windows\system32\slmgr.vbs /ato&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="106"&gt;           &lt;p&gt;Start in:&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="532"&gt;           &lt;p&gt;c:\windows\system32&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;NOTE: This task will only work if the machine is connected to the internet during the State Restore phase. If this task fails because the network connectivity is not fully initialized, it is possible to manually activate the client through the Computer Properties window.&lt;/p&gt;  &lt;p&gt;Now when the client machine is deployed, the task sequence will provide the MAK key during the State Restore phase, and attempt to automatically activate the client machine.&lt;/p&gt;  &lt;h6&gt;OPTION 3&lt;/h6&gt;  &lt;p&gt;Use the OverRideProductKey entry in the CustomSettings.ini to specify the MAK key to be injected. This will add the MAK product key only into the &lt;b&gt;x86_Microsoft-Windows-Shell-Setup_neutral\ProductKey &lt;/b&gt;location in the Unattend.xml.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;From the MDT Toolkit Reference document:&lt;/i&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a name="_Toc204677072"&gt;&lt;/a&gt;&lt;a name="_Toc182020152"&gt;&lt;/a&gt;&lt;a name="_Toc182109001"&gt;OverrideProductKey&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;The Multiple Activation Key (MAK) string to be applied after the target operating is deployed to the target computer. The value specified in this property is used by the ZTILicensing.wsf script during the State Restore Phase to apply the MAK to the target operating system. The script also configures the volume licensing image to use MAK activation instead of Key Management Service (KMS). The operating system needs to be activated with Microsoft after the MAK is applied. This is used when the target computer is unable to access a server that is running KMS.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="110"&gt;           &lt;p&gt;Value&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="518"&gt;           &lt;p&gt;Description&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="110"&gt;           &lt;p&gt;&lt;i&gt;MAK&lt;/i&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="518"&gt;           &lt;p&gt;The MAK string to be provided to the target operating system.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0" width="632"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="630"&gt;           &lt;p&gt;Example&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="630"&gt;           &lt;p&gt;[Settings]&lt;/p&gt;            &lt;p&gt;Priority=Default&lt;/p&gt;            &lt;p&gt;[Default]&lt;/p&gt;            &lt;p&gt;ProductKey=AAAAA-BBBBB-CCCCC-DDDDD-EEEEE-FFFFF&lt;/p&gt;            &lt;p&gt;&lt;b&gt;OverrideProductKey=AAAAA-BBBBB-CCCCC-DDDDD-EEEEE-FFFFF&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;h5&gt;Option 4&lt;/h5&gt;  &lt;p&gt;During deployment, it is possible to specify the Product Key while running the deployment of the workstation. The Deployment Wizard includes an option to prompt for the Product Key using the &amp;quot;SkipProductKey&amp;quot; entry in the CustomSettings.ini file for the Deployment Point. By specifying an entry of &amp;quot;SkipProductKey=No&amp;quot; the user will be prompted to enter a key while running the deployment of the machine, and if they enter their MAK key there, they deployment will complete successfully.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;From the MDT Toolkit Reference document:&lt;/i&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a name="_Toc204677104"&gt;&lt;/a&gt;&lt;a name="_Toc182109031"&gt;SkipProductKey&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Indicates whether the Specify the product key needed to install this operating system wizard page is skipped.&lt;/p&gt;  &lt;p&gt;For other properties that must be configured when this property is set to YES, see the section “Providing Properties for Skipped Windows Deployment Wizard Pages” later in this reference.&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="97"&gt;           &lt;p&gt;Value&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="711"&gt;           &lt;p&gt;Description&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="97"&gt;           &lt;p&gt;YES&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="711"&gt;           &lt;p&gt;Wizard page is not displayed, and the information on that page is not collected.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="97"&gt;           &lt;p&gt;NO&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="711"&gt;           &lt;p&gt;Wizard page is displayed, and the information on that page is collected. This is the default value.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0" width="813"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="811"&gt;&lt;b&gt;             &lt;br /&gt;&lt;/b&gt;            &lt;p&gt;Example&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="811"&gt;           &lt;p&gt;[Settings]&lt;/p&gt;            &lt;p&gt;Priority=Default&lt;/p&gt;            &lt;p&gt;[Default]&lt;/p&gt;            &lt;p&gt;SkipWizard=NO&lt;/p&gt;            &lt;p&gt;SkipCapture=NO&lt;/p&gt;            &lt;p&gt;SkipAdminPassword=YES&lt;/p&gt;            &lt;p&gt;SkipApplications=NO&lt;/p&gt;            &lt;p&gt;SkipAppsOnUpgrade=NO&lt;/p&gt;            &lt;p&gt;SkipComputerBackup=NO&lt;/p&gt;            &lt;p&gt;SkipDomainMembership=NO&lt;/p&gt;            &lt;p&gt;SkipDeploymentType=NO&lt;/p&gt;            &lt;p&gt;SkipUserData=NO&lt;/p&gt;            &lt;p&gt;SkipPackageDisplay=NO&lt;/p&gt;            &lt;p&gt;SkipLocaleSelection=NO&lt;/p&gt;            &lt;p&gt;&lt;b&gt;SkipProductKey=YES&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Caution This property value must be specified in upper case so that it can be properly read by the deployment scripts.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you are working with MDT 2010 Beta 1 then the issue and resolutions referred to above are valid – however our other most esteemed colleague and MDT creator Michael Niehaus has pointed out that the issue has been fixed for MDT 2010 Beta 2.&amp;#160; Now the screen will have another option to match the options that are available in the client-side Deployment Wizard:   &lt;br /&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image002%5B1%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002[1]" border="0" alt="clip_image002[1]" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image002%5B1%5D_thumb.jpg" width="519" height="429" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h5&gt;Resources&lt;/h5&gt;  &lt;p&gt;For more information on the using the SLMGR.VBS script for activation tasks, see the &lt;a href="http://technet.microsoft.com/en-us/library/cc303280.aspx"&gt;Volume Activation 2.0 Deployment Guide&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;For more information on the ProductKey setting, see the &lt;a href="http://technet.microsoft.com/en-us/library/cc721925.aspx"&gt;Unattended Windows Setup Reference&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;This post was contributed by &lt;strong&gt;Richard Smith &lt;/strong&gt;a senior consultant with Microsoft Services UK on behalf of &lt;strong&gt;Doug Klokow&lt;/strong&gt; a senior consultant with Microsoft Services US&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3219580" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Back to basics #3 – Branding the deployment and fixing the 0xc000000e problem</title><link>http://blogs.technet.com/deploymentguys/archive/2008/11/20/back-to-basics-3-branding-the-deployment-and-fixing-the-0xc000000e-problem.aspx</link><pubDate>Thu, 20 Nov 2008 11:57:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3156868</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3156868.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3156868</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3156868</wfw:comment><description>&lt;P align=justify&gt;Two more tips for the blog.&amp;nbsp; Actually, one is a tip and the other is the solution to a common problem I see!&lt;/P&gt;
&lt;P align=justify&gt;During the execution of a task sequence in MDT (normally while creating an image, or deploying one) the computer will display the Installation Progress window in the centre of the screen, on top of all others (see &lt;A href="http://blogs.technet.com/deploymentguys/archive/2008/03/19/useful-script-number-2-move-the-task-sequence-window.aspx" mce_href="http://blogs.technet.com/deploymentguys/archive/2008/03/19/useful-script-number-2-move-the-task-sequence-window.aspx"&gt;here&lt;/A&gt; and &lt;A href="http://blogs.technet.com/deploymentguys/archive/2008/10/09/placing-your-window-on-top-during-the-windowspe-stage.aspx" mce_href="http://blogs.technet.com/deploymentguys/archive/2008/10/09/placing-your-window-on-top-during-the-windowspe-stage.aspx"&gt;here&lt;/A&gt; for tips on how to move this window out the way).&amp;nbsp; By default, this window says “IT Organization” in bold letters; something like this:&lt;/P&gt;
&lt;P align=center&gt;&amp;nbsp;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image7.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image7.png"&gt;&lt;IMG title="IT Organization" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=114 alt="IT Organization" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image7_thumb.png" width=355 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image7_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P align=center&gt;But wouldn’t it be good if you could change it to look like this? &lt;BR&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image4.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image4.png"&gt;&lt;IMG title="Contoso - Windows Vista Deployment" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=114 alt="Contoso - Windows Vista Deployment" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image4_thumb.png" width=355 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image4_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;By simply setting the variable &lt;STRONG&gt;_SMSTSOrgName&lt;/STRONG&gt; in the &lt;STRONG&gt;customsettings.ini&lt;/STRONG&gt; file, you can replace the text “IT Organization” with anything you like (as long as it is not longer than the width of the progress window!).&lt;/P&gt;
&lt;P&gt;For example, the below customsettings.ini file will set the text to “Contoso – Windows Vista Deployment” in the progress window: &lt;/P&gt;
&lt;P&gt;[Default] &lt;BR&gt;OSInstall=Y &lt;BR&gt;SkipProductKey=YES &lt;BR&gt;SkipFinalSummary=NO &lt;BR&gt;SkipComputerName=YES &lt;BR&gt;SkipApplications=YES &lt;BR&gt;Computername=%SerialNumber% &lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#000000&gt;_SMSTSOrgName=Contoso – Windows Vista Deployment&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P align=justify&gt;If you wish to change the “&lt;STRONG&gt;Running: Lite Touch Installation&lt;/STRONG&gt;” text on the window it is not so straightforward.&amp;nbsp; You need to edit the line &lt;EM&gt;oEnvironment.Item("_SMSTSPackageName") = "Lite Touch Installation”&lt;/EM&gt; (usually line number 599) in the script &lt;STRONG&gt;LiteTouch.wsf&lt;/STRONG&gt;, replacing the text in the quotes with the text that you want to display.&amp;nbsp; However, you should be aware that if you modify any of the out-of-the-box scripts that are provided with MDT you might no longer be eligible for any support from Microsoft; consult with your local Microsoft contact for more information.&lt;/P&gt;
&lt;P align=justify mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=justify mce_keep="true"&gt;These are one of the first questions I often get asked by customers who have existing MDT servers.&amp;nbsp; While it might seem a rather basic and obvious configuration to some, a lot of people seem to have not found out how to change it and consequently believe that they have to maintain the default setting of “IT Organization”!&lt;/P&gt;
&lt;P align=justify mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=justify mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=justify mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=justify&gt;Recently, I was trying to use an external USB drive as a media deployment point to boot some computers in a laboratory.&amp;nbsp; Nearly every machine booted fine, but a couple of them always failed with the same not-so-helpful error message:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;Status: 0xc000000e &lt;BR&gt;&lt;/EM&gt;&lt;EM&gt;Info: An unexpected error has occurred&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/clip_image001_2.jpg"&gt;&lt;IMG title=clip_image001 style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=184 alt=clip_image001 src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/clip_image001_thumb.jpg" width=244 border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P align=center&gt;&lt;FONT size=1&gt;A rather poor quality photo of the error taken with the camera in a mobile phone! &lt;BR&gt;Click on the picture to enlarge it.&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;Failure always occurred at the same point, just as the computer was about to boot WinPE from the RAM-disk, after loading the WIM file into it from the USB device.&amp;nbsp; Initially, it was suspected that there was a problem with the WinPE WIM file that MDT had generated, but running the “Update” command on the deployment point a couple of times did not solve it.&amp;nbsp; Then, memory was suspected, but this proved to be a functioning correctly as well.&amp;nbsp; What was also strange was that the same files booted correctly on other computers.&amp;nbsp; To make matters worse, some computers of the &lt;EM&gt;same make and model&lt;/EM&gt; booted correctly, while other ‘identical’ machines did not??!?!?!&lt;/P&gt;
&lt;P align=justify&gt;In the end, the problem was solved by upgrading the BIOS on the computer to the latest version published by the manufacturer.&amp;nbsp; It seems that the manufacturer had supplied all new computers but with different BIOS versions, within the same shipment; once the BIOS was upgraded to the newer version the computer booted to WinPE correctly.&amp;nbsp; A word of warning though, you should consult with the manufacturer/hardware supplier before performing any BIOS upgrades.&amp;nbsp; And, don’t forget the adage: “If it ain’t broke, don’t fix it”.&amp;nbsp; From experience, upgrading the BIOS on a machine that does not exhibit any problems may break something that you have already working.&lt;/P&gt;
&lt;P align=justify&gt;Whilst I had seen the problem before, I never really was able to investigate it because the client always just gave me a new computer and took the old one away.&amp;nbsp; So, thanks to a colleague of mine, David Marín, for solving this (after banging his head against the monitor for quite some time trying to work out what was going on!)&lt;/P&gt;
&lt;P align=justify&gt;&lt;EM&gt;This post was contributed by &lt;STRONG&gt;Daniel Oxley&lt;/STRONG&gt; a consultant with Microsoft Services, Spain&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3156868" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Microsoft+Deployment/default.aspx">Microsoft Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category></item><item><title>SCCM 2007 and Microsoft Deployment Toolkit - Video Walkthrough</title><link>http://blogs.technet.com/deploymentguys/archive/2008/03/20/sccm-2007-and-microsoft-deployment-toolkit-video-walkthrough.aspx</link><pubDate>Thu, 20 Mar 2008 11:35:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3015700</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>43</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3015700.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3015700</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3015700</wfw:comment><description>&lt;P&gt;Are you struggling with setting up SCCM 2007 Operating System Deployment and integrating MDT? - I have created a video walkthrough that shows you how to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Setup the server environment for SCCM 2007 OS deployment &lt;/LI&gt;
&lt;LI&gt;Configure the SCCM 2007 Site Settings &lt;/LI&gt;
&lt;LI&gt;Configure the SCCM 2007 Computer Management Settings &lt;/LI&gt;
&lt;LI&gt;Configure the SCCM 2007 Operating System Deployment Settings &lt;/LI&gt;
&lt;LI&gt;Setup and use MDT integration with SCCM 2007 &lt;/LI&gt;
&lt;LI&gt;Add a reference machine object to SCCM 2007 &lt;/LI&gt;
&lt;LI&gt;Create a build and capture reference image for mass deployment using SCCM 2007 &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://wm.microsoft.com/ms/SAT/ricsmith/SCCM2007%20and%20Microsoft%20Deployment%20Toolkit%20Setup%20and%20Config.wmv" mce_href="http://wm.microsoft.com/ms/SAT/ricsmith/SCCM2007%20and%20Microsoft%20Deployment%20Toolkit%20Setup%20and%20Config.wmv"&gt;View the SCCM and MDT Video Walkthrough from the Windows Media Servers here!&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://edge.technet.com/Media/System-Center-Configuration-Manager-2007-and-Microsoft-Deployment-Toolkit-Screencast/" mce_href="http://edge.technet.com/Media/System-Center-Configuration-Manager-2007-and-Microsoft-Deployment-Toolkit-Screencast/"&gt;View the SCCM and MDT Video Walkthrough from the TechNet Edge Media Servers here!&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;This post was contributed by &lt;B&gt;Richard Smith&lt;/B&gt; a Senior Consultant with Microsoft Services, UK.&lt;/I&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3015700" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/SCCM+2007/default.aspx">SCCM 2007</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/ConfigMgr/default.aspx">ConfigMgr</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Video+Walkthrough/default.aspx">Video Walkthrough</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category></item><item><title>Microsoft Deployment Toolkit - Lite Touch Video Walkthrough</title><link>http://blogs.technet.com/deploymentguys/archive/2008/03/13/microsoft-deployment-toolkit-lite-touch-video-walk-through.aspx</link><pubDate>Thu, 13 Mar 2008 12:20:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2993798</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>23</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/2993798.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=2993798</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=2993798</wfw:comment><description>&lt;P&gt;Are you struggling with setting up MDT Lite Touch? - I have created a&amp;nbsp; video walkthrough that shows you how to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Add operating systems, applications, drivers and packages to MDT &lt;/LI&gt;
&lt;LI&gt;Configure Office 2007 into the build process &lt;/LI&gt;
&lt;LI&gt;Create a MDT Lite Touch task sequence&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;Setup a lab based deployment point &lt;/LI&gt;
&lt;LI&gt;Create a customised build to a reference computer &lt;/LI&gt;
&lt;LI&gt;Capture the reference computer as a customised WIM &lt;/LI&gt;
&lt;LI&gt;Add the customised WIM back into MDT for deployment &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A href="http://wm.microsoft.com/ms/SAT/ricsmith/3.%20MDT%20Lite%20Touch%20Build%20Captre%20and%20Deploy%20(Combined).wmv" mce_href="http://wm.microsoft.com/ms/SAT/ricsmith/3.%20MDT%20Lite%20Touch%20Build%20Captre%20and%20Deploy%20(Combined).wmv"&gt;View the MDT Lite Touch Video Walkthrough from the Windows Media Servers here!&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://edge.technet.com/Media/Microsoft-Deployment-Toolkit-Lite-Touch-Screencast/" mce_href="http://edge.technet.com/Media/Microsoft-Deployment-Toolkit-Lite-Touch-Screencast/"&gt;View the MDT Lite Touch Video Walkthrough from the TechNet Edge Media Servers here !&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://cid-7be6feba9e7c999c.skydrive.live.com/self.aspx/DeploymentGuys/MDT.zip" mce_href="http://cid-7be6feba9e7c999c.skydrive.live.com/self.aspx/DeploymentGuys/MDT.zip"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P&gt;&lt;I&gt;This post was contributed by &lt;B&gt;Richard Smith&lt;/B&gt; a Senior Consultant with Microsoft Services, UK.&lt;/I&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=2993798" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Video+Walkthrough/default.aspx">Video Walkthrough</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category></item></channel></rss>