<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">The Deployment Guys</title><subtitle type="html" /><id>http://blogs.technet.com/deploymentguys/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.technet.com/deploymentguys/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2009-08-04T08:52:25Z</updated><entry><title>Happy Halloween - Windows 7 style</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/10/30/happy-halloween-windows-7-style.aspx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/10/30/happy-halloween-windows-7-style.aspx</id><published>2009-10-30T19:00:08Z</published><updated>2009-10-30T19:00:08Z</updated><content type="html">Since my latest Windows 7 “project” turned out so well, I though I’d share it with you. Yes, I did carve this intricate design myself.&amp;#160; :-) &amp;#160; Have a Happy Halloween from the Deployment Guys. &amp;#160; Disclaimer: The information on this site is provided &amp;quot;AS IS&amp;quot; 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 Terms of Use . This post was contributed by Michael...(&lt;a href="http://blogs.technet.com/deploymentguys/archive/2009/10/30/happy-halloween-windows-7-style.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3290458" width="1" height="1"&gt;</content><author><name>DeploymentGuys</name><uri>http://blogs.technet.com/members/DeploymentGuys.aspx</uri></author></entry><entry><title>Configuring Default User Settings – Full Update for Windows 7 and Windows Server 2008 R2</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/10/29/configuring-default-user-settings-full-update-for-windows-7-and-windows-server-2008-r2.aspx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/10/29/configuring-default-user-settings-full-update-for-windows-7-and-windows-server-2008-r2.aspx</id><published>2009-10-29T14:36:00Z</published><updated>2009-10-29T14:36:00Z</updated><content type="html">I have written several posts on this topic before. However, changes were made to Windows 7 and Windows Server 2008 R2 that warrant a full revisit of this topic. This post can can also be also be found on the Windows Springboard Series blog here . Anyone who had been doing operating system deployments long enough has had to deal with configuring default settings for users that log on to the computer after the image is deployed. Some examples of these are folder settings, desktop wallpaper, and screen...(&lt;a href="http://blogs.technet.com/deploymentguys/archive/2009/10/29/configuring-default-user-settings-full-update-for-windows-7-and-windows-server-2008-r2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3287911" width="1" height="1"&gt;</content><author><name>DeploymentGuys</name><uri>http://blogs.technet.com/members/DeploymentGuys.aspx</uri></author><category term="Default User" scheme="http://blogs.technet.com/deploymentguys/archive/tags/Default+User/default.aspx" /></entry><entry><title>Approving Windows Updates in an MDT 2010 Standalone Environment from a ConfigMgr Software Update Point</title><link rel="alternate" type="text/html" 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" /><link rel="enclosure" type="application/x-zip-compressed" length="1498" href="http://blogs.technet.com/deploymentguys/attachment/3288304.ashx" /><id>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</id><published>2009-10-22T01:06:00Z</published><updated>2009-10-22T01:06:00Z</updated><content type="html">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 updates in both environments. The most common solution is to set up an external standalone WSUS server for your reference machine to pull down updates. However, it would be ideal to have a single place to manage the approval and download of updates...(&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;</content><author><name>DeploymentGuys</name><uri>http://blogs.technet.com/members/DeploymentGuys.aspx</uri></author><category term="ConfigMgr" scheme="http://blogs.technet.com/deploymentguys/archive/tags/ConfigMgr/default.aspx" /><category term="Scripts" scheme="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx" /><category term="MDT" scheme="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx" /></entry><entry><title>Essential Guide for Deploying Windows 7</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/10/19/essential-guide-for-deploying-windows-7.aspx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/10/19/essential-guide-for-deploying-windows-7.aspx</id><published>2009-10-19T07:42:51Z</published><updated>2009-10-19T07:42:51Z</updated><content type="html">There is a great eBook that has just been released on the Microsoft website that gives a good insight into many of the technologies and concepts that you’ll need to consider and address for when you start working on your Windows 7 deployment, and the best thing is that the eBook is free! &amp;#160; &amp;#160; It covers a lot of topics, including some very common ones that people often get into problems with, and as you can see from the below table of contents, the scope of the book is surprisingly broad:...(&lt;a href="http://blogs.technet.com/deploymentguys/archive/2009/10/19/essential-guide-for-deploying-windows-7.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3287582" width="1" height="1"&gt;</content><author><name>doxley</name><uri>http://blogs.technet.com/members/doxley.aspx</uri></author></entry><entry><title>Reporting on Office 2007 Customisation Settings</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/10/14/reporting-on-office-2007-customisation-settings.aspx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/10/14/reporting-on-office-2007-customisation-settings.aspx</id><published>2009-10-14T12:53:27Z</published><updated>2009-10-14T12:53:27Z</updated><content type="html">So I don’t know about you but I have a very distinct love hate relationship with the Office 2007 Customisation Wizard. I just love the amount of tweaking I can do and I just hate the fact that I can tweak so much. In past I have found that tweaking as little as possible is often the best way forward. However sometimes you go on site and there is an Office Customisation file already setup – but its not quite doing what you or the deployment team expects. So what now? Well in the past I have gone through...(&lt;a href="http://blogs.technet.com/deploymentguys/archive/2009/10/14/reporting-on-office-2007-customisation-settings.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3286795" width="1" height="1"&gt;</content><author><name>DeploymentGuys</name><uri>http://blogs.technet.com/members/DeploymentGuys.aspx</uri></author></entry><entry><title>How to configure BitLocker on additional drives in a MDT 2010 deployment.</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/10/09/how-to-configure-bitlocker-on-additional-drives-in-a-mdt-2010-deployment.aspx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/10/09/how-to-configure-bitlocker-on-additional-drives-in-a-mdt-2010-deployment.aspx</id><published>2009-10-09T22:39:54Z</published><updated>2009-10-09T22:39:54Z</updated><content type="html">MDT 2010 supports encrypting disks with BitLocker during deployment.&amp;#160; This is configured in the Task Sequence using the following: This works for the Operating System Drive. If configuration of Bitlocker is tried on additional drives, the deployment fails.&amp;#160; When the logs are examined it appears that the encryption of the operating system using the TPM has been tried a second time.&amp;#160; This is because some of the Task Sequence variables that the ZTIBDE.WSF script contain values from encrypting...(&lt;a href="http://blogs.technet.com/deploymentguys/archive/2009/10/09/how-to-configure-bitlocker-on-additional-drives-in-a-mdt-2010-deployment.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3285899" width="1" height="1"&gt;</content><author><name>DeploymentGuys</name><uri>http://blogs.technet.com/members/DeploymentGuys.aspx</uri></author></entry><entry><title>Making WinPE Wait for Network in LTI Deployments</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/09/23/making-winpe-wait-for-network-in-lti-deployments.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="1735" href="http://blogs.technet.com/deploymentguys/attachment/3282767.ashx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/09/23/making-winpe-wait-for-network-in-lti-deployments.aspx</id><published>2009-09-23T21:24:00Z</published><updated>2009-09-23T21:24:00Z</updated><content type="html">&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;</content><author><name>DeploymentGuys</name><uri>http://blogs.technet.com/members/DeploymentGuys.aspx</uri></author><category term="Scripts" scheme="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx" /><category term="MDT" scheme="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx" /></entry><entry><title>Using Device Aliases for Hardware Specific Application Installation</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/09/21/using-device-aliases-for-hardware-specific-application-installation.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="5046" href="http://blogs.technet.com/deploymentguys/attachment/3280390.ashx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/09/21/using-device-aliases-for-hardware-specific-application-installation.aspx</id><published>2009-09-21T12:36:00Z</published><updated>2009-09-21T12:36:00Z</updated><content type="html">&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;</content><author><name>DeploymentGuys</name><uri>http://blogs.technet.com/members/DeploymentGuys.aspx</uri></author><category term="Scripts" scheme="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx" /><category term="MDT" scheme="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx" /></entry><entry><title>Using and Extending Model Aliases for Hardware Specific Application Installation</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/09/10/using-and-extending-model-aliases-for-hardware-specific-application-installation.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="3007" href="http://blogs.technet.com/deploymentguys/attachment/3279639.ashx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/09/10/using-and-extending-model-aliases-for-hardware-specific-application-installation.aspx</id><published>2009-09-10T11:30:00Z</published><updated>2009-09-10T11:30:00Z</updated><content type="html">&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;</content><author><name>DeploymentGuys</name><uri>http://blogs.technet.com/members/DeploymentGuys.aspx</uri></author><category term="Scripts" scheme="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx" /><category term="MDT" scheme="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx" /></entry><entry><title>MDT 2010 is Released to the Web!</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/09/09/mdt-2010-is-released-to-the-web.aspx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/09/09/mdt-2010-is-released-to-the-web.aspx</id><published>2009-09-09T10:54:00Z</published><updated>2009-09-09T10:54:00Z</updated><content type="html">&lt;P&gt;Yesterday the MDT team in Redmond released MDT2010 to the web for download. There is a blog posting with the location for download here: &lt;A href="http://blogs.technet.com/msdeployment/archive/2009/09/09/mdt-2010-is-released.aspx" mce_href="http://blogs.technet.com/msdeployment/archive/2009/09/09/mdt-2010-is-released.aspx"&gt;http://blogs.technet.com/msdeployment/archive/2009/09/09/mdt-2010-is-released.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Or you can go to the following link directly: &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3bd8561f-77ac-4400-a0c1-fe871c461a89&amp;amp;displayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=3bd8561f-77ac-4400-a0c1-fe871c461a89&amp;amp;displayLang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Also Michael Niehaus did a great series of blog posts on most of the new features of MDT 2010.&amp;nbsp; You can review those posts here: &lt;A href="http://blogs.technet.com/mniehaus/search.aspx?q=MDT+2010+New+Feature&amp;amp;p=1" mce_href="http://blogs.technet.com/mniehaus/search.aspx?q=MDT+2010+New+Feature&amp;amp;p=1"&gt;http://blogs.technet.com/mniehaus/search.aspx?q=MDT+2010+New+Feature&amp;amp;p=1&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Make sure you review upgrade instructions for moving from earlier versions of MDT to this latest greatest one. &lt;/P&gt;
&lt;P&gt;Happy Windows 7 Deploying!&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This post was contributed by &lt;B&gt;Richard Trusson,&lt;/B&gt; a Senior Consultant with Microsoft Services, UK.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3279975" width="1" height="1"&gt;</content><author><name>DeploymentGuys</name><uri>http://blogs.technet.com/members/DeploymentGuys.aspx</uri></author></entry><entry><title>Keeping An Eye On USMT Progress v0.2</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/09/02/keeping-an-eye-on-usmt-progress-v0-2.aspx" /><link rel="enclosure" type="application/octet-stream" length="2751" href="http://blogs.technet.com/deploymentguys/attachment/3278746.ashx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/09/02/keeping-an-eye-on-usmt-progress-v0-2.aspx</id><published>2009-09-02T18:41:00Z</published><updated>2009-09-02T18:41:00Z</updated><content type="html">&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;</content><author><name>doxley</name><uri>http://blogs.technet.com/members/doxley.aspx</uri></author><category term="Scripts" scheme="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx" /><category term="Utilities" scheme="http://blogs.technet.com/deploymentguys/archive/tags/Utilities/default.aspx" /><category term="Tips and Tricks" scheme="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx" /><category term="MDT" scheme="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx" /><category term="USMT" scheme="http://blogs.technet.com/deploymentguys/archive/tags/USMT/default.aspx" /></entry><entry><title>Windows 7 WAIK and Custom Images</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/08/27/windows-7-waik-and-custom-images.aspx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/08/27/windows-7-waik-and-custom-images.aspx</id><published>2009-08-27T11:50:46Z</published><updated>2009-08-27T11:50:46Z</updated><content type="html">&lt;p&gt;Working on customer site recently I was perplexed by why I could not create an unattend.xml file from within MDT 2010 for my custom Windows 7 x32 image. So I did some digging and finally located a program manager who could explain to me what was going on. The summary is that;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;if you run Windows 7 x32 and WAIK x32 you can create unattends for both x64 and x32 custom images.&lt;/li&gt;    &lt;li&gt;if you run Windows 7 x64 and WAIK x64 you can &lt;strong&gt;not&lt;/strong&gt; create unattends for x32 custom images.&lt;/li&gt;    &lt;li&gt;running x32 WAIK on Windows 7 x64 is not supported.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;What the program manager said…&lt;/p&gt;  &lt;p&gt;&lt;em&gt;I understand that its an annoyance that on x64 machines, you can only create catalogs for x64 WIM's. Back in Vista timeframe, a decision was made to use the servicing stack binaries in the image you're trying to generate a catalog for, in order to create the catalog (as opposed to having WAIK carry those binaries, which created a servicing burden for WAIK). This was a better overall design strategy since it now allowed WSIM to work ok, independent of any changes made to the servicing stack binaries of the image you're trying to generate a catalog for. &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;However, one side consequence is that the architecture and flavour of the WSIM tool &lt;b&gt;&lt;u&gt;has&lt;/u&gt;&lt;/b&gt; to match the architecture of the servicing stack ( that was extracted from the WIM ). Since a 32 bit WIM carries only a 32 bit servicing stack in it, 64 bit WSIM cannot generate a catalog due to architecture mismatch. ( Hence one can use only 32 bit OPK for this.) However a 64 bit WIM carries both , a 32 bit and a 64 bit servicing stack in it. Thus one can use either a 64 bit or a 32 bit WSIM to generate a catalog for such a WIM.&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;I think they have made the right trade off here in terms of reducing the support complexity for Windows System Image Manager. The down side is it might introduce a few extra steps for those of us creating custom images.&lt;/p&gt;  &lt;p&gt;So if your admin machine is x64 when you create an unattend for a custom image you have to create it against the RTM media. Then copy the resultant XML to the correct place for your x32 custom image to use when it is installed. Alternatively use an x32 workstation to create all your unattends.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;This post was contributed by &lt;b&gt;Richard Trusson,&lt;/b&gt; a Senior Consultant with Microsoft Services, UK.&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3277390" width="1" height="1"&gt;</content><author><name>DeploymentGuys</name><uri>http://blogs.technet.com/members/DeploymentGuys.aspx</uri></author></entry><entry><title>Location Deployment Wizard for ConfigMgr 2007</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/08/17/location-deployment-wizard-for-configmgr-2007.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="69806" href="http://blogs.technet.com/deploymentguys/attachment/3274244.ashx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/08/17/location-deployment-wizard-for-configmgr-2007.aspx</id><published>2009-08-17T19:37:00Z</published><updated>2009-08-17T19:37:00Z</updated><content type="html">&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;</content><author><name>DeploymentGuys</name><uri>http://blogs.technet.com/members/DeploymentGuys.aspx</uri></author><category term="ConfigMgr" scheme="http://blogs.technet.com/deploymentguys/archive/tags/ConfigMgr/default.aspx" /><category term="Configuration Manager" scheme="http://blogs.technet.com/deploymentguys/archive/tags/Configuration+Manager/default.aspx" /><category term="Scripts" scheme="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx" /><category term="Utilities" scheme="http://blogs.technet.com/deploymentguys/archive/tags/Utilities/default.aspx" /><category term="MDT" scheme="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx" /><category term="Windows 7" scheme="http://blogs.technet.com/deploymentguys/archive/tags/Windows+7/default.aspx" /></entry><entry><title>Clustering the MDT Database</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/08/10/clustering-the-mdt-database.aspx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/08/10/clustering-the-mdt-database.aspx</id><published>2009-08-10T21:32:39Z</published><updated>2009-08-10T21:32:39Z</updated><content type="html">&lt;p&gt;Sometimes for availability purposes, it is necessary to ensure the MDT database is clustered to allow failover in case of a server failure or maintenance event. There are a few things that you want to keep in mind when you decide to do this:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. &lt;strong&gt;The SQL Browser service is NOT cluster-aware&lt;/strong&gt;. This means if you put the database on a named instance of SQL, when clients request a connection to the SQL Cluster IP, the node IP will respond. This makes the Windows Firewall in Vista, Win7 and even Windows PE regard the traffic as unsolicited and hence blocks it. You can add an exception to all of your Full OS clients, however WinPE does not allow you to customize the firewall and you would have to shut the entire firewall off – this is not recommended.&amp;#160; The best way to resolve this is to ensure that the MDT Database is on the &lt;strong&gt;DEFAULT INSTANCE&lt;/strong&gt; and does not need to use the SQL Browser service. &lt;/p&gt;    &lt;p&gt;2. &lt;strong&gt;MDT Authentication share. &lt;/strong&gt;In order to check windows authentication to the SQL Server, MDT attempts to connect to a Windows Share on the box. In a cluster, you can set this share up as a cluster resource. Ensure that the cluster resource fails over with the MDT database, i.e. is part of the same group. Also make sure that the network access account has access to the share and DB Reader access to the database. If you are not using windows authentication, ensure that you include DBID and DBPW fields in your queries.&lt;/p&gt;    &lt;p&gt;3. &lt;strong&gt;Use the Cluster name in CustomSettings.ini. &lt;/strong&gt;In the CustomSettings.ini file, ensure that the name you use for the SQLServer property in each query is the cluster name – do not specify an Instance Name.&lt;/p&gt;    &lt;p&gt;4. &lt;strong&gt;Named Pipes&lt;/strong&gt; – Ensure that you have named pipes set up on your SQL Server.&lt;/p&gt;    &lt;p&gt;Note that this post covers clustering the MDT database only. You can follow LTI – Following Daniel’s excellent advice on clustering the resource of the Distribution Share &lt;a title="http://blogs.technet.com/deploymentguys/archive/2008/03/31/up-ping-the-uptime-of-your-lite-touch-server.aspx" href="http://blogs.technet.com/deploymentguys/archive/2008/03/31/up-ping-the-uptime-of-your-lite-touch-server.aspx"&gt;http://blogs.technet.com/deploymentguys/archive/2008/03/31/up-ping-the-uptime-of-your-lite-touch-server.aspx&lt;/a&gt; you can ensure that this resource is also on the same group as the MDT Database.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Happy clustering :).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Disclaimer: The information on this site is provided &amp;quot;AS IS&amp;quot; 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"&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;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;img src="http://blogs.technet.com/aggbug.aspx?PostID=3272154" width="1" height="1"&gt;</content><author><name>DeploymentGuys</name><uri>http://blogs.technet.com/members/DeploymentGuys.aspx</uri></author></entry><entry><title>Windows XP to Windows 7 Migration Guide</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/deploymentguys/archive/2009/08/04/windows-xp-to-windows-7-migration-guide.aspx" /><id>http://blogs.technet.com/deploymentguys/archive/2009/08/04/windows-xp-to-windows-7-migration-guide.aspx</id><published>2009-08-04T09:52:25Z</published><updated>2009-08-04T09:52:25Z</updated><content type="html">&lt;p&gt;Although this post is not &lt;em&gt;strictly&lt;/em&gt; a deployment post, I felt it worthy because it offers some assistance for planning your Windows 7 deployments!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A great guide has been posted on TechNet recently that should really help with the Windows 7 deployment discussions that a lot of you are hopefully having :-).&amp;#160; The &lt;strong&gt;Windows XP to Windows 7 Migration&lt;/strong&gt; section is a complete guide on pretty much everything you’ll need to know in order to start preparing and planning your migration to Windows 7 from Windows XP.&amp;#160; It starts by gathering information about your hardware/software and then helps with the business decisions you’ll need to make based on your inventory and requirements; it also offers tips/tricks/assistance to help things go smoothly. &lt;/p&gt;  &lt;p&gt;Find it here: &lt;a title="http://technet.microsoft.com/en-us/windows/ee150430.aspx" href="http://technet.microsoft.com/en-us/windows/ee150430.aspx"&gt;http://technet.microsoft.com/en-us/windows/ee150430.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The only vital thing that seems to be missing from it is a link to this blog… &lt;/p&gt;  &lt;p&gt;&amp;#160;&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 &amp;quot;AS IS&amp;quot; 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=3270465" width="1" height="1"&gt;</content><author><name>doxley</name><uri>http://blogs.technet.com/members/doxley.aspx</uri></author></entry></feed>