<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Deployment Guys : Deployment</title><link>http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx</link><description>Tags: Deployment</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Deploying Windows 7 VL with MAK (Multiple Access Keys) using MDT 2010</title><link>http://blogs.technet.com/deploymentguys/archive/2009/03/30/deploying-windows-7-vl-with-mak-multiple-access-keys-using-mdt-2010.aspx</link><pubDate>Mon, 30 Mar 2009 11:00:26 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3219580</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3219580.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3219580</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3219580</wfw:comment><description>&lt;p&gt;My esteemed colleague - Doug Klokow who is a Senior Consultant in the worldwide deployment practice, working with Windows 7 TAP (Technical Adoption Program) customers in the US has put together a most useful set of instructions regarding Windows 7 deployment using MDT 2010 and MAK keys. This is of benefit when deploying to environments where access to KMS may be tricky during the activation timescales – I recently came across this in a university where professors and research staff go off on research assignments for up to a year at a time…When deploying Windows 7 Enterprise Volume License (VL) edition using MDT 2010, it is possible to include a MAK activation key, however, the standard methods of including the key in the unattend.xml file requires modification. Additionally, it is possible to deploy MAK keys using a custom script as part of a Task Sequence. &lt;/p&gt;  &lt;h5&gt;Situation&lt;/h5&gt;  &lt;p&gt;While deploying Windows 7 Enterprise VL with MDT 2010, the typical behaviour would be to include the activation key in the customisation wizard used to create a Task Sequence for the deployment of the Windows 7 operating system. By design, the Task Sequence wizard is designed to support retail activation keys, not volume license keys. The difference is subtle, but important to the context of this scenario.&lt;/p&gt;  &lt;p&gt;As you complete the New Task Sequence Wizard, you are prompted the Product key.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image002_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image002_thumb.jpg" width="354" height="291" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When you enter a product key into the field shown above, the MDT 2010 wizard adds the code into two specific locations of the unattend.xml file for this task sequence.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image004_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image004_thumb.jpg" width="356" height="309" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image006_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image006_thumb.jpg" width="328" height="309" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The first location for the ProductKey is the &lt;b&gt;WindowsPE&lt;/b&gt; phase, specifically, the &lt;b&gt;x86_Microsoft-Windows-Setup_neutral\UserData\ProductKey &lt;/b&gt;setting.&lt;/p&gt;  &lt;p&gt;The second location is in the &lt;b&gt;Specialize &lt;/b&gt;phase, specifically &lt;b&gt;the x86_Microsoft-Windows-Shell-Setup_neutral\ProductKey&lt;/b&gt; setting.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;     &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;h5&gt;Issue&lt;/h5&gt;  &lt;p&gt;The Unattended Windows Setup reference explains why there are two entries for the ProductKey setting, but if the Product Key for Windows 7 Enterprise is placed in both locations (as is the default) when entering the Product Key using the task sequence creation wizard, you will receive the following error when attempting to build or deploy a client machine with that task sequence.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image009_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image009" border="0" alt="clip_image009" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image009_thumb.jpg" width="393" height="164" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;     &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;h5&gt;Resolution&lt;/h5&gt;  &lt;p&gt;There are a number of options available to address this particular situation. Each provides a resolution, but using different methods.&lt;/p&gt;  &lt;h6&gt;OPTION 1&lt;/h6&gt;  &lt;p&gt;Simply delete the ProductKey entry in the &lt;b&gt;WindowsPE&lt;/b&gt; phase, specifically, the &lt;b&gt;x86_Microsoft-Windows-Setup_neutral\UserData\ProductKey &lt;/b&gt;setting. The unattended install should work as expected deploying your Windows 7 machine using the configurations your define. Once the Windows 7 installation is complete, it will be necessary to either manually kick off the activation process from the Computer Properties screen of the machine, or using the Volume Activation Management Tool (VAMT) to complete the activation remotely.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: At the time this blog was authored, an updated VAMT tool is not presently available with support for Windows 7. &lt;/p&gt;  &lt;h6&gt;OPTION 2&lt;/h6&gt;  &lt;p&gt;Use the &lt;b&gt;&lt;i&gt;slmgr.vbs&lt;/i&gt;&lt;/b&gt; script to perform the activation as a task in the task sequence in lieu of the ProductKey entries in the unattend.xml file. Check the two locations in the &lt;b&gt;unattend.xml&lt;/b&gt; file to validate that both entries for ProductKey are blank.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;STEP 1:&lt;/b&gt; Add the first entry into the Custom Tasks section of the State Restore phase as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image011_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image011" border="0" alt="clip_image011" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image011_thumb.jpg" width="360" height="320" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="96"&gt;           &lt;p&gt;Task Name:&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="542"&gt;           &lt;p&gt;Activate Client using VL MAK&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="96"&gt;           &lt;p&gt;Command Line:&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="542"&gt;           &lt;p&gt;cscript.exe c:\windows\system32\slmgr.vbs /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="96"&gt;           &lt;p&gt;Start in:&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="542"&gt;           &lt;p&gt;c:\windows\system32&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;NOTE: Replace the X's with your VL MAK key for Windows 7&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;STEP 2:&lt;/b&gt; Add the slmgr.vbs /ato script to automatically activate the client during deployment as shown below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image013_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image013" border="0" alt="clip_image013" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image013_thumb.jpg" width="365" height="324" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="106"&gt;           &lt;p&gt;Task Name:&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="532"&gt;           &lt;p&gt;Activate the machine using the VL MAK&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="106"&gt;           &lt;p&gt;Command Line:&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="532"&gt;           &lt;p&gt;cscript.exe c:\windows\system32\slmgr.vbs /ato&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="106"&gt;           &lt;p&gt;Start in:&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="532"&gt;           &lt;p&gt;c:\windows\system32&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;NOTE: This task will only work if the machine is connected to the internet during the State Restore phase. If this task fails because the network connectivity is not fully initialized, it is possible to manually activate the client through the Computer Properties window.&lt;/p&gt;  &lt;p&gt;Now when the client machine is deployed, the task sequence will provide the MAK key during the State Restore phase, and attempt to automatically activate the client machine.&lt;/p&gt;  &lt;h6&gt;OPTION 3&lt;/h6&gt;  &lt;p&gt;Use the OverRideProductKey entry in the CustomSettings.ini to specify the MAK key to be injected. This will add the MAK product key only into the &lt;b&gt;x86_Microsoft-Windows-Shell-Setup_neutral\ProductKey &lt;/b&gt;location in the Unattend.xml.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;From the MDT Toolkit Reference document:&lt;/i&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a name="_Toc204677072"&gt;&lt;/a&gt;&lt;a name="_Toc182020152"&gt;&lt;/a&gt;&lt;a name="_Toc182109001"&gt;OverrideProductKey&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;The Multiple Activation Key (MAK) string to be applied after the target operating is deployed to the target computer. The value specified in this property is used by the ZTILicensing.wsf script during the State Restore Phase to apply the MAK to the target operating system. The script also configures the volume licensing image to use MAK activation instead of Key Management Service (KMS). The operating system needs to be activated with Microsoft after the MAK is applied. This is used when the target computer is unable to access a server that is running KMS.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="110"&gt;           &lt;p&gt;Value&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="518"&gt;           &lt;p&gt;Description&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="110"&gt;           &lt;p&gt;&lt;i&gt;MAK&lt;/i&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="518"&gt;           &lt;p&gt;The MAK string to be provided to the target operating system.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0" width="632"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="630"&gt;           &lt;p&gt;Example&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="630"&gt;           &lt;p&gt;[Settings]&lt;/p&gt;            &lt;p&gt;Priority=Default&lt;/p&gt;            &lt;p&gt;[Default]&lt;/p&gt;            &lt;p&gt;ProductKey=AAAAA-BBBBB-CCCCC-DDDDD-EEEEE-FFFFF&lt;/p&gt;            &lt;p&gt;&lt;b&gt;OverrideProductKey=AAAAA-BBBBB-CCCCC-DDDDD-EEEEE-FFFFF&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;h5&gt;Option 4&lt;/h5&gt;  &lt;p&gt;During deployment, it is possible to specify the Product Key while running the deployment of the workstation. The Deployment Wizard includes an option to prompt for the Product Key using the &amp;quot;SkipProductKey&amp;quot; entry in the CustomSettings.ini file for the Deployment Point. By specifying an entry of &amp;quot;SkipProductKey=No&amp;quot; the user will be prompted to enter a key while running the deployment of the machine, and if they enter their MAK key there, they deployment will complete successfully.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;From the MDT Toolkit Reference document:&lt;/i&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a name="_Toc204677104"&gt;&lt;/a&gt;&lt;a name="_Toc182109031"&gt;SkipProductKey&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Indicates whether the Specify the product key needed to install this operating system wizard page is skipped.&lt;/p&gt;  &lt;p&gt;For other properties that must be configured when this property is set to YES, see the section “Providing Properties for Skipped Windows Deployment Wizard Pages” later in this reference.&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="97"&gt;           &lt;p&gt;Value&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="711"&gt;           &lt;p&gt;Description&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="97"&gt;           &lt;p&gt;YES&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="711"&gt;           &lt;p&gt;Wizard page is not displayed, and the information on that page is not collected.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="97"&gt;           &lt;p&gt;NO&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="711"&gt;           &lt;p&gt;Wizard page is displayed, and the information on that page is collected. This is the default value.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0" width="813"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="811"&gt;&lt;b&gt;             &lt;br /&gt;&lt;/b&gt;            &lt;p&gt;Example&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="811"&gt;           &lt;p&gt;[Settings]&lt;/p&gt;            &lt;p&gt;Priority=Default&lt;/p&gt;            &lt;p&gt;[Default]&lt;/p&gt;            &lt;p&gt;SkipWizard=NO&lt;/p&gt;            &lt;p&gt;SkipCapture=NO&lt;/p&gt;            &lt;p&gt;SkipAdminPassword=YES&lt;/p&gt;            &lt;p&gt;SkipApplications=NO&lt;/p&gt;            &lt;p&gt;SkipAppsOnUpgrade=NO&lt;/p&gt;            &lt;p&gt;SkipComputerBackup=NO&lt;/p&gt;            &lt;p&gt;SkipDomainMembership=NO&lt;/p&gt;            &lt;p&gt;SkipDeploymentType=NO&lt;/p&gt;            &lt;p&gt;SkipUserData=NO&lt;/p&gt;            &lt;p&gt;SkipPackageDisplay=NO&lt;/p&gt;            &lt;p&gt;SkipLocaleSelection=NO&lt;/p&gt;            &lt;p&gt;&lt;b&gt;SkipProductKey=YES&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Caution This property value must be specified in upper case so that it can be properly read by the deployment scripts.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you are working with MDT 2010 Beta 1 then the issue and resolutions referred to above are valid – however our other most esteemed colleague and MDT creator Michael Niehaus has pointed out that the issue has been fixed for MDT 2010 Beta 2.&amp;#160; Now the screen will have another option to match the options that are available in the client-side Deployment Wizard:   &lt;br /&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image002%5B1%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002[1]" border="0" alt="clip_image002[1]" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWindows7VLwithMAKMultipleAccess_6F2C/clip_image002%5B1%5D_thumb.jpg" width="519" height="429" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h5&gt;Resources&lt;/h5&gt;  &lt;p&gt;For more information on the using the SLMGR.VBS script for activation tasks, see the &lt;a href="http://technet.microsoft.com/en-us/library/cc303280.aspx"&gt;Volume Activation 2.0 Deployment Guide&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;For more information on the ProductKey setting, see the &lt;a href="http://technet.microsoft.com/en-us/library/cc721925.aspx"&gt;Unattended Windows Setup Reference&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;This post was contributed by &lt;strong&gt;Richard Smith &lt;/strong&gt;a senior consultant with Microsoft Services UK on behalf of &lt;strong&gt;Doug Klokow&lt;/strong&gt; a senior consultant with Microsoft Services US&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3219580" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Boot from VHD and WDS</title><link>http://blogs.technet.com/deploymentguys/archive/2009/03/06/boot-from-vhd-and-wds.aspx</link><pubDate>Fri, 06 Mar 2009 18:44:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3210059</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3210059.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3210059</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3210059</wfw:comment><description>&lt;p&gt;Following on from Aly’s excellent article about configuring MDT to support Boot from VHD I thought I would add some words about WDS and boot from VHD.&lt;/p&gt;  &lt;p&gt;Windows Server 2008 R2 contains an enhanced version of the WDS server. I will talk about some of the other enhancements in a later post – today I will touch on the VHD enhancements. WDS now supports the ability to deploy a VHD file to target computers and configure them to boot from it.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Which VHD to use?&lt;/b&gt; You cannot just use any VHD – there are some restrictions. The VHD has to contain either Windows Server 2008 R2 or Windows 7 Enterprise or Ultimate. Also you must use either use Hyper-Visor or the wim2vhd script running on Windows 7 or Windows Server 2008 R2, available from MSDN, to create the VHD. Once you have created the VHD place it somewhere you can access it from the WDS server.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Importing the VHD to WDS&lt;/b&gt;. Unfortunately it is not possible to use the WDS GUI to import a VHD file to the WDS server – we have to get our hands dirty using the command line – yippee! First though use the WDS management console to create a group that will hold the VHD images – for example create a group called VHD. Now use the command line below to import your image; this assumes the group is called VHD. (This should all be on one line. It may be wrapped here for readability. )&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;WDSUtil.exe /Verbose /Progress /Add-Image /ImageFile:&amp;lt;path to image file&amp;gt;&amp;lt;image file name&amp;gt; /ImageType:Install /ImageGroup:vhd&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;You have to supply the full path and the name of the VHD file. Don’t forget if there are spaces in your directory structure or file name to enclose this string in quotes. The image will appear in the GUI with the same name as the VHD file.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Deploying the VHD.&lt;/b&gt; Ok so now it starts to get a bit tricky. If you boot a client and connect to the WDS server you will see the VHD image listed in the available images. However deploying via this method is not supported. The only supported method is to use an unattend.xml file. A sample file is given at the end of this article; the key code section is posted below.&lt;/p&gt;  &lt;p&gt;&amp;lt;ImageSelection&amp;gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;InstallImage&amp;gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;ImageName&amp;gt;Win7-Beta&amp;lt;/ImageName&amp;gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;ImageGroup&amp;gt;VHD&amp;lt;/ImageGroup&amp;gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;Filename&amp;gt;w7x32ulti.vhd&amp;lt;/Filename&amp;gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;/InstallImage&amp;gt;&lt;/p&gt;  &lt;p&gt;Here you can see that we specify the name of the image to be deployed, the group the image is in and the actual file name of the VHD itself. &lt;/p&gt;  &lt;p&gt;The rest of the unattend.xml defines things like credentials to connect to the WDS server, the disk to place the VHD on and if we are going to deploy to an existing disk/partition or wipe and create a new one. So lets just dwell on that for a moment. This means that we can PXE boot our working machines, have a new Windows 7 VHD file applied to it and still preserve the existing OS. Sweet! The example unattend below will do just this – it leaves the current partition alone.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Using the Unattend.xml.&lt;/b&gt; So how do we specify that a client is going to use the unattend.xml? There are a couple of ways of doing this. However before I outline this process I need to touch on a gotcha. In the full unattend.xml you will see that there is an entry for the architecture of the WinPE environment that this unattend will run in. So if we have both 32 bit and 64 bit boot environments we need an unattend.xml for each. Don’t forget though that a 32 bit boot Win PE can deploy a VHD with a 64 bit OS in it. Just make sure that the target client can support that architecture. If all boot environments are 32 bit then we only need one unattend file – unless we have different architecture VHDs of course.&lt;/p&gt;  &lt;p&gt;So lets get back to the unattend file. There are two ways;&lt;/p&gt;  &lt;p&gt;1) Associate the unattend with the boot WinPE image. This is the simplest configuration – the down side is that every client that boots with that architecture and using that boot image will get the VHD file.    &lt;br&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/BootfromVHDandWDS_DD52/clip_image0024.jpg" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/BootfromVHDandWDS_DD52/clip_image0024.jpg"&gt;&lt;img src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/BootfromVHDandWDS_DD52/clip_image0024_thumb.jpg" style="border: 0px none ; display: inline;" title="clip_image002[4]" alt="clip_image002[4]" mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/BootfromVHDandWDS_DD52/clip_image0024_thumb.jpg" border="0" width="266" height="311"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2) Associate the unattend with individual clients via AD. This is more complex and if there are lots of clients or the clients frequently change deployment methods it takes a lot of management. However this solution gives you the most flexibility.&lt;/p&gt;  &lt;p&gt;Use the Windows System Image Manger in the WAIK to create your unattend.xml file, or use the sample one below. The sample one will drop the VHD into partition 1 of your disk. If partition one is a 200Mb Bitlocker partition its not going to fit! Change the partition number to one with enough size.&lt;/p&gt;  &lt;p&gt;Create a directory under the reminst dir on your WDS server and copy the unattend file to this directory. Give the unattend a suitable name. In the screen shot above you can see I have created an unattend file and placed it in the reminst\unattends directory on the WDS server.&lt;/p&gt;  &lt;p&gt;Now I am ready to boot a client and deploy my VHD to it.&lt;/p&gt;  &lt;p&gt;When the client boots it should automatically connect to the WDS server, select the VHD you chose and deploy it to the target system. The file gets dropped into a standard directory structure c:\Windows Images\XXX. XXX is an index number that starts a 000. Each new image you deploy increases the index by 1. When the image has been deployed you will find the BCD has been updated to include a new entry. For Windows 7 machines this is “Windows 7”. It is not possible to change this via WDS or the unattend.xml. If you do need to change it you will have to write a post deployment task to do so. The last image deployed is the default boot OS and is placed at the top of the list – which might make changing the description easier.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;NOTE&lt;/b&gt;: The disk must already be running Windows 7 or Server 2008 R2 and the destination partition must &lt;b&gt;NOT&lt;/b&gt; be Bitlockered. &lt;/p&gt;  &lt;p&gt;I hope you found the post useful. I look forward to your comments.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;This post was contributed by &lt;b&gt;Richard Trusson,&lt;/b&gt; a Senior Consultant with Microsoft Services, UK.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;The wim2vhd script can be found here: &lt;u&gt;&lt;a href="http://code.msdn.microsoft.com/wim2vhd" mce_href="http://code.msdn.microsoft.com/wim2vhd"&gt;http://code.msdn.microsoft.com/wim2vhd&lt;/a&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;The example unattend.xml is below.&lt;/p&gt;  &lt;p&gt;&amp;lt;?xml version="1.0" ?&amp;gt;    &lt;br&gt;&amp;lt;unattend xmlns="urn:schemas-microsoft-com:unattend"&amp;gt;    &lt;br&gt;&amp;lt;settings pass="windowsPE"&amp;gt;    &lt;br&gt;&amp;lt;component name="Microsoft-Windows-Setup" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="x86"&amp;gt;    &lt;br&gt;&amp;lt;WindowsDeploymentServices&amp;gt;    &lt;br&gt;&amp;lt;Login&amp;gt;    &lt;br&gt;&amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;    &lt;br&gt;&amp;lt;Credentials&amp;gt;    &lt;br&gt;&amp;lt;Username&amp;gt;Administrator&amp;lt;/Username&amp;gt;    &lt;br&gt;&amp;lt;Domain&amp;gt;woodgrove&amp;lt;/Domain&amp;gt;    &lt;br&gt;&amp;lt;Password&amp;gt;*********&amp;lt;/Password&amp;gt;    &lt;br&gt;&amp;lt;/Credentials&amp;gt;    &lt;br&gt;&amp;lt;/Login&amp;gt;    &lt;br&gt;&amp;lt;ImageSelection&amp;gt;    &lt;br&gt;&amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;    &lt;br&gt;&amp;lt;InstallImage&amp;gt;    &lt;br&gt;&amp;lt;ImageName&amp;gt;Win7-Beta&amp;lt;/ImageName&amp;gt;    &lt;br&gt;&amp;lt;ImageGroup&amp;gt;VHD&amp;lt;/ImageGroup&amp;gt;    &lt;br&gt;&amp;lt;Filename&amp;gt;w7x32ulti.vhd&amp;lt;/Filename&amp;gt;    &lt;br&gt;&amp;lt;/InstallImage&amp;gt;    &lt;br&gt;&amp;lt;InstallTo&amp;gt;    &lt;br&gt;&amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;    &lt;br&gt;&amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;    &lt;br&gt;&amp;lt;/InstallTo&amp;gt;    &lt;br&gt;&amp;lt;/ImageSelection&amp;gt;    &lt;br&gt;&amp;lt;/WindowsDeploymentServices&amp;gt;    &lt;br&gt;&amp;lt;DiskConfiguration&amp;gt;    &lt;br&gt;&amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;    &lt;br&gt;&amp;lt;Disk&amp;gt;    &lt;br&gt;&amp;lt;DiskID&amp;gt;0&amp;lt;/DiskID&amp;gt;    &lt;br&gt;&amp;lt;WillWipeDisk&amp;gt;False&amp;lt;/WillWipeDisk&amp;gt;    &lt;br&gt;&amp;lt;ModifyPartitions&amp;gt;    &lt;br&gt;&amp;lt;ModifyPartition&amp;gt;    &lt;br&gt;&amp;lt;Order&amp;gt;1&amp;lt;/Order&amp;gt;    &lt;br&gt;&amp;lt;PartitionID&amp;gt;1&amp;lt;/PartitionID&amp;gt;    &lt;br&gt;&amp;lt;Extend&amp;gt;True&amp;lt;/Extend&amp;gt;    &lt;br&gt;&amp;lt;/ModifyPartition&amp;gt;    &lt;br&gt;&amp;lt;/ModifyPartitions&amp;gt;    &lt;br&gt;&amp;lt;/Disk&amp;gt;    &lt;br&gt;&amp;lt;/DiskConfiguration&amp;gt;    &lt;br&gt;&amp;lt;/component&amp;gt;    &lt;br&gt;&amp;lt;component name="Microsoft-Windows-International-Core-WinPE" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" processorArchitecture="x86"&amp;gt;    &lt;br&gt;&amp;lt;SetupUILanguage&amp;gt;    &lt;br&gt;&amp;lt;WillShowUI&amp;gt;OnError&amp;lt;/WillShowUI&amp;gt;    &lt;br&gt;&amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;    &lt;br&gt;&amp;lt;/SetupUILanguage&amp;gt;    &lt;br&gt;&amp;lt;UILanguage&amp;gt;en-US&amp;lt;/UILanguage&amp;gt;    &lt;br&gt;&amp;lt;/component&amp;gt;    &lt;br&gt;&amp;lt;/settings&amp;gt;    &lt;br&gt;&amp;lt;/unattend&amp;gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&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;/b&gt;&lt;a href="http://www.microsoft.com/info/cpyright.mspx" mce_href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;b&gt;Terms of Use&lt;/b&gt;&lt;/a&gt;&lt;b&gt;.&lt;/b&gt; &lt;br&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3210059" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/WDS/default.aspx">WDS</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Server+2008+R2/default.aspx">Server 2008 R2</category></item><item><title>Deploying Win 7 to Boot From VHD with MDT 2010</title><link>http://blogs.technet.com/deploymentguys/archive/2009/03/03/deploying-win-7-to-boot-from-vhd-with-mdt-2010.aspx</link><pubDate>Tue, 03 Mar 2009 23:29:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3208886</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3208886.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3208886</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3208886</wfw:comment><description>&lt;P&gt;One of the more difficult scenarios that customers have found in the past is multi-booting a new OS. The effort needed to re-partition the drive to allow for the new OS is sometimes too great. One new solution that is gaining ground in deployment is Boot From VHD. This allows you to take a VHD file with Windows 7 or Windows Server 2008 R2 and boot your machine to it. This means that you can take advantage of the physical hardware of your machine while not having to repartition your drive for Win 7 and keep your original OS intact. More information on how to Boot From VHD can be found here &lt;A href="http://edge.technet.com/Media/Windows-7-Boot-from-VHD/" mce_href="http://edge.technet.com/Media/Windows-7-Boot-from-VHD/"&gt;http://edge.technet.com/Media/Windows-7-Boot-from-VHD/&lt;/A&gt; .&lt;/P&gt;
&lt;P&gt;MDT 2010&amp;nbsp;Beta 1 can deploy Win 7 Beta&amp;nbsp;out-of-the-box however, it deploys it to the Disk 0 Partition 1 by default. In order to change this behaviour so that MDT 2010 deploys Win 7 to a VHD and leaves your existing OS you can follow the steps below:&lt;/P&gt;
&lt;P&gt;1. Create a Task Sequence to install Win 7 in MDT 2010&lt;/P&gt;
&lt;P&gt;2. Insert the following 3 steps in the &lt;STRONG&gt;Pre-Install \ New Computer only&lt;/STRONG&gt; Phase:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;a) &lt;STRONG&gt;Disable the format and partition disk step &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/disable_2.jpg" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/disable_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=398 alt=disable src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/disable_thumb.jpg" width=450 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/disable_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;b) Insert a Set Task Sequence Variable Step to set the path for the VHD with the variable BootVHDLocation. Ensure that path DOES NOT EXIST already on the machine.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootVHD01_4.jpg" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootVHD01_4.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=401 alt=BootVHD01 src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootVHD01_thumb_1.jpg" width=449 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootVHD01_thumb_1.jpg"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;c) Insert a Set Task Sequence Variable Step to set the size of the VHD (in MB)&amp;nbsp;with the variable BootVHDSize. Ensure that there is enough space on the drive as the VHD may grow to this size.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootVHD02_2.jpg" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootVHD02_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=398 alt=BootVHD02 src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootVHD02_thumb.jpg" width=448 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootVHD02_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;d) Insert a Run Command Line step to run the command line cscript.exe "%SCRIPTROOT%\ZTIDiskPartVHD.wsf"&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootVHD03_2.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=427 alt=BootVHD03 src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootVHD03_thumb.jpg" width=481 border=0&gt;&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;3.&amp;nbsp; Copy the attached script below to your Distribution$\Scripts folder.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;4.&amp;nbsp; Run your task sequence on a machine and watch Win 7 install into a VHD. Once the process is done, your machine will have a boot menu similar to this:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootMenu_2.jpg" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootMenu_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=312 alt=BootMenu src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootMenu_thumb.jpg" width=370 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DeployingWin7toBootFromVHDwithMDT2010_B1D1/BootMenu_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Please note, this script does not deal with BitLocker encrypted drives and Boot From VHD will only work with Windows 7 Beta or Windows Server 2008 R2. As always test this out and feel free to post comments. &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;STRONG&gt;Aly Shivji&lt;/STRONG&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=3208886" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3208886.ashx" length="3312" type="application/x-zip-compressed" /><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>GImageX Beta for Windows 7 Beta</title><link>http://blogs.technet.com/deploymentguys/archive/2009/02/04/gimagex-beta-for-windows-7-beta.aspx</link><pubDate>Wed, 04 Feb 2009 12:47:12 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3196837</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3196837.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3196837</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3196837</wfw:comment><description>&lt;p&gt;The Windows Automated Installation Kit (Windows AIK) is a set of tools and documentation that support the configuration and deployment of Microsoft® Windows® operating systems.. By using Windows AIK, you can automate Windows installations, capture Windows images with ImageX, configure and modify images using Deployment Imaging Servicing and Management (DISM), create Windows PE images, and migrate user profiles and data with the User State Migration Tool (USMT).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.autoitscript.com/gimagex" target="_blank"&gt;GImageX&lt;/a&gt; is a third-party graphical version of the ImageX command-line tool from the Windows AIK. &lt;/p&gt;  &lt;p&gt;With the release of the Windows 7 beta and also the beta of the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4ad85860-d1f4-42a1-a46c-e039e3d0db5d&amp;amp;displaylang=en" target="_blank"&gt;Windows Automated Installation Kit&lt;/a&gt; I’ve updated GImageX to work with these new beta versions. I’ve also tidied up parts of the documentation around installation and tweaked the “mount” functionality to provide better feedback during the operation.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Please note that GImageX is a &lt;strong&gt;third-party&lt;/strong&gt; tool so please remember that you won’t be able to ring up Microsoft PSS to get support with it! However, it uses the official Microsoft published WIMGAPI SDK which is a supported way of working with WIM files.&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="GImageX Capture Tab" border="0" alt="GImageX Capture Tab" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/GImageXBetaforWindows7Beta_83F6/gimagex_5.png" width="529" height="450" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;GImageX Capture Tab &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The GImageX beta can be &lt;a href="http://www.autoitscript.com/gimagex/#DownloadsBeta" target="_blank"&gt;downloaded here&lt;/a&gt; and the new beta version of the Windows AIK which it requires can be &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4ad85860-d1f4-42a1-a46c-e039e3d0db5d&amp;amp;displaylang=en" target="_blank"&gt;downloaded here&lt;/a&gt;. Please provide feedback, problems, questions, suggestions to the email address listed in the help file contained in the download. As both GImageX and the v2.0 Windows AIK are beta versions please only use these in test environments.&lt;/p&gt;  &lt;p&gt;&amp;#160;&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;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;This post was contributed by &lt;strong&gt;Jonathan Bennett &lt;/strong&gt;a Senior Consultant with Microsoft Services, UK.&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3196837" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Utilities/default.aspx">Utilities</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/ImageX/default.aspx">ImageX</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Windows+Automated+Installation+Kit/default.aspx">Windows Automated Installation Kit</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/GImageX/default.aspx">GImageX</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Windows+7/default.aspx">Windows 7</category></item><item><title>Back to basics #2 – 7 Things you shouldn’t do in a LiteTouch Deployment</title><link>http://blogs.technet.com/deploymentguys/archive/2008/10/17/back-to-basics-2-7-things-you-shouldn-t-do-in-a-litetouch-deployment.aspx</link><pubDate>Fri, 17 Oct 2008 11:48:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3137771</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3137771.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3137771</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3137771</wfw:comment><description>&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The below list is a list of the most common mistakes made when creating a LiteTouch task sequence.&amp;nbsp; While not an exhaustive list, it might help to improve your deployment experience when using MDT to create LiteTouch deployments.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1.)&amp;nbsp; Hard-code paths to files/scripts in the task sequence, or inside a script, or referring to the distribution point as Z:\&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;I would say that this is the number one cause of errors that I see.&amp;nbsp; Because MDT always maps the distribution point to Z:, most assume that it is safe to use this to refer to a file during the deployment process.&amp;nbsp; 99% of the time they are right and it will work fine.&amp;nbsp; However, there are some scenarios when this will generate a failure but it might not be immediately obvious as to why it has failed.&amp;nbsp; So, the solution is to not use Z:\ when specifying paths to files.&amp;nbsp; In the example in the below image, the variable %SCRIPTROOT% instead of Z:.&amp;nbsp; MDT will make sure that the value of this variable will always be to the distribution share, regardless of where it is.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics10ThingsnottodoinaLitetouchD_11BAD/image_2.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics10ThingsnottodoinaLitetouchD_11BAD/image_2.png"&gt;&lt;IMG title=image style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=58 alt=image src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics10ThingsnottodoinaLitetouchD_11BAD/image_thumb.png" width=364 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics10ThingsnottodoinaLitetouchD_11BAD/image_thumb.png"&gt;&lt;/A&gt; &lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics10ThingsnottodoinaLitetouchD_11BAD/image_4.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics10ThingsnottodoinaLitetouchD_11BAD/image_4.png"&gt;&lt;IMG title=image style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=59 alt=image src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics10ThingsnottodoinaLitetouchD_11BAD/image_thumb_1.png" width=364 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics10ThingsnottodoinaLitetouchD_11BAD/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;The most common scenario that I have seen this fail in, is when using a Media Deployment Point where the drive Z: does not exist, causing any custom script/processes to fail.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;2.)&amp;nbsp; Use non-descriptive names for each task or script, and not fill in the comments field for each task in the task sequencer.&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;When adding tasks to the task sequencer a lot of people skip the Description box, and also often give the task a rather ambiguous name (plenty of times I have actually seen the task left with the default name i.e. “Run Command Line”).&amp;nbsp; This is not such a problem if it is you that will always administer the server, but when the day comes that someone else needs to look at the task sequence, it will be nigh on impossible for them to work out quickly what each task is doing.&amp;nbsp; So, what could be a simple quick fix will turn into something much longer because they will need to go through the sequencer to work out which is the task that they are looking for.&lt;/P&gt;
&lt;P&gt;You can save a lot of work for everyone, including yourself, by filling in Description field for each task you add to the sequencer.&amp;nbsp; You can also later on use the content of this field to help with your &lt;A href="http://blogs.technet.com/deploymentguys/archive/2008/08/17/documenting-your-task-sequences-automagically.aspx" mce_href="http://blogs.technet.com/deploymentguys/archive/2008/08/17/documenting-your-task-sequences-automagically.aspx"&gt;documentation&lt;/A&gt;.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;3.)&amp;nbsp; Use an account for connecting to the deployment share that has full administrative access over the server.&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Often, during the development stage of any deployment, most people use the administrator account of the domain in the laboratory, or the local administrator account of the MDT server, as the user that connects to the deployment share during any deployment.&amp;nbsp; Although this works fine, from a security perspective it is pretty terrible, especially as you will often have to share the account credentials with anyone that wants to deploy a machine.&amp;nbsp; If you are using an administrative account in the laboratory, make sure that this practice does not get passed into the production environment at a later stage.&lt;/P&gt;
&lt;P&gt;The ideal option is to create an account group (either local to the server or in the domain) that has access to the share, and then add the necessary users to this group.&amp;nbsp; That way they can use their own account credential for deploying a computer without compromising any security on the server.&amp;nbsp; You can also use the auditing options on the server if you want to find out the who, what and when for any computer that was deployed.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;4.)&amp;nbsp; Create a LiteTouch task sequence that deploys a computer without any user intervention.&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Although this might sound like a great idea as it provides an almost ZeroTouch deployment method, it is actually quite a bad thing to implement.&amp;nbsp; Imagine that you launch a deployment on a computer, no user input is required so the task sequence launches.&amp;nbsp; Just as the drives start to format themselves, you realise that you launched the deployment on the &lt;EM&gt;wrong computer&lt;/EM&gt;.&amp;nbsp; Doh!&lt;/P&gt;
&lt;P&gt;I have to confess that this has caught me out before, because of the use of several computers all connected to a keyboard/mouse/monitor switch box.&amp;nbsp; Consequently, I like to leave at least one user-required action at the start of any task sequence and before any ‘damage’ is done.&amp;nbsp; Even if it is just a simple “Welcome to the Windows Vista Deployment project – Press OK to continue” message.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;5.) Don’t specify the scripting engine when launching a script file.&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;As you can see in the image below, MDT will launch a custom VBS script during a deployment cycle, the problem with this example is that the scripting engine has not been specified for launching this script.&amp;nbsp; So, by default, Windows will launch the script with WScript.exe rather than CScript.exe.&amp;nbsp; Most of the time this will be fine and give no problems, however, if you have a script that has the command &lt;EM&gt;WScript.echo “My message”&lt;/EM&gt; in it somewhere then the script will pause, showing a window to the user, and it won’t continue until the user presses the OK button.&lt;/P&gt;
&lt;P&gt;You may want this behaviour, i.e. introducing a user intervention at some point in the deployment, but if you don’t then just specify CScript.exe on the command line before the script file (as shown in the images at the top of this post).&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics10ThingsnottodoinaLitetouchD_11BAD/image_6.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics10ThingsnottodoinaLitetouchD_11BAD/image_6.png"&gt;&lt;IMG title=image style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=58 alt=image src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics10ThingsnottodoinaLitetouchD_11BAD/image_thumb_2.png" width=363 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics10ThingsnottodoinaLitetouchD_11BAD/image_thumb_2.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; 6.)&amp;nbsp; Don’t bother creating detailed documentation of the whole process.&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Although this won’t break anything, and although it is an extremely dull task, documenting everything that you have done during the creation of your deployment is invaluable.&amp;nbsp; It will save you, and anyone else, a lot of time in the future when you need to make changes to anything on the server.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;7.)&amp;nbsp; Create a media deployment point, and then test the super massive 8Gb ISO image with Virtual PC.&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Although Virtual PC now has support for large ISO files, it still sometimes has a few ‘issues’ when the files are &lt;EM&gt;super&lt;/EM&gt; big.&amp;nbsp; The issue never manifests itself with the same error message twice though.&amp;nbsp; Instead, you might start seeing problems booting from the ISO file, and then the next time you might get an inexplicable failure in a script.&amp;nbsp; The solution I have always found to work is to simply use the same ISO file with Virtual Server 2005 SP1, or better still, Hyper-V.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Without a doubt, there are plenty more do’s and don’t with MDT.&amp;nbsp; This is simply a consequence of the fact that MDT is so customisable, a sure sign that it is a powerful tool.&amp;nbsp; Feel free to comment on this post with any of your own suggestions that you want to share with everyone else!&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 Services Spain&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3137771" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Microsoft+Deployment/default.aspx">Microsoft Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/LiteTouch/default.aspx">LiteTouch</category></item><item><title>Back to basics #1 – Locking the computer during deployment</title><link>http://blogs.technet.com/deploymentguys/archive/2008/10/01/back-to-basics-1-locking-the-computer-during-deployment.aspx</link><pubDate>Wed, 01 Oct 2008 10:26:01 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3130590</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3130590.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3130590</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3130590</wfw:comment><description>&lt;p&gt;This is the first post in a series that will cover some of the more simple/basic tricks that you can do with MDT, but that are often overlooked.&amp;#160; I’ll be the first to admit that a couple of them I only learnt recently, even though I have been using BDD/MDT for years.&lt;/p&gt;  &lt;p&gt;During the deployment of a computer, MDT will auto-logon Windows using the local Administrator account in order to run its task sequence; during this time, the computer is left logged on as administrator with the desktop unlocked for all to see.&amp;#160; Consequently, anyone who happens to walk past the computer during its deployment can use it with full administrative access.&lt;/p&gt;  &lt;p&gt;The best way to protect your computer systems from any unwanted access is to simply lock the computer during the Windows phase of the deployment.&amp;#160; To do this, just add a “Run Command Line” action to your task sequence, and place the following command in the command line of this action:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;rundll32 user32.dll,LockWorkStation&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics1_7D7E/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="222" alt="image" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics1_7D7E/image_thumb.png" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can place the action at any point in the task sequence, as long as it is executed from within Windows rather than during any Windows PE stage.&amp;#160; It doesn’t matter if you have any reboot actions in the task sequence because, even though the workstation is locked, it will still reboot; just remember that you’ll need to execute the command again after reboot in order to lock the computer again.&amp;#160; Bear in mind though that you won’t be able to see the summary screen at the end of deployment so you won’t know when it has finished.&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 Services Spain&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3130590" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/BDD+2007/default.aspx">BDD 2007</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Microsoft+Deployment/default.aspx">Microsoft Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category></item><item><title>Task Sequence logic tricks using MDT variables</title><link>http://blogs.technet.com/deploymentguys/archive/2008/07/28/task-sequence-logic-tricks-using-mdt-variables.aspx</link><pubDate>Mon, 28 Jul 2008 22:59:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3094909</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3094909.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3094909</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3094909</wfw:comment><description>&lt;P&gt;In my particular part of the Microsoft organization (the CTS testing lab), we install just about every OS, at every service pack level, on both major platforms. Because of this, I created a master template that is used to create dozens of task sequences where the only thing that changes is the OS. To pull this off, I made heavy use of the variables built into MDT2008 to branch my logic accordingly and create a framework in which future additions can simply get dropped into. See the screen shot to get an idea of what this framework looks like in the Workbench:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/TaskSequencelogictricksusingMDTvariables_B6B5/clip_image002_2.jpg" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/TaskSequencelogictricksusingMDTvariables_B6B5/clip_image002_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=244 alt=clip_image002 src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/TaskSequencelogictricksusingMDTvariables_B6B5/clip_image002_thumb.jpg" width=215 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/TaskSequencelogictricksusingMDTvariables_B6B5/clip_image002_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;For this example,&lt;I&gt; I have removed all of the actual Tasks themselves to only show the folder structure for clarity’s sake.&lt;/I&gt; But you get the idea. With this in place you can simply add tasks as appropriate into the appropriate level. Keep in mind, any folder level is valid and useful. For example, I have some things that I want only all clients to get, and other things for only all servers to get, so I drop them into the Client and Server folder root levels respectively. Also, something like anti-virus software can be dropped straight into a platform folder, such as x86 or x64 so all OS's regardless of flavour or SP level will get the applications. These are just simple examples, but what’s possible's are limitless.&lt;/P&gt;
&lt;P&gt;The philosophy here is the only add logic to your task sequences to the folder level, and not individual task items. This makes keeping track of why things happen (or don’t happen) in your task sequence easier to control, manage, and troubleshoot when you don’t have to examine every individual task item, and can rely on the group level logic of the containing folders. This also means that every time I want to add a new task item to my sequence, I don’t also have to add in the logic to control it, since dropping it in the right folder makes sure it happens in the right OS environments.&lt;/P&gt;
&lt;P&gt;So, for example, the top level of this folder has the following logic applied in the Options tab:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/TaskSequencelogictricksusingMDTvariables_B6B5/clip_image004_2.jpg" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/TaskSequencelogictricksusingMDTvariables_B6B5/clip_image004_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=182 alt=clip_image004 src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/TaskSequencelogictricksusingMDTvariables_B6B5/clip_image004_thumb.jpg" width=244 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/TaskSequencelogictricksusingMDTvariables_B6B5/clip_image004_thumb.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Obviously the x64 folder has similar logic with the x86 value changed to x64. For brevity here are the logic values applied to each folder in the first screen shot:&lt;/P&gt;
&lt;P&gt;X86 – Architecture equals x86&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Client - IsServerOS equals FALSE&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Windows XP – OSVersion equals XP&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vista - OSVersion equals Vista&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Server – IsServerOS equals TRUE&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2003 - OSVersion equals 2003&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&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; RTM - SELECT * FROM Win32_OperatingSystem WHERE CSDVersion = ""&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&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; SP1 - SELECT * FROM Win32_OperatingSystem WHERE CSDVersion = 'Service Pack 1'&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2008 - OSVersion equals 2008&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;X64 - Architecture equals x64&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Client - Etc etc.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Using this framework, we have been able to maintain a single template task sequence that all others are based on regardless of what OS gets thrown at it. There are some other tricks using some other variables as well, but we can cover this in a separate post.&lt;/P&gt;
&lt;P&gt;This post was contributed by&lt;STRONG&gt; Roland Sanchez&lt;/STRONG&gt; a Lab Engineer with Microsoft Commercial Technical Support Labs, United States.&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3094909" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Microsoft+Deployment/default.aspx">Microsoft Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category></item><item><title>Useful Script Number 6 - Pausing the Task Sequence</title><link>http://blogs.technet.com/deploymentguys/archive/2008/07/07/useful-script-number-6-pausing-the-task-sequence.aspx</link><pubDate>Mon, 07 Jul 2008 19:59:18 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3084983</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3084983.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3084983</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3084983</wfw:comment><description>&lt;p&gt;Have you ever wanted to pause the task sequence in MDT 2008 or ConfigMgr 2007 for a few seconds while something catches up...? I had a requirement to do this recently where I ran a &lt;a href="http://blogs.technet.com/deploymentguys/archive/2008/04/18/useful-script-number-3-turning-the-windows-vista-sidebar-on-and-off.aspx"&gt;task to close and cancel the Windows Sidebar&lt;/a&gt; at the start of the State Restore phase of the task sequencer and then turn the Windows Sidebar back on again at the end of the State Restore phase - I was doing this as the Windows Sidebar can sometimes get in the way of some customisation scripts and you can also see peculiar VB messages when 2007 Office System updates are applied. When the Windows Sidebar is turned back on, there is a couple of seconds before the Sidebar actually appears - yet my task for turning on the Sidebar had returned and the task sequence had moved on...it made be think that there may be other situations where a slight delay in returning to the task sequence may be useful - sure you could add sleep commands to the scripts that your running as commands - but that doesn't help with the tasks that are not scripted - so here is an MDT based script that will pause the task sequence for a specified number of seconds (specified on the command line)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;I first have a couple of variables to store the time to pause (strTime) and the script name (strSName - for logging purposes) and the integer argument for the sleep method&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;Dim strTime, strSName, IntTime&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font face="Courier New"&gt;ZTIProcess=1&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;...I then use a call to ZTIUtility.wsf to set the script name to the strSName variable - this is then used to insert the script name at the start of each line in the log.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font face="Courier New"&gt;strSName=oUtility.ScriptName&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;...then it's another call to ZTIUtility.wsf to use the arguments class - this makes passing input to the script via the command line easy - in this case I am setting a command line input called &amp;quot;Time&amp;quot; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;strTime = oUtility.Arguments(&amp;quot;Time&amp;quot;) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font face="Courier New"&gt;oLogging.CreateEntry strSName &amp;amp; &amp;quot;: Starting Actions ********************************************* &amp;quot;,LogTypeInfo&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;...then I check that Time has been specified as a command line input (exit if not) or set the IntTime to number of seconds from the command line x 1000 to get milliseconds&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;If strTime=&amp;quot;&amp;quot; Then      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; oLogging.CreateEntry strSName &amp;amp; &amp;quot;: No pause time was specified on the command line.&amp;quot;,LogTypeError       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ZTIProcess=90       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Exit Function       &lt;br /&gt;Else       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; oLogging.CreateEntry strSName &amp;amp; &amp;quot;: Pause time has been set to &amp;quot; &amp;amp; strTime &amp;amp; &amp;quot; seconds&amp;quot;,LogTypeInfo&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; IntTime = strTime * 1000&amp;#160; &lt;br /&gt;End if&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;...I then take the intTime (in milliseconds) and add it to the sleep method to pause the script&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;oLogging.CreateEntry strSName &amp;amp; &amp;quot;: Task Sequence will pause for &amp;quot; &amp;amp; int(IntTime/1000) &amp;amp; &amp;quot; seconds&amp;quot;,LogTypeInfo &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;wscript.sleep intTime &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;oLogging.CreateEntry strSName &amp;amp; &amp;quot;: Task Sequence has been paused for &amp;quot; &amp;amp; int(IntTime/1000) &amp;amp; &amp;quot; seconds - returning control to the Task Sequence now&amp;quot;,LogTypeInfo &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font face="Courier New"&gt;oLogging.CreateEntry strSName &amp;amp; &amp;quot;: Completed Actions ********************************************* &amp;quot;,LogTypeInfo        &lt;br /&gt;ZTIProcess = 0         &lt;br /&gt;End Function&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The script is called &lt;strong&gt;CFG-TSPause.wsf&lt;/strong&gt; so the command line to run it would be &lt;strong&gt;CFG-TSPause.wsf /Time:xx&lt;/strong&gt; (where xx = the number of seconds that you want to pause the task sequence for) Drop the script into your &lt;strong&gt;&amp;lt;Deployment Share&amp;gt;\Scripts&lt;/strong&gt; directory. You can then add the script anywhere in your task sequence by adding a &lt;strong&gt;Run Command Line task&lt;/strong&gt; and specifying the script and the command line input for the number of seconds you want to pause.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsefulScriptNumber6PausingtheTaskSequenc_FCEF/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="519" alt="image" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsefulScriptNumber6PausingtheTaskSequenc_FCEF/image_thumb.png" width="572" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;As usual, the full script is up on the Deployment Guys SkyDrive:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;iframe style="border-right: #dde5e9 1px solid; padding-right: 0px; border-top: #dde5e9 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 3px; border-left: #dde5e9 1px solid; width: 240px; padding-top: 0px; border-bottom: #dde5e9 1px solid; height: 66px; background-color: #ffffff" marginwidth="0" marginheight="0" src="http://cid-7be6feba9e7c999c.skydrive.live.com/embedrowdetail.aspx/DeploymentGuys/CFG-TSPause.zip" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;This post was contributed by &lt;b&gt;Richard Smith&lt;/b&gt; a Senior Consultant with Microsoft Services, UK.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3084983" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/BDD+2007/default.aspx">BDD 2007</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Microsoft+Deployment/default.aspx">Microsoft Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/SCCM+2007/default.aspx">SCCM 2007</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/ConfigMgr/default.aspx">ConfigMgr</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category></item><item><title>Useful Script Number 5 - Adjusting the Default User Registry Hive</title><link>http://blogs.technet.com/deploymentguys/archive/2008/06/06/useful-script-number-5-adjusting-the-default-user-registry-hive.aspx</link><pubDate>Fri, 06 Jun 2008 17:03:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3067042</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3067042.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3067042</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3067042</wfw:comment><description>&lt;p&gt;&lt;font size="1"&gt;&lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;b&gt;Michael Murgolo &lt;/b&gt;did a great post on the different ways to adjust default settings when building an image (&lt;/font&gt;&lt;a href="http://blogs.technet.com/deploymentguys/archive/2008/02/18/configuring-default-user-and-computer-settings-for-windows-image-deployment.aspx"&gt;&lt;font size="2"&gt;Configuring default settings for Windows image deployment&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;) and one of the options presented was to targeted changes to the Default User Registry hive and profile folders. I had to do this recently and put together a script that can be launched from the MDT task sequence because I was finding my customised Administrator profile wasn't being copied over correctly to the Default User profile as part of SysPrep. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;As Michael mentioned in his post - there are three main processes...you first need to load the default user hive (NTUser.dat) - make the changes you require - then unload the user hive. I have reproduced the core part of my script that does this process for discussion.&lt;/font&gt;&lt;/p&gt; &lt;strong&gt;&lt;/strong&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;The first section sets the two variables that will be used - one to store the temp key&lt;/strong&gt; &lt;font face="cour"&gt;(&lt;/font&gt;&lt;font face="Courier"&gt;sTempHive&lt;/font&gt;&lt;font face="cour"&gt;)&lt;/font&gt;&lt;strong&gt; that we will load to, and the second to hold the profile file and location that we want to load&lt;/strong&gt; (&lt;font face="Courier"&gt;sDefaultUserHive&lt;/font&gt;)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;For Windows Vista the entry&lt;/strong&gt; &lt;font face="Courier"&gt;&amp;quot;&amp;quot;&amp;quot;%USERPROFILE%\..\Default\NTUSER.DAT&amp;quot;&amp;quot;&amp;quot;&lt;/font&gt;&lt;strong&gt; refers to C:\Users\Default\ntuser.dat&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" size="1"&gt;sTempHive = &amp;quot;&amp;quot;&amp;quot;HKEY_USERS\Test&amp;quot;&amp;quot;&amp;quot;      &lt;br /&gt;sDefaultUserHive = &amp;quot;&amp;quot;&amp;quot;%USERPROFILE%\..\Default\NTUSER.DAT&amp;quot;&amp;quot;&amp;quot;       &lt;br /&gt;sSName = oUtility.ScriptName       &lt;br /&gt;set oshell = WScript.CreateObject (&amp;quot;Wscript.Shell&amp;quot;) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" size="1"&gt;iZTIRetValue=&amp;quot;1&amp;quot; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;We then need to start logging - it's the law :-)&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" size="1"&gt;oLogging.CreateEntry sSName &amp;amp; &amp;quot;: Actions Start - Updating Default Profile&amp;quot;,LogTypeInfo      &lt;br /&gt;oLogging.CreateEntry sSName &amp;amp; &amp;quot;: Loading the Default User hive&amp;quot;,LogTypeInfo &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;The next section runs reg load to load the NTUser.dat file from the default user directory to the temp key (HKEY_USERS\Test) set in the first section - if there is an error the script fails and quits with a specific failure number or we log success.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" size="1"&gt;oShell.run &amp;quot;reg load &amp;quot; &amp;amp; sTempHive &amp;amp; &amp;quot; &amp;quot; &amp;amp; sDefaultUserHive      &lt;br /&gt;If Err&amp;lt;&amp;gt;0 Then       &lt;br /&gt;&amp;#160; oLogging.CreateEntry sSName &amp;amp; &amp;quot;: Failed to load the registry hive &amp;quot; &amp;amp; sDefaultUserHive,LogTypeError       &lt;br /&gt;&amp;#160; ZTIProcess=70       &lt;br /&gt;&amp;#160; Exit Function       &lt;br /&gt;End If       &lt;br /&gt;oLogging.CreateEntry sSName &amp;amp; &amp;quot;: Default User Hive Loaded to &amp;quot; &amp;amp; sTempHive,LogTypeInfo       &lt;br /&gt;oLogging.CreateEntry sSName &amp;amp; &amp;quot;: Starting Registry Changes... &amp;quot;,LogTypeInfo &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="1"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;Now that the hive is loaded we can start changing stuff...as an example - I have set the code to change the wallpaper and the screen saver for the default user - again with error checking and specific failure codes&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;This codes sets the wallpaper (the file needs to be where you set the key to :-)&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" size="1"&gt;oLogging.CreateEntry sSName &amp;amp; &amp;quot;: Setting Default User Wallpaper&amp;quot;,LogTypeInfo      &lt;br /&gt;RegPath = &amp;quot;HKEY_USERS\Test\Control Panel\Desktop\&amp;quot;       &lt;br /&gt;oshell.RegWrite Regpath &amp;amp; &amp;quot;WallPaper&amp;quot;, &amp;quot;C:\Windows\Web\Wallpaper\CorporateWallpaper.bmp&amp;quot;, &amp;quot;REG_SZ&amp;quot;       &lt;br /&gt;If Err&amp;lt;&amp;gt;0 Then       &lt;br /&gt;&amp;#160; oLogging.CreateEntry sSName &amp;amp; &amp;quot;: Failed to update wallpaper file setting&amp;quot;,LogTypeError       &lt;br /&gt;&amp;#160; ZTIProcess=60       &lt;br /&gt;&amp;#160; Exit Function       &lt;br /&gt;End If &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;...and this codes sets the screen saver (again - the file needs to be where you set the key to :-)&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" size="1"&gt;oLogging.CreateEntry sSName &amp;amp; &amp;quot;: Setting Default User Screensaver&amp;quot;,LogTypeInfo      &lt;br /&gt;RegPath = &amp;quot;HKEY_USERS\Test\Control Panel\Desktop\&amp;quot;       &lt;br /&gt;oshell.RegWrite Regpath &amp;amp; &amp;quot;SCRNSAVE.EXE&amp;quot;, &amp;quot;C:\Windows\CorporateScreensaver.scr&amp;quot;, &amp;quot;REG_SZ&amp;quot;       &lt;br /&gt;If Err&amp;lt;&amp;gt;0 Then       &lt;br /&gt;&amp;#160; oLogging.CreateEntry sSName &amp;amp; &amp;quot;: Failed to update Screensaver settings&amp;quot;,LogTypeError       &lt;br /&gt;&amp;#160; ZTIProcess=50       &lt;br /&gt;&amp;#160; Exit Function       &lt;br /&gt;End If &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="2"&gt;Once all of the changes have been made - its time to unload the hive from its temp key - again with logging and error checking&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" size="1"&gt;oLogging.CreateEntry sSName &amp;amp; &amp;quot;: Unloading the Default User hive&amp;quot;,LogTypeInfo &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" size="1"&gt;oShell.run &amp;quot;reg unload &amp;quot; &amp;amp; sTempHive      &lt;br /&gt;If Err&amp;lt;&amp;gt;0 Then       &lt;br /&gt;&amp;#160; oLogging.CreateEntry sSName &amp;amp; &amp;quot;: Failed to unload the default user registry hive&amp;quot;,LogTypeError       &lt;br /&gt;&amp;#160; ZTIProcess=40       &lt;br /&gt;&amp;#160; Exit Function       &lt;br /&gt;End If       &lt;br /&gt;oLogging.CreateEntry sSName &amp;amp; &amp;quot;: Actions completed&amp;quot;,LogTypeInfo&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier" size="1"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;The completed script can be added to your MDT task sequence towards the end - so that it runs before the machine SysPreps and reboots for capture.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;The complete script - in MDT format (to include logging and access to classes from ZTIUtility.wsf) with a number of other changes included is available on the Deployment Guys SkyDrive:&lt;/font&gt;&lt;/p&gt; &lt;iframe style="border-right: #dde5e9 1px solid; padding-right: 0px; border-top: #dde5e9 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 3px; border-left: #dde5e9 1px solid; width: 240px; padding-top: 0px; border-bottom: #dde5e9 1px solid; height: 66px; background-color: #ffffff" marginwidth="0" marginheight="0" src="http://cid-7be6feba9e7c999c.skydrive.live.com/embedrowdetail.aspx/DeploymentGuys/zCFG-DefaultUser.zip" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;This post was contributed by &lt;b&gt;Richard Smith&lt;/b&gt; a Senior Consultant with Microsoft Services, UK.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3067042" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Utilities/default.aspx">Utilities</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Support/default.aspx">Support</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Default+User/default.aspx">Default User</category></item><item><title>Getting caught out by your logon script</title><link>http://blogs.technet.com/deploymentguys/archive/2008/05/26/getting-caught-out-by-your-logon-script.aspx</link><pubDate>Mon, 26 May 2008 11:36:05 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3061082</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3061082.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3061082</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3061082</wfw:comment><description>&lt;p&gt;Whenever I go onsite with a customer to start a Windows Vista deployment project I always like to discuss with them the issues that we will be having during the project.&amp;#160; I do this so that, together, we can try and avoid having the issues in the first place.&amp;#160; Most of the issues the customer is already aware of as they have been testing Windows Vista in a laboratory environment for a while; however, there is one issue that nearly always catches them unaware and gives them major headaches, their logon script.&lt;/p&gt;  &lt;p&gt;This is often one of the biggest problems that a company will have when trying to deploy Windows Vista.&amp;#160; The reason that most people do not notice that the logon script does not work on Windows Vista is because they have done their testing &lt;em&gt;only&lt;/em&gt; in a laboratory environment where the logon script does not exist.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Let's look at a hypothetical example.&amp;#160; Contoso developed a MS-DOS based logon script when they first rolled out their systems on Windows NT 4.0.&amp;#160; When Windows 2000 was realised, they made some amendments and added more code to the script in order for it to work on the new platform.&amp;#160; When Windows XP was released, they had to tweak it again and add substantially more code in order to be able to migrate it to the Windows XP platform.&amp;#160; Because the script has been extended each time they rolled out a new OS, it is now a monster of a script with almost 2000 lines of code.&lt;/p&gt;  &lt;p&gt;Now, based on their past experience, they have assumed that they will just need to tweak it and probably add some more code so that it works with Windows Vista, consequently, they have not actually gotten around to testing the script yet, nor assign the resources to this task.&amp;#160; Big mistake, because they haven't realised that the chance of the script working 100% on Windows Vista is almost 0.&lt;/p&gt;  &lt;p&gt;Why?&amp;#160; The new security model that Windows Vista uses, that's why.&amp;#160; Let me give an example.&amp;#160; Contoso has an application that is vital to their business.&amp;#160; It is an application that requires certain keys to exist in the HKEY_CURRENT_USER section of the registry, and without those keys the application will not start.&amp;#160; Because Contoso users do not have roaming profiles, the IT team added the following line to their logon script to ensure that this application always works, regardless of which computer the user logs on to:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;regedit.exe /s %logonserver%\vitalapp.reg&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Consequently, when the user logs on the registry file imports the required keys into the registry and the application works correctly, and because this is in the logon script the process is invisible to the end user.&amp;#160; However, if the same script is run on Windows Vista, the following window will appear during the execution of the logon script:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/GettingcaughtoutbyyourlogonscriptandGrou_8CE8/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="246" alt="image" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/GettingcaughtoutbyyourlogonscriptandGrou_8CE8/image_thumb.png" width="444" border="0" /&gt;&lt;/a&gt;&lt;font size="1"&gt; The famous (or infamous...?) User Account Control (UAC) window&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This window will appear because the resource regedit.exe is a protected file that requires administrative rights to be able to run it.&amp;#160; Unfortunately for Contoso, their logon script imports 12 different registry files which means that their logon script causes the UAC prompt to appear 12 times.&lt;/p&gt;  &lt;p&gt;There are several ways to stop this message appearing, but they all reduce the overall level of security of the operating system (for example, you could disable UAC or give all users admin rights).&lt;/p&gt;  &lt;p&gt;But don't panic!&amp;#160; There are plenty of solutions that you can use to solve these issues whilst maintaining the UAC feature and the extra security benefits that it gives.&amp;#160; The method I also recommend to customers is to use custom ADM files to create the registry keys, see &lt;a href="http://blogs.technet.com/grouppolicy/archive/2007/09/21/setting-default-registry-key-values-using-custom-adm-files-part-1-of-2.aspx"&gt;here&lt;/a&gt; for a good guide on how to do it.&amp;#160; That way, every time the user logs on and receives their group policy configuration, the registry key will be created.&amp;#160; And, because it runs in a different context to the user, it will have enough permissions in the registry to create the keys without invoking the UAC window.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you are considering, or even if you have already started, deploying Windows Vista in your business environment, I strongly recommend that you test your logon script thoroughly and as soon as possible on Windows Vista.&amp;#160; The last thing you want is to have to put the deployment on hold when the problems start appearing.&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 Services Spain&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3061082" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Windows+Vista/default.aspx">Windows Vista</category></item><item><title>Expanding the Scratch Space in Windows PE 2.1</title><link>http://blogs.technet.com/deploymentguys/archive/2008/05/12/expanding-the-scratch-space-in-windows-pe-2-1.aspx</link><pubDate>Mon, 12 May 2008 09:40:36 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3053957</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3053957.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3053957</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3053957</wfw:comment><description>&lt;p&gt;Recently, I have had to create a bigger scratch space (the MDT X: drive) in Windows PE to deal with the injection of a largish driver during a Windows Vista deployment. The driver in question is the NVidia driver for the Lenovo P60 and P61 and because of the limited scratch space under PE 2.0, this was causing an issue at injection time. There is a scratch file change (registry hack) that can be made to Windows PE 2.0 and below to change the scratch file space from the default 32 Mb - however this is unsupported. &lt;/p&gt;  &lt;p&gt;With the introduction of Windows PE 2.1 (supplied with the Windows Automated Installation Kit (Windows AIK) 1.1), the scratch area can be changed from the command line. Below is the process for creating a larger scratch area.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Create a temporary mount folder on your hard disk - &lt;strong&gt;MD c:\temp\mount&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Go to the Windows AIK tools folder for the platform of PE that you will be changing (ie x86/x64) - &lt;strong&gt;CD &amp;quot;Program Files\Windows AIK\Tools\x86&amp;quot;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Mount the default Windows PE image supplied with Windows AIK to your temporary mount folder - &lt;strong&gt;imagex.exe /MOUNTRW &amp;quot;C:\Program Files\Windows AIK\Tools\PETools\x86\winpe.wim&amp;quot; 1 c:\temp\mount&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Go to the Windows AIK PETools folder - &lt;strong&gt;CD&lt;/strong&gt; &lt;strong&gt;&amp;quot;C:\Program Files\Windows AIK\Tools\PETools&amp;quot;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Run the PEIMG command to adjust the scratch size in the mounted image using /SCRATCHSPACE flag to set the size of the drive you want (in this case 128Mb)&amp;#160; - &lt;strong&gt;peimg.exe /SCRATCHSPACE=128 c:\temp\mount\windows&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Change back to the PETools directory - &lt;strong&gt;CD &amp;quot;Program Files\Windows AIK\Tools\x86&amp;quot;&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Unmount the image and commit the changes - &lt;strong&gt;imagex.exe /UNMOUNT /COMMIT c:\temp\mount&lt;/strong&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;That's it - the scratch area will now be set at 128 Mb for all boot images based on this source - which means all boot images created by MDT will now have the set scratch space set (there's a script here somewhere to automate this - so feel free to create and send in your suggestions via the comments area :-)).&lt;/p&gt;  &lt;p&gt;Remember that the scratch space is a RAM drive, so the machine being built by this boot environment will need enough memory to deal with Windows PE plus your additional scratch space (so that's approximately 240 Mb &lt;strong&gt;plus&lt;/strong&gt; scratch space).&lt;/p&gt;  &lt;p&gt;&lt;i&gt;This post was contributed by &lt;b&gt;Richard Smith&lt;/b&gt; a Senior Consultant with Microsoft Services, UK.&lt;/i&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3053957" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Microsoft+Deployment/default.aspx">Microsoft Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category></item><item><title>Dealing With Duplicate User Profile Links in Windows Vista</title><link>http://blogs.technet.com/deploymentguys/archive/2008/05/01/dealing-with-duplicate-user-profile-links-in-windows-vista.aspx</link><pubDate>Thu, 01 May 2008 16:24:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3048176</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3048176.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3048176</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3048176</wfw:comment><description>&lt;p&gt;&lt;strong&gt;Overview of Windows Vista User Profiles&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In previous versions of Windows the user's profile was largely hidden away and only the more technically-minded of us would ever knowingly delve into its contents.&amp;#160; With Windows Vista there seems to have been a significant change in that the profile has been dragged sulkily into the spotlight.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="457" alt="CleanProfile_Web" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DealingWithDuplicateProfileLinksinWindow_651F/CleanProfile_Web_5.png" width="459" border="0" mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DealingWithDuplicateProfileLinksinWindow_651F/CleanProfile_Web_5.png" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;The Windows Vista user profile&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;#160;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;The Windows Vista user profile is visible everywhere.&amp;#160; It's the very first link in the Start Menu and it appears prominently in Explorer and most Open/Save dialogs. Some dialogs even open directly to this profile location and ignore any &lt;em&gt;Favorite Links&lt;/em&gt;. Many people - including myself - initially tried to rebel against this new behaviour and attempted to hide the profile away again. This usually causes its own set of problems when a user who only understands &lt;em&gt;Documents&lt;/em&gt; and &lt;em&gt;Pictures&lt;/em&gt; suddenly gets a Save dialog with an eyeful of profile. They panic. They blindly click on the root of the C: drive and with brows furrowed in incomprehension they drag the entire contents to the Recycle Bin. Then they pull the power cord out.&lt;/p&gt;  &lt;p&gt;Those are the good users. &lt;em&gt;The rest call the helpdesk&lt;/em&gt;!&lt;/p&gt;  &lt;p&gt;It's much better to embrace the new way of working and provide training around using the user profile to the end users.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Folder Redirection&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Another change in Windows Vista is the ability to independently redirect each of the user profile sub-folders to a network location using Group Policy and Folder Redirection. This can significantly improve logon times in an organisation that uses roaming profiles where users move around lot. A common approach is to redirect the &amp;quot;big hitters&amp;quot; where large files are often stored, such as:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Documents (usually with the addition of Pictures, Music and Videos) &lt;/li&gt;    &lt;li&gt;Desktop &lt;/li&gt;    &lt;li&gt;Downloads &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Let's have a look at our Windows Vista profile after we redirect these:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="507" alt="Duplicate infested profile - The Horror!" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DealingWithDuplicateProfileLinksinWindow_651F/DuplicateProfiles_Web_3.png" width="483" border="0" mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DealingWithDuplicateProfileLinksinWindow_651F/DuplicateProfiles_Web_3.png" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Duplicate infested profile - The Horror!&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What's going on here?! What are all these duplicates? Which is the real one? If you thought users panicked when they hadn't seen a profile before then you haven't seen a user when presented with duplicate links! And no, a slightly different icon is never a good enough way to tell the difference. &amp;quot;No, don't save it in the one that looks like a folder, save it in the one that looks like a folder with a document on top of the folder&amp;quot;. I think not.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 10px; border-right-width: 0px" height="53" alt="GPO Move Contents" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DealingWithDuplicateProfileLinksinWindow_651F/GPO_MoveContents.png" width="296" align="right" border="0" mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DealingWithDuplicateProfileLinksinWindow_651F/GPO_MoveContents.png" /&gt; So why does this happen? Well, when redirecting a folder using Group Policy one of the options is to &amp;quot;Move the contents&amp;quot;. Unless this option is selected a duplicate link will be left behind - even when that folder is completely empty. The problem is that depending on the way the infrastructure is set up we can't always safely select this option. &lt;/p&gt;  &lt;p&gt;Here are some common reasons you might &lt;strong&gt;not&lt;/strong&gt; want to use the &amp;quot;move&amp;quot; option:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;The user is often not the owner of the redirected folder&lt;/strong&gt;. Many organisations pre-create redirected folders with administrator ownership to simplify administration. The Group Policy option to move the contents of the redirected folder &lt;em&gt;fails when the user is not the owner&lt;/em&gt;. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Server moves and maintenance&lt;/strong&gt;. Often administrators need to move the location of user data between folders or even servers. If the administrator changes the location of a redirected folder they generally want to move the corresponding files themselves at the same time. Using the Group Policy &amp;quot;move&amp;quot; option, if an administrator changed the redirected location for 10000 users they would need to wait for &lt;em&gt;all 10000 users to logon&lt;/em&gt; for all of the data to be moved. &lt;em&gt;Warning:&lt;/em&gt; Administrators tend to froth at the mouth a little when told this. You could attempt to change the Folder Redirection location and then move the files yourself anyway but this usually causes the Windows client to get confused, especially where Offline Files are involved. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If none of the above scenarios applies to you then you are very lucky indeed and can stop reading now. The rest can continue on for a possible workaround...&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A Possible Workaround&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So, to fix this we need to find a way to automatically remove these duplicate links, let's say on logon. The solution will need to:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Run on any Windows Vista build and not rely on any specific frameworks or runtime libraries which may not be present &lt;/li&gt;    &lt;li&gt;Be able to check if folders have been redirected &lt;/li&gt;    &lt;li&gt;Where a folder has been redirected, be able to work out what the duplicate/default location &lt;em&gt;was&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;Check that the duplicate folder is indeed empty &lt;/li&gt;    &lt;li&gt;Delete duplicates (or recycle them to be safer) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Usually I'd use VBScript for something like this, but in order to get the redirected and default profile folder locations we need to use the API call &lt;a href="http://msdn.microsoft.com/en-us/library/bb762188(VS.85).aspx" target="_blank" mce_href="http://msdn.microsoft.com/en-us/library/bb762188(VS.85).aspx"&gt;SHGetKnownFolderPath&lt;/a&gt; which means writing a custom application in &lt;a href="http://www.microsoft.com/express/vc/Default.aspx" target="_blank" mce_href="http://www.microsoft.com/express/vc/Default.aspx"&gt;Visual C++ 2008 Express&lt;/a&gt; (or the full version if you have it). What? Why don't I just use VBScript and read the registry keys in &amp;quot;Explorer\Shell Folders&amp;quot; and &amp;quot;Explorer\User Shell Folders&amp;quot;? Because &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2003/11/03/55532.aspx" target="_blank" mce_href="http://blogs.msdn.com/oldnewthing/archive/2003/11/03/55532.aspx"&gt;Raymond says so&lt;/a&gt;, and because &lt;a href="http://technet2.microsoft.com/windowsserver/en/library/fd37cfc0-4ae5-4537-811f-2ccd048040b01033.mspx?mfr=true" target="_blank" mce_href="http://technet2.microsoft.com/windowsserver/en/library/fd37cfc0-4ae5-4537-811f-2ccd048040b01033.mspx?mfr=true"&gt;Technet says so&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Don't worry about using Visual C++ , it's going to be a &lt;em&gt;tiny&lt;/em&gt; program that's pretty easy to follow for a scripter and you'll be able to act smug around the office and throw lines into conversations like: &amp;quot;VBScript, yeah, that's pretty good.&amp;#160; I guess.&amp;#160; &lt;em&gt;&amp;lt;pause dramatically here&amp;gt;&lt;/em&gt;&amp;#160; Check out my &lt;em&gt;proper&lt;/em&gt; code and cast off your childish ways, mortals!&amp;quot;.&lt;/p&gt;  &lt;p&gt;The sample code will create a program that can be run as follows (from a login script, logoff script, StartUp group, RunOnce registry key - your choice):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;RemoveDuplicateProfileLinks.exe [/norecycle]&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;By default, it will move deleted duplicates to the Recycle Bin (safe) but you can force a full deletion using the optional &amp;quot;/norecycle&amp;quot; switch (less safe).&lt;/p&gt;  &lt;p&gt;Download the sample code here:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;iframe style="border-right: #dde5e9 1px solid; padding-right: 0px; border-top: #dde5e9 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 3px; border-left: #dde5e9 1px solid; width: 240px; padding-top: 0px; border-bottom: #dde5e9 1px solid; height: 66px; background-color: #ffffff" marginwidth="0" marginheight="0" src="http://cid-7be6feba9e7c999c.skydrive.live.com/embedrowdetail.aspx/DeploymentGuys/RemoveDuplicateProfileLinks.zip" frameborder="0" scrolling="no" mce_src="http://cid-7be6feba9e7c999c.skydrive.live.com/embedrowdetail.aspx/DeploymentGuys/RemoveDuplicateProfileLinks.zip"&gt;&lt;/iframe&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;To compile: &lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="127" alt="ReleaseBuild_Web" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DealingWithDuplicateProfileLinksinWindow_651F/ReleaseBuild_Web_1.png" width="329" align="right" border="0" mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DealingWithDuplicateProfileLinksinWindow_651F/ReleaseBuild_Web_1.png" /&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Open &lt;a href="http://www.microsoft.com/express/vc/Default.aspx" target="_blank" mce_href="http://www.microsoft.com/express/vc/Default.aspx"&gt;Visual C++ 2008 Express&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Open the solution file &amp;quot;RemoveDuplicateProfileLinks.sln&amp;quot;. &lt;/li&gt;    &lt;li&gt;Ensure that the &amp;quot;Release&amp;quot; build is active. &lt;/li&gt;    &lt;li&gt;Select the menu &amp;quot;Build \ Rebuild Solution&amp;quot;. &lt;/li&gt;    &lt;li&gt;The code will compile. &lt;/li&gt;    &lt;li&gt;The resulting .exe file will be created in the top-level &amp;quot;Release&amp;quot; folder. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;em&gt;&amp;lt;disclaimer&amp;gt;Remember, this is sample code and you use it at your own risk :)&amp;lt;/disclaimer&amp;gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A Quick Look at the Code&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;For the geeks among you let's have a quick look at the code. The main functions are in the &amp;quot;RemoveDuplicateProfileLinks.cpp&amp;quot; file and consist of:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;wWinMain()&lt;/strong&gt; and &lt;strong&gt;CheckFolder()&lt;/strong&gt; - These do most of the work in reading command-line parameters, checking for redirection and deleting duplicates. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;IsVistaOrLater()&lt;/strong&gt; - Checks if we are running Windows Vista or later. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;IsValidDir()&lt;/strong&gt; - Checks if a given folder exists. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;MyGetFullPathName()&lt;/strong&gt; - Expands a given folder into it's non-relative and long path name version. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;IsFolderEmpty()&lt;/strong&gt; - Checks if a folder is empty and suitable for deletion. We have to be a little careful as duplicate profile links tend to still contain files like &amp;quot;desktop.ini&amp;quot; and junction points to &amp;quot;My Pictures&amp;quot; and the like. You can modify this function to suit your environment, but as it stands it should work well for a clean Windows Vista build that has just logged on and had a number of folders redirected. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;FileRecycle()&lt;/strong&gt; - Handles deletion or recycling of a folder. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The main two functions wWinMain() and CheckFolder() are shown below so you can see what you are getting yourself into:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="604" alt="Code1" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DealingWithDuplicateProfileLinksinWindow_651F/Code1_5.png" width="741" border="0" mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DealingWithDuplicateProfileLinksinWindow_651F/Code1_5.png" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;The WinMain() function&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="535" alt="Code2" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DealingWithDuplicateProfileLinksinWindow_651F/Code2_3.png" width="639" border="0" mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DealingWithDuplicateProfileLinksinWindow_651F/Code2_3.png" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;The CheckFolder() function&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;That wasn't so hard was it?&amp;#160; It's not rocket science after all - it's just brain surgery... Let me know how you get on with this and if you have any other ideas or suggestions. &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;Jonathan Bennett &lt;/strong&gt;a Senior Consultant with Microsoft Services, UK.&lt;/em&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3048176" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Utilities/default.aspx">Utilities</category></item><item><title>Useful Script Number 4 - Silent Installation of Windows AIK 1.1</title><link>http://blogs.technet.com/deploymentguys/archive/2008/04/30/useful-script-number-4-silent-installation-of-windows-aik-1-1.aspx</link><pubDate>Wed, 30 Apr 2008 22:25:49 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3047795</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3047795.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3047795</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3047795</wfw:comment><description>&lt;p&gt;One of the things that you may need to do - particularly if you are tying to automate the creation of a deployment server in a lab environment - is install the Windows Automated Installation Kit. You may think that because Windows AIK is supplied as .msi files that this would be a simple process, however there is a requirement to manually accept the licensing agreement with no switch to bypass and the msi is coded to only run in full UI mode. Also there is the issue of installing the correct version (x86/x64 versions) on the correct platform.&lt;/p&gt;  &lt;p&gt;With this in mind, back when Windows AIK was released (v1.0), I created a small &lt;a href="http://www.autoitscript.com"&gt;Autoit&lt;/a&gt; script to screen scrape the installation - I have now updated this script for Windows AIK 1.1&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;#Region ;**** Directives created by AutoIt3Wrapper_GUI ****      &lt;br /&gt;#AutoIt3Wrapper_UseUpx=n       &lt;br /&gt;#AutoIt3Wrapper_UseAnsi=y       &lt;br /&gt;#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;;Copyright (C) 2008      &lt;br /&gt;;You have a royalty-free right to use, modify, reproduce and distribute the Sample Application Files (and/or any modified version) in any way       &lt;br /&gt;;you find useful, provided that you agree that Microsoft and the author have no warranty, obligations or liability for any Sample Application Files.&lt;/font&gt;&lt;font face="Courier"&gt;      &lt;br /&gt;&lt;font face="Courier New"&gt;;        &lt;br /&gt;; AutoIt Version: 3.2.10.0         &lt;br /&gt;; Language:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; English         &lt;br /&gt;; Platform:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Windows         &lt;br /&gt;; Author:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Richard Smith - Microsoft UK         &lt;br /&gt;; Script Function:         &lt;br /&gt;;&amp;#160;&amp;#160; Gets CPU architecture then install the Windows Automated Installation Kit (Windows AIK 1.1) silently &lt;/font&gt;&lt;/font&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier"&gt;&lt;font face="Courier New"&gt;#include &amp;lt;Constants.au3&amp;gt;&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;;Set variables and constants      &lt;br /&gt;Dim $Item       &lt;br /&gt;Dim $sCmd &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;;Check the CPU architecture      &lt;br /&gt;$Item = @ProcessorArch &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;; Set the msi to be run based on architecture found      &lt;br /&gt;If $Item = &amp;quot;X86&amp;quot; Then       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $sCmd = &amp;quot; waikx86.msi&amp;quot;       &lt;br /&gt;ElseIf $Item = &amp;quot;X64&amp;quot; Then       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $sCmd = &amp;quot; waikamd64.msi&amp;quot;       &lt;br /&gt;ElseIf $Item = &amp;quot;IA64&amp;quot; Then       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $sCmd = &amp;quot; waikia64.msi&amp;quot;       &lt;br /&gt;Else       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; MsgBox(0,'Error','The processor type is not supported - Setup will now exit')       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Exit       &lt;br /&gt;EndIf &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;;Run the installation command      &lt;br /&gt;Run (&amp;quot;msiexec.exe /i&amp;quot; &amp;amp; $sCmd) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;;Program Installation Automation      &lt;br /&gt;; Wait for the Welcome window       &lt;br /&gt;WinWait(&amp;quot;Windows Automated Installation Kit&amp;quot;, &amp;quot;Welcome to the Windows Automated Installation Kit Setup Wizard&amp;quot;)       &lt;br /&gt;Send(&amp;quot;!n&amp;quot;) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;; Wait for the EULA window to become active      &lt;br /&gt;WinWaitActive(&amp;quot;Windows Automated Installation Kit&amp;quot;, &amp;quot;License Terms&amp;quot;)       &lt;br /&gt;Send(&amp;quot;!a&amp;quot;)       &lt;br /&gt;Send(&amp;quot;!n&amp;quot;) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;; Wait for the Select Install Location window to become active      &lt;br /&gt;WinWaitActive(&amp;quot;Windows Automated Installation Kit&amp;quot;, &amp;quot;Select Installation Folder&amp;quot;)       &lt;br /&gt;Send(&amp;quot;!n&amp;quot;) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;; Wait for the Confirm Install windows to become active      &lt;br /&gt;WinWaitActive(&amp;quot;Windows Automated Installation Kit&amp;quot;, &amp;quot;Confirm Installation&amp;quot;)       &lt;br /&gt;Send(&amp;quot;!n&amp;quot;) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;; Wait for the Install Complete window to become active      &lt;br /&gt;WinWait(&amp;quot;Windows Automated Installation Kit&amp;quot;, &amp;quot;Installation Complete&amp;quot;)       &lt;br /&gt;Send(&amp;quot;!c&amp;quot;) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;; Wait for the Reboot Required window to become active (NO LONGER REQUIRED FOR WAIK VERSION 1.1)      &lt;br /&gt;;WinWait(&amp;quot;Windows Automated Installation Kit&amp;quot;, &amp;quot;&amp;quot;)       &lt;br /&gt;;Send(&amp;quot;!y&amp;quot;) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;Exit&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The first part of the script uses an Autoit function - &lt;strong&gt;@ProcessorArch&lt;/strong&gt; to get the processor type of the machine that the script is being run on. Based on the processor found, the script sets the correct .msi file to run.&lt;/p&gt;  &lt;p&gt;The script then uses the Autoit &lt;strong&gt;WinWait&lt;/strong&gt; and &lt;strong&gt;WinWaitActive&lt;/strong&gt; functions to wait for specific screens to appear and then uses the &lt;strong&gt;Send&lt;/strong&gt; function to deliver the correct key stroke to that window.&lt;/p&gt;  &lt;p&gt;As usual the Autoit source script (.au3 file) and the compiled executable (x86 .exe file) are available from the Deployment Guys SkyDrive - the executable must be placed into the Windows AIK 1.1 source directory (where the .msi files are) and run from there.&lt;/p&gt; &lt;iframe style="border-right: #dde5e9 1px solid; padding-right: 0px; border-top: #dde5e9 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 3px; border-left: #dde5e9 1px solid; width: 240px; padding-top: 0px; border-bottom: #dde5e9 1px solid; height: 66px; background-color: #ffffff" marginwidth="0" marginheight="0" src="http://cid-7be6feba9e7c999c.skydrive.live.com/embedrowdetail.aspx/DeploymentGuys/Install_WAIK1.1.zip" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;&amp;#160;&lt;i&gt;This post was contributed by &lt;b&gt;Richard Smith &lt;/b&gt;- a Senior Consultant with Microsoft Services, UK.&lt;/i&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3047795" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/BDD+2007/default.aspx">BDD 2007</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Microsoft+Deployment/default.aspx">Microsoft Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category></item><item><title>Windows Vista Product Guide (Updated for SP1) now Available</title><link>http://blogs.technet.com/deploymentguys/archive/2008/04/30/windows-vista-product-guide-including-sp1.aspx</link><pubDate>Wed, 30 Apr 2008 17:25:06 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3047644</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3047644.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3047644</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3047644</wfw:comment><description>&lt;p&gt;For those that need (or want) to know the intricacies of what is included with Windows Vista, the newly updated (for SP1) Windows Vista Product Guide is available for download.&lt;/p&gt;  &lt;p&gt;The 334 page Windows Vista Product Guide provides a comprehensive overview of the features and functions that make Windows Vista tick. This guide also provides information about the benefits Windows Vista offers diverse users, as well as information about the different editions available.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=bbc16ebf-4823-4a12-afe1-5b40b2ad3725&amp;amp;DisplayLang=en"&gt;Download from here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;This post was contributed by &lt;b&gt;Jon Bennett &lt;/b&gt;- a Senior Consultant with Microsoft Services, UK.&lt;/i&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3047644" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Support/default.aspx">Support</category></item><item><title>Getting help when you are really stuck</title><link>http://blogs.technet.com/deploymentguys/archive/2008/04/25/getting-help-when-you-are-really-stuck.aspx</link><pubDate>Fri, 25 Apr 2008 10:42:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3044709</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3044709.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3044709</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3044709</wfw:comment><description>&lt;P&gt;A lot of people think that because BDD and MDT are free products they are not eligible for support from Microsoft.&amp;nbsp; This question seems to crop up quite often and people are often surprised when I point out the truth!&lt;/P&gt;
&lt;P&gt;So, in true A-Team spirit (i.e. "If you have a problem, if no one else can help, and if you can find them, maybe you can hire the A-Team."):&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;If you have a problem with BDD or MDT, if no one else has been able to help you, maybe you can try Premier Support!&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;It is simple, just call the support number which you can find here: &lt;A href="http://www.microsoft.com/services/microsoftservices/srv_premier.mspx" mce_href="http://www.microsoft.com/services/microsoftservices/srv_premier.mspx"&gt;http://www.microsoft.com/services/microsoftservices/srv_premier.mspx&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Make sure that you state that you have a BDD/MDT issue because if you talk about deployment you might be routed to a different queue.&amp;nbsp; Also it is worth mentioning that Premier Support have a different style to the A-Team in that they don't use guns and explosions to fix things.&amp;nbsp; Thanks to the MSDeployment guys who first highlighted this problem on their &lt;A href="http://blogs.technet.com/msdeployment/archive/2008/01/30/how-to-receive-support-for-microsoft-deployment.aspx" mce_href="http://blogs.technet.com/msdeployment/archive/2008/01/30/how-to-receive-support-for-microsoft-deployment.aspx"&gt;blog&lt;/A&gt;.&amp;nbsp; Of course, please carrying commenting on our blog as well!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This post was contributed by &lt;STRONG&gt;Daniel Oxley&lt;/STRONG&gt; a consultant with Microsoft Services Spain&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3044709" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/BDD+2007/default.aspx">BDD 2007</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Microsoft+Deployment/default.aspx">Microsoft Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Support/default.aspx">Support</category></item></channel></rss>