<?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 : Microsoft Deployment</title><link>http://blogs.technet.com/deploymentguys/archive/tags/Microsoft+Deployment/default.aspx</link><description>Tags: Microsoft Deployment</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>"Easy" List Items for the Microsoft Deployment Toolkit</title><link>http://blogs.technet.com/deploymentguys/archive/2008/12/12/easy-list-items-for-the-microsoft-deployment-toolkit.aspx</link><pubDate>Fri, 12 Dec 2008 13:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3164511</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3164511.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3164511</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3164511</wfw:comment><description>&lt;P&gt;In MDT rules processing with CustomSettings.ini, some of the items that can be configured are List Items.&amp;nbsp; List Items are essentially multi-valued custom properties.&amp;nbsp; Examples of items that are List Items are Applications in LTI and Packages in ZTI.&amp;nbsp; To define a List Item based property in CustomSettings.ini you add the base property name in the Properties line in the Settings section in the form Propertyname(*) if it is a custom List Item.&amp;nbsp; Then in the section(s) where you want the to define the values for the List Item, you add them in the form of either Propertyname1=value or Propertyname001=value.&amp;nbsp; The numeric suffix should start at 1 or 001 and increment by 1.&amp;nbsp; Below is the example for the Packages List Item property from the MDT help file:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;[Settings] &lt;BR&gt;Priority=Default &lt;/P&gt;
&lt;P&gt;[Default] &lt;BR&gt;Packages001=NYC00010:Install &lt;BR&gt;Packages002=NYC00011:Install&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Since this is an MDT-defined property, it does not need to be listed in the Properties line.&amp;nbsp; Below is an example of a custom List Item (additions in blue):&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;[Settings] &lt;BR&gt;Priority=&lt;FONT color=#0000ff&gt;ExcludeRootFolders&lt;/FONT&gt;, Default &lt;BR&gt;Properties=MyCustomProperty, &lt;FONT color=#0000ff&gt;UsmtExcludeRootFolders(*)&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;[Default] &lt;BR&gt;OSInstall=Y &lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;[ExcludeRootFolders] &lt;BR&gt;UsmtExcludeRootFolders001=%ProfilesFolder% &lt;BR&gt;UsmtExcludeRootFolders002=%ProgramData% &lt;BR&gt;UsmtExcludeRootFolders003=%ProgramFiles% &lt;BR&gt;UsmtExcludeRootFolders004=%windir% &lt;BR&gt;UsmtExcludeRootFolders005=C:\_SMSTaskSequence &lt;BR&gt;UsmtExcludeRootFolders006=C:\drivers &lt;BR&gt;UsmtExcludeRootFolders007=C:\MININT &lt;BR&gt;UsmtExcludeRootFolders008=C:\MSOCache &lt;BR&gt;UsmtExcludeRootFolders009=C:\Temp &lt;BR&gt;UsmtExcludeRootFolders010=C:\Winnt &lt;BR&gt;UsmtExcludeRootFolders011=C:\Boot &lt;BR&gt;UsmtExcludeRootFolders012=C:\System Volume Information &lt;BR&gt;UsmtExcludeRootFolders013=C:\PerfLogs&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The list of folders in this example is one of several lists that a custom script of mine consumes and generates a custom USMT XML file.&amp;nbsp; When I was first doing this with standard MDT List Items I found several things really frustrating.&amp;nbsp; The first was the numeric suffix.&amp;nbsp; The numeric suffix must be in numeric order and there must be no repeated numbers and no gaps in the number sequences.&amp;nbsp; If you don't do this, not all the items will be processed.&amp;nbsp; I like to keep the folders in alphabetical order so that when I need to add or remove one, it is easy to find the place to add, delete, and make sure I'm not adding a duplicate.&amp;nbsp; So when I have to add an item near the top of the list, painful tedious re-numbering would have to be done.&lt;/P&gt;
&lt;P&gt;Also, MDT rules processing expands all variables in values placed on CustomSettings.ini.&amp;nbsp; So the special folder variables at the beginning of the list would get expanded to the value for that folder on the source OS.&amp;nbsp; However, I actually wanted the exact text (without variables being expanded) placed in the List Item.&lt;/P&gt;
&lt;P&gt;So to get around these limitations I created a User Exit script to implement what I call Easy List Items.&amp;nbsp; Here is the previous example done as an Easy List Item (additions in green):&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;[Settings] &lt;BR&gt;Priority=&lt;FONT color=#008000&gt;TestEasyListItem&lt;/FONT&gt;, Default &lt;BR&gt;Properties=MyCustomProperty, &lt;FONT color=#008000&gt;AddUsmtExcludeRootFolders&lt;/FONT&gt;&lt;/P&gt;[Default] &lt;BR&gt;OSInstall=Y 
&lt;P&gt;&lt;FONT color=#008000&gt;[TestEasyListItem] &lt;BR&gt;UserExit=EasyListItemExit.vbs &lt;BR&gt;&lt;FONT color=#008000&gt;AddUsmtExcludeRootFolders&lt;/FONT&gt;=#AddToListItem("UsmtExcludeRootFolders", "ExcludeRootFolders", "", False)#&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;[ExcludeRootFolders] &lt;BR&gt;UsmtExcludeRootFolders=%ProfilesFolder% &lt;BR&gt;UsmtExcludeRootFolders=%ProgramData% &lt;BR&gt;UsmtExcludeRootFolders=%ProgramFiles% &lt;BR&gt;UsmtExcludeRootFolders=%windir% &lt;BR&gt;UsmtExcludeRootFolders=C:\_SMSTaskSequence &lt;BR&gt;UsmtExcludeRootFolders=C:\Boot &lt;BR&gt;UsmtExcludeRootFolders=C:\drivers &lt;BR&gt;UsmtExcludeRootFolders=C:\MININT &lt;BR&gt;UsmtExcludeRootFolders=C:\MSOCache &lt;BR&gt;UsmtExcludeRootFolders=C:\PerfLogs &lt;BR&gt;UsmtExcludeRootFolders=C:\Temp &lt;BR&gt;UsmtExcludeRootFolders=C:\System Volume Information &lt;BR&gt;UsmtExcludeRootFolders=C:\Winnt&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;As you can see from this example, the AddToListItem function in EasyListItemExit.vbs allows you to add all the List Item entries without the numeric suffix.&amp;nbsp; You can now reorder, add, and delete items without worrying about number order or gaps in the numbering.&amp;nbsp; And because this function simply adds to the List Item if it already exists, Easy List Items can coexist with standard MDT List Item entries.&lt;/P&gt;
&lt;P&gt;The parameters for the function are the List Item name, the section to process for entries to add, the INI file path (blank for the current INI file), and True (expand variables) or False (don't expand variables).&amp;nbsp; The INI file parameter allows you to query additional INI files for entries.&amp;nbsp; In this example the custom property AddUsmtExcludeRootFolders that causes the AddToListItem function to run will have a value of Success or Failure (if the List Item entries, section name, or INI file cannot be found).&lt;/P&gt;
&lt;P&gt;The script can be found in the Zip file below.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the &lt;/STRONG&gt;&lt;A href="http://www.microsoft.com/info/cpyright.mspx" mce_href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;STRONG&gt;Terms of Use&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This post was contributed by &lt;B&gt;Michael Murgolo,&lt;/B&gt; a Senior Consultant with Microsoft Services - U.S. East Region.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3164511" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3164511.ashx" length="2418" type="application/x-zip-compressed" /><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></item><item><title>Back to basics #3 – Branding the deployment and fixing the 0xc000000e problem</title><link>http://blogs.technet.com/deploymentguys/archive/2008/11/20/back-to-basics-3-branding-the-deployment-and-fixing-the-0xc000000e-problem.aspx</link><pubDate>Thu, 20 Nov 2008 11:57:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3156868</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3156868.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3156868</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3156868</wfw:comment><description>&lt;P align=justify&gt;Two more tips for the blog.&amp;nbsp; Actually, one is a tip and the other is the solution to a common problem I see!&lt;/P&gt;
&lt;P align=justify&gt;During the execution of a task sequence in MDT (normally while creating an image, or deploying one) the computer will display the Installation Progress window in the centre of the screen, on top of all others (see &lt;A href="http://blogs.technet.com/deploymentguys/archive/2008/03/19/useful-script-number-2-move-the-task-sequence-window.aspx" mce_href="http://blogs.technet.com/deploymentguys/archive/2008/03/19/useful-script-number-2-move-the-task-sequence-window.aspx"&gt;here&lt;/A&gt; and &lt;A href="http://blogs.technet.com/deploymentguys/archive/2008/10/09/placing-your-window-on-top-during-the-windowspe-stage.aspx" mce_href="http://blogs.technet.com/deploymentguys/archive/2008/10/09/placing-your-window-on-top-during-the-windowspe-stage.aspx"&gt;here&lt;/A&gt; for tips on how to move this window out the way).&amp;nbsp; By default, this window says “IT Organization” in bold letters; something like this:&lt;/P&gt;
&lt;P align=center&gt;&amp;nbsp;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image7.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image7.png"&gt;&lt;IMG title="IT Organization" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=114 alt="IT Organization" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image7_thumb.png" width=355 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image7_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P align=center&gt;But wouldn’t it be good if you could change it to look like this? &lt;BR&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image4.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image4.png"&gt;&lt;IMG title="Contoso - Windows Vista Deployment" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=114 alt="Contoso - Windows Vista Deployment" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image4_thumb.png" width=355 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/image4_thumb.png"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;By simply setting the variable &lt;STRONG&gt;_SMSTSOrgName&lt;/STRONG&gt; in the &lt;STRONG&gt;customsettings.ini&lt;/STRONG&gt; file, you can replace the text “IT Organization” with anything you like (as long as it is not longer than the width of the progress window!).&lt;/P&gt;
&lt;P&gt;For example, the below customsettings.ini file will set the text to “Contoso – Windows Vista Deployment” in the progress window: &lt;/P&gt;
&lt;P&gt;[Default] &lt;BR&gt;OSInstall=Y &lt;BR&gt;SkipProductKey=YES &lt;BR&gt;SkipFinalSummary=NO &lt;BR&gt;SkipComputerName=YES &lt;BR&gt;SkipApplications=YES &lt;BR&gt;Computername=%SerialNumber% &lt;BR&gt;&lt;STRONG&gt;&lt;FONT color=#000000&gt;_SMSTSOrgName=Contoso – Windows Vista Deployment&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P align=justify&gt;If you wish to change the “&lt;STRONG&gt;Running: Lite Touch Installation&lt;/STRONG&gt;” text on the window it is not so straightforward.&amp;nbsp; You need to edit the line &lt;EM&gt;oEnvironment.Item("_SMSTSPackageName") = "Lite Touch Installation”&lt;/EM&gt; (usually line number 599) in the script &lt;STRONG&gt;LiteTouch.wsf&lt;/STRONG&gt;, replacing the text in the quotes with the text that you want to display.&amp;nbsp; However, you should be aware that if you modify any of the out-of-the-box scripts that are provided with MDT you might no longer be eligible for any support from Microsoft; consult with your local Microsoft contact for more information.&lt;/P&gt;
&lt;P align=justify mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=justify mce_keep="true"&gt;These are one of the first questions I often get asked by customers who have existing MDT servers.&amp;nbsp; While it might seem a rather basic and obvious configuration to some, a lot of people seem to have not found out how to change it and consequently believe that they have to maintain the default setting of “IT Organization”!&lt;/P&gt;
&lt;P align=justify mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=justify mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=justify mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=justify&gt;Recently, I was trying to use an external USB drive as a media deployment point to boot some computers in a laboratory.&amp;nbsp; Nearly every machine booted fine, but a couple of them always failed with the same not-so-helpful error message:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;Status: 0xc000000e &lt;BR&gt;&lt;/EM&gt;&lt;EM&gt;Info: An unexpected error has occurred&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/clip_image001_2.jpg"&gt;&lt;IMG title=clip_image001 style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=184 alt=clip_image001 src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Backtobasics2Brandingthedeployment_84EB/clip_image001_thumb.jpg" width=244 border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P align=center&gt;&lt;FONT size=1&gt;A rather poor quality photo of the error taken with the camera in a mobile phone! &lt;BR&gt;Click on the picture to enlarge it.&lt;/FONT&gt;&lt;/P&gt;
&lt;P align=justify&gt;Failure always occurred at the same point, just as the computer was about to boot WinPE from the RAM-disk, after loading the WIM file into it from the USB device.&amp;nbsp; Initially, it was suspected that there was a problem with the WinPE WIM file that MDT had generated, but running the “Update” command on the deployment point a couple of times did not solve it.&amp;nbsp; Then, memory was suspected, but this proved to be a functioning correctly as well.&amp;nbsp; What was also strange was that the same files booted correctly on other computers.&amp;nbsp; To make matters worse, some computers of the &lt;EM&gt;same make and model&lt;/EM&gt; booted correctly, while other ‘identical’ machines did not??!?!?!&lt;/P&gt;
&lt;P align=justify&gt;In the end, the problem was solved by upgrading the BIOS on the computer to the latest version published by the manufacturer.&amp;nbsp; It seems that the manufacturer had supplied all new computers but with different BIOS versions, within the same shipment; once the BIOS was upgraded to the newer version the computer booted to WinPE correctly.&amp;nbsp; A word of warning though, you should consult with the manufacturer/hardware supplier before performing any BIOS upgrades.&amp;nbsp; And, don’t forget the adage: “If it ain’t broke, don’t fix it”.&amp;nbsp; From experience, upgrading the BIOS on a machine that does not exhibit any problems may break something that you have already working.&lt;/P&gt;
&lt;P align=justify&gt;Whilst I had seen the problem before, I never really was able to investigate it because the client always just gave me a new computer and took the old one away.&amp;nbsp; So, thanks to a colleague of mine, David Marín, for solving this (after banging his head against the monitor for quite some time trying to work out what was going on!)&lt;/P&gt;
&lt;P align=justify&gt;&lt;EM&gt;This post was contributed by &lt;STRONG&gt;Daniel Oxley&lt;/STRONG&gt; a consultant with Microsoft Services, Spain&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3156868" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Microsoft+Deployment/default.aspx">Microsoft Deployment</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/MDT/default.aspx">MDT</category></item><item><title>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>Documenting Your Task Sequences Automagically</title><link>http://blogs.technet.com/deploymentguys/archive/2008/08/17/documenting-your-task-sequences-automagically.aspx</link><pubDate>Sun, 17 Aug 2008 08:53:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3107239</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3107239.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3107239</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3107239</wfw:comment><description>&lt;P&gt;Often times, after creating an MDT or SCCM task sequence, you need to document it for yourself or your customers. Usually, this involves creating a table with the groups and steps, extracting their descriptions, identifying conditions and denoting the step actions and variables and then having&amp;nbsp;format it all nicely and with indents denoting hierarchy.&amp;nbsp;All of this information is usually already&amp;nbsp;in the XML of the task sequence and all you're really doing is formatting. You can automatically format XML documents by using an XSL transform with the right logic. In order to do this:&lt;/P&gt;
&lt;P&gt;1. Copy the attached file at the bottom of the post to the same folder as your task sequence.&lt;/P&gt;
&lt;P&gt;2. Open your task sequence in your favourite text editor.&lt;/P&gt;
&lt;P&gt;3. After the first line which should look something like this:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;lt;?xml version="1.0"?&amp;gt; or &amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;/P&gt;
&lt;P&gt;enter the following as the second line:&lt;/P&gt;
&lt;P&gt;&amp;lt;?xml-stylesheet type="text/xsl" href="tsDocumentorv1.xsl"?&amp;gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;4. Save your task sequence file and open it in Internet Explorer. Presto! The XSL takes care of formatting, indents and sizing. &lt;/P&gt;
&lt;P&gt;Your Task Sequence should look like this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DocumentingyourTaskSequencesAutomagicall_162E/image_2.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DocumentingyourTaskSequencesAutomagicall_162E/image_2.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=340 alt=image src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DocumentingyourTaskSequencesAutomagicall_162E/image_thumb.png" width=712 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/DocumentingyourTaskSequencesAutomagicall_162E/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;You can even change the styles of groups and steps easily.&lt;/P&gt;
&lt;P&gt;1. Open up the tsDocumentorv1.xsl file&lt;/P&gt;
&lt;P&gt;2. Edit the following section:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&amp;lt;STYLE TYPE="text/css"&amp;gt; &lt;BR&gt;&amp;nbsp; TD.group { background-color:teal;color:white } &lt;BR&gt;&amp;nbsp; TD.step { background-color:beige } &lt;BR&gt;&amp;lt;/STYLE&amp;gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Change the colours or any other css properties you choose!&lt;/P&gt;
&lt;P&gt;The XSL should work with task sequences created with BDD 2007, MDT 2008 and SCCM 2007.&lt;/P&gt;
&lt;P&gt;Please try it out and post comments.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This post was contributed by &lt;/EM&gt;&lt;STRONG&gt;&lt;I&gt;Aly Shivji&lt;/I&gt;&lt;/STRONG&gt;&lt;EM&gt; a consultant with Microsoft Services - U.S. East Region. Credit to &lt;STRONG&gt;Michael Murgolo&lt;/STRONG&gt; for initial idea and effort.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3107239" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3107239.ashx" length="6849" type="text/xml" /><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/Configuration+Manager/default.aspx">Configuration Manager</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>MDT Script Explanations</title><link>http://blogs.technet.com/deploymentguys/archive/2008/07/09/mdt-script-explanations.aspx</link><pubDate>Wed, 09 Jul 2008 12:41:56 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3086070</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3086070.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3086070</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3086070</wfw:comment><description>&lt;p&gt;I get quite a few emails from people asking if there is a help file that details all of the scripts that are supplied with Microsoft Deployment Toolkit (MDT). The scripts form the engine of a deployment and can also help you to develop a framework for scripts that you need to create for your own tasks. The MDT documentation (installed in \Program Files\Microsoft Deployment Toolkit\Documentation) is a good place to start - but I also point people to the online MDT Reference - which lists the following information for each script supplied:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;b&gt;Name.&lt;/b&gt; Specifies the name of the script.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;b&gt;Description.&lt;/b&gt; Provides a description of the purpose of the script and any pertinent information regarding script customisation.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;b&gt;Input.&lt;/b&gt; Indicates the files used for input to the script.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;b&gt;Output.&lt;/b&gt; Indicates the files created or modified by the script.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;b&gt;References.&lt;/b&gt; Indicates other scripts or configuration files that are referenced by the script.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;b&gt;Location.&lt;/b&gt; Indicates the folder where the script can be found. In the information for the location, the following variables are used:&lt;/p&gt;      &lt;ul&gt;       &lt;li&gt;         &lt;p&gt;&lt;b&gt;program_files.&lt;/b&gt; This variable points to the location of the Program Files folder on the computer where Microsoft Deployment is installed. &lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;&lt;b&gt;distribution.&lt;/b&gt; This variable points to the location of the Distribution folder for the deployment point.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p&gt;&lt;b&gt;platform.&lt;/b&gt; This variable is a placeholder for the operating system platform (x86 or x64).&lt;/p&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;b&gt;Use.&lt;/b&gt; Provides the command line and options that can be specified.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;b&gt;Arguments and description.&lt;/b&gt; Indicate the valid arguments to be specified for the script and a brief description of what each argument means.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;b&gt;Properties.&lt;/b&gt; The properties referenced by the script.&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;You will find each MDT script breakdown at &lt;a title="http://technet.microsoft.com/en-us/library/bb979605(TechNet.10).aspx" href="http://technet.microsoft.com/en-us/library/bb979605(TechNet.10).aspx"&gt;http://technet.microsoft.com/en-us/library/bb979605(TechNet.10).aspx&lt;/a&gt;&amp;#160;&lt;/p&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=3086070" 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/Scripts/default.aspx">Scripts</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>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>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>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><item><title>Updating System Center Configuration Manager 2007 for Windows Vista Service Pack 1 and Windows Server 2008 Deployment</title><link>http://blogs.technet.com/deploymentguys/archive/2008/04/18/updating-system-center-configuration-manager-2007-for-windows-vista-service-pack-1-and-windows-server-2008-deployment.aspx</link><pubDate>Fri, 18 Apr 2008 21:58:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3039469</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3039469.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3039469</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3039469</wfw:comment><description>&lt;P&gt;The SCCM 2007 Operating System Deployment components&amp;nbsp;use the Windows Automated Installation Toolkit (WAIK)&amp;nbsp;for creating, managing, and deploying Windows Imaging&amp;nbsp;(WIM) images.&amp;nbsp;&amp;nbsp;SCCM 2007&amp;nbsp;setup installs the Windows&amp;nbsp;Vista RTM WAIK (WAIK 1.0) during installation if it is not already installed.&amp;nbsp; In order to deploy Windows Vista SP1 and Windows Server 2008 with SCCM 2007, the WAIK must be updated to the latest version (WAIK 1.1)&amp;nbsp;&amp;nbsp;&amp;nbsp; This&amp;nbsp;process is&amp;nbsp;documented in this Microsoft Knowledge Base article: &lt;A href="http://support.microsoft.com/?id=950782" mce_href="http://support.microsoft.com/?id=950782"&gt;http://support.microsoft.com/?id=950782&lt;/A&gt;.&amp;nbsp; (SCCM 2007 Service Pack 1 will natively support these operating systems when it becomes available.)&lt;/P&gt;
&lt;P&gt;The first two steps in this process are very straight forward: uninstall WAIK 1.0, then install WAIK 1.1.&amp;nbsp; The second two steps document a method of creating&amp;nbsp;new WinPE 1.1&amp;nbsp;Boot Images and importing them into SCCM.&amp;nbsp; The WinPE Boot Images&amp;nbsp;need to be version 1.1 to support deploying Windows Vista SP1 and Windows Server 2008.&amp;nbsp; If you are using the latest version of the Microsoft Deployment Toolkit 2008 with SCCM 2007 integration enabled&amp;nbsp;(v4.1 released in March is the latest), you can&amp;nbsp;use the menu&amp;nbsp;option that MDT adds to the SCCM Boot Images node&amp;nbsp;for creating new boot images and avoid step 3.&lt;/P&gt;
&lt;P&gt;However, if you are not using MDT and want to create new default SCCM&amp;nbsp;boot images, the method documented in step 3&amp;nbsp;of KB 950782 is likely to give you about&amp;nbsp;as much pleasure as a root canal.&amp;nbsp; This method uses WBEMTest, a tool for testing WMI that is built into the OS.&amp;nbsp; If you've used WBEMTest before, the experience is usually something you don't want to repeat.&amp;nbsp; While it is very flexible for testing many WMI options, it is very tedious to use to execute a simple WMI method (as is needed to create new default SCCM boot images).&amp;nbsp; So to alleviate this pain, I used the WMI Code Creator and the SCCM SDK to create a VBScript that turns the long mouse click tedium of WBEMTest into a few second operation.&lt;/P&gt;
&lt;P&gt;To use this script, log on to the SCCM site server as an SCCM administrator.&amp;nbsp; Create a folder that will hold the new boot images.&amp;nbsp; If you are going to import the boot images from this folder, you may want to create it in the location when you keep your package source folders.&amp;nbsp; (The folder from which the WinPE WIM file is imported becomes the boot image package data source.)&amp;nbsp; Copy the ExportDefaultBootImages.vbs (listed below) to a folder on the server&amp;nbsp;and edit the strExportFolder variable to point to the folder you just created.&amp;nbsp; Then run then script from a command prompt with cscript.exe.&amp;nbsp; When the script is finished you will have two sub folders, one containing an x86 boot image and one&amp;nbsp;containing&amp;nbsp;an x64 boot image.&amp;nbsp; You can then either import the images as documented in step 4 of KB 950782&amp;nbsp;from these folders or move them to another location and import from there.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;ExportDefaultBootImages.vbs&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;FONT face="Courier New"&gt;&lt;BR&gt;' Windows Script Host Sample Script&lt;BR&gt;' ------------------------------------------------------------------------&lt;BR&gt;' Copyright (C) 2008&lt;BR&gt;'&lt;BR&gt;' You have a royalty-free right to use, modify, reproduce and distribute&lt;BR&gt;' 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&lt;BR&gt;' have no warranty, obligations or liability for any Sample Application&lt;BR&gt;' Files.&lt;BR&gt;' ------------------------------------------------------------------------&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;FONT face="Courier New"&gt;'This script replaces the procedure in step 3&lt;BR&gt;'of this Microsoft Knowledge Base article:&lt;BR&gt;'http://support.microsoft.com/?kbid=950782&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;FONT face="Courier New"&gt;strExportFolder =&amp;nbsp; "E:\BootImages"&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;FONT face="Courier New"&gt;Set objFSO = CreateObject("Scripting.FileSystemObject")&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;FONT face="Courier New"&gt;'Export x86 boot image&lt;BR&gt;strx86Folder = strExportFolder &amp;amp; "\Default_WAIK_1_1_x86"&lt;BR&gt;If Not objFSO.FolderExists(strx86Folder) Then objFSO.CreateFolder(strx86Folder)&lt;BR&gt;ExportBootImage "x86", strx86Folder &amp;amp; "\WAIK_1_1_boot_image_x86.wim", 1&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;FONT face="Courier New"&gt;'Export x64 boot image&lt;BR&gt;strx64Folder = strExportFolder &amp;amp; "\Default_WAIK_1_1_x64"&lt;BR&gt;If Not objFSO.FolderExists(strx64Folder) Then objFSO.CreateFolder(strx64Folder)&lt;BR&gt;ExportBootImage "x64", strx64Folder &amp;amp; "\WAIK_1_1_boot_image_x64.wim", 1&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New"&gt;
&lt;P mce_keep="true"&gt;&lt;BR&gt;Function GetSiteCode&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetSiteCode = ""&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strComputer = "." &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objWmiSmsNamespace = GetObject("winmgmts:\\" &amp;amp; strComputer &amp;amp; "\root\SMS") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objSmsProviderLoc = objWmiSmsNamespace.InstancesOf("SMS_ProviderLocation")&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each location In objSmsProviderLoc&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If location.ProviderForLocalSite = True Then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetSiteCode = location.SiteCode&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/P&gt;
&lt;P mce_keep="true"&gt;End Function&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;BR&gt;Sub ExportBootImage(strArchitecture, strExportImagePath, intImageIndex)&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strComputer = "." &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objWmiSmsSiteNamespace = GetObject("winmgmts:\\" &amp;amp; strComputer &amp;amp; "\root\SMS\site_" &amp;amp; GetSiteCode) &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Obtain an instance of the the class &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objShare = objWmiSmsSiteNamespace.Get("SMS_BootImagePackage")&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Obtain an InParameters object specific&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' to the method.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objInParam = objShare.Methods_("ExportDefaultBootImage").inParameters.SpawnInstance_()&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Add the input parameters.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objInParam.Properties_.Item("Architecture") =&amp;nbsp; strArchitecture&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objInParam.Properties_.Item("ExportImagePath") =&amp;nbsp; strExportImagePath&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objInParam.Properties_.Item("ImageIndex") =&amp;nbsp; intImageIndex&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Execute the method and obtain the return status.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' The OutParameters object in objOutParams&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' is created by the provider.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set objOutParams = objWmiSmsSiteNamespace.ExecMethod("SMS_BootImagePackage", "ExportDefaultBootImage", objInParam)&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' List OutParams&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wscript.Echo "Out Parameters for " &amp;amp; strArchitecture &amp;amp; " boot image : "&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wscript.echo "ReturnValue: " &amp;amp; objOutParams.ReturnValue&lt;/P&gt;
&lt;P mce_keep="true"&gt;End Sub&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;SPAN lang=EN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-ansi-language: EN"&gt;
&lt;P mce_keep="true"&gt;&lt;U&gt;References&lt;/U&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;How to replace Windows AIK version 1.0 with Windows AIK version 1.1 when you use System Center Configuration Manager 2007&lt;BR&gt;&lt;A href="http://support.microsoft.com/?id=950782"&gt;http://support.microsoft.com/?id=950782&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Automated Installation Kit (AIK) for Windows Vista SP1 and Windows Server 2008&amp;nbsp; (WAIK 1.1)&lt;BR&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=94BB6E34-D890-4932-81A5-5B50C657DE08&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=94BB6E34-D890-4932-81A5-5B50C657DE08&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;TechNet Magazine Utility Spotlight: WMI Code Creator&lt;BR&gt;&lt;A href="http://technet.microsoft.com/en-us/magazine/cc161034.aspx"&gt;http://technet.microsoft.com/en-us/magazine/cc161034.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;System Center Configuration Manager 2007 Software Development Kit (SDK) v4.0&lt;BR&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=064A995F-EF13-4200-81AD-E3AF6218EDCC&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=064A995F-EF13-4200-81AD-E3AF6218EDCC&amp;amp;displaylang=en&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Disclaimer: The information on this site is provided "AS IS" with no warranties, confers no rights, and is not supported by the authors or Microsoft Corporation. Use of included script samples are subject to the terms specified in the &lt;/STRONG&gt;&lt;A href="http://www.microsoft.com/info/cpyright.mspx" target=_blank mce_href="http://www.microsoft.com/info/cpyright.mspx"&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;Terms of Use&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;STRONG&gt;.&lt;/STRONG&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;EM&gt;This post was contributed by &lt;B style="mso-bidi-font-weight: normal"&gt;Michael Murgolo&lt;/B&gt; a Senior Consultant with Microsoft Services, U.S. East Region.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3039469" width="1" height="1"&gt;</description><enclosure url="http://blogs.technet.com/deploymentguys/attachment/3039469.ashx" length="1222" type="application/x-zip-compressed" /><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/Scripts/default.aspx">Scripts</category><category domain="http://blogs.technet.com/deploymentguys/archive/tags/Deployment/default.aspx">Deployment</category></item><item><title>"Up-ping" the uptime of your Lite-Touch server</title><link>http://blogs.technet.com/deploymentguys/archive/2008/03/31/up-ping-the-uptime-of-your-lite-touch-server.aspx</link><pubDate>Mon, 31 Mar 2008 13:10:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3024313</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3024313.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3024313</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3024313</wfw:comment><description>&lt;P&gt;I like the lite-touch installation (LTI) feature of MDT, it think it's great and is very impressive as it allows clients to easily see the benefit that they will gain by using MDT to create and deploy their images.&amp;nbsp; I can go on-site with a customer to demo the product and have a basic MDT server configured to deploy Windows Vista and Office 2007 (both with the most basic of configurations) over the network in their laboratory, all in one day.&amp;nbsp; Admittedly, the setup won't do much else because it lacks all the details but, as a demo, it works well.&amp;nbsp; However, one thing that LTI does not offer is 'high-availability'; something that Systems Center Configuration Manager excels at.&lt;/P&gt;
&lt;P&gt;In one of my previous posts I wrote about using DNS to create 'distribution points'-like behaviour in LTI scenarios.&amp;nbsp; That post got quite a bit of feedback, so with this post I want to 'steal' another Configuration Manager feature so that it can be applied to a LTI scenario, namely, making your MDT server highly available.&amp;nbsp; With this post you will be able to improve the reliability of your deployments by ensuring that your single point of failure (your MDT server) is always available, simply by clustering your MDT distribution share.&amp;nbsp; As before, I once again recommend Systems Center Configuration Manager as the product of choice if you need a highly-available platform for installing your images as it really is the best option available; the content offered in this post could never replace the functionality offered by Systems Center Configuration Manager.&lt;/P&gt;
&lt;P&gt;Windows clustering has been around for many years now, and most people understand how it works; the basic concept is shown in the image below.&amp;nbsp; An active server provides services to the network with a passive server in standby waiting to take over from the active server if it ever stops responding.&amp;nbsp; The change-over, or more correctly called: failover, happens very quick so most people would not even notice that a server has failed.&amp;nbsp; With each version of the Windows Server operating system Microsoft has improved the cluster service, so I will try and stay as generic as possible with this post.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UppingtheuptimeofyourLiteTouchservers_8CD7/image_6.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UppingtheuptimeofyourLiteTouchservers_8CD7/image_6.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=208 alt="a simple diagram showing a typical cluster configuration" src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UppingtheuptimeofyourLiteTouchservers_8CD7/image_thumb_2.png" width=387 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UppingtheuptimeofyourLiteTouchservers_8CD7/image_thumb_2.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;Figure1: a generic diagram showing a typical cluster configuration&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;With this in mind, an excellent way to improve the availability of your MDT server is to copy the &lt;STRONG&gt;distribution$&lt;/STRONG&gt; folder onto a cluster!&amp;nbsp; All your client computers would then connect to the virtual name of the cluster and use the distribution point for the installation of your operating system image, rather than connect to the MDT server.&amp;nbsp; The only change that you would need to make would be to edit the bootstrap.ini file from your MDT configuration in order to include the virtual name of the cluster rather than the hostname of the MDT server; you'll need to make this change manually because MDT will put it's own hostname there by default.&amp;nbsp; Note that even if you installed MDT onto one of the nodes of the cluster, it would still place the hostname of that node into the bootstrap.ini file rather than the cluster virtual name.&amp;nbsp; This is because MDT is not a cluster aware application.&lt;/P&gt;
&lt;P&gt;Example of the bootstrap.ini file for use on a cluster:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;[Settings] &lt;BR&gt;Priority=Default &lt;/P&gt;
&lt;P&gt;[Default] &lt;BR&gt;DeployRoot=\\&lt;EM&gt;MYVIRTUALCLUSTER&lt;/EM&gt;\Distribution$&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You will need to create a cluster&amp;nbsp;shared folder&amp;nbsp;resource that shares the folder as "distribution$", without this part it won't work!&amp;nbsp; Also, you will need to manually &lt;SPAN lang=EN-GB style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Calibri; mso-ansi-language: EN-GB; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;synchronise &lt;/SPAN&gt;any changes you make on the MDT server with the files on the cluster, MDT won't do this for you.&lt;/P&gt;
&lt;P&gt;Finally, one important thing to bear in mind is that, in the event of a failover, any existing deployments *might* fail depending on where they are in the process and what they were doing at the time of failover.&amp;nbsp; If a client computer is applying the WIM image when the active server fails, then the process will also fail.&amp;nbsp; If however, the active server fails over during a point in the deployment process when a client computer was not actually using the deployment point then you &lt;EM&gt;may&lt;/EM&gt; find that the process will continue seamlessly, although your mileage will vary with this as it really is an unknown due to various factors in play during failover.&lt;/P&gt;
&lt;P&gt;In a follow-up post I will explain how to work with the files on the cluster directly from MDT, so that&amp;nbsp;MDT can update the&amp;nbsp;files onto the clusters shared storage without the need for you to copy the files over manually when you make changes.&amp;nbsp; Stay tuned!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&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=3024313" 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>Useful Script Number 2 - Move the Task Sequence Window</title><link>http://blogs.technet.com/deploymentguys/archive/2008/03/19/useful-script-number-2-move-the-task-sequence-window.aspx</link><pubDate>Wed, 19 Mar 2008 13:33:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3015003</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/3015003.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=3015003</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=3015003</wfw:comment><description>&lt;P&gt;Have you ever created a build and had to pop up a message to the user/technician? - or had to start an HTA application to request some kind of user input during the build or deployment process? If you have then you will know that the task sequence window sits centre screen and everything else pops up behind. This is because the task sequence windows is fixed to the top of the Z-order so that no other window can overlap it...&lt;/P&gt;
&lt;P&gt;Recently I had to create an DVD based deployment for a customer where I wrote an HTA application that prompted the user to switch DVDs. I hit this issue where my app was popping up behind the task sequence window and users were missing the prompt - so I set about developing a solution - and the solution I came up with was to move the task sequence window to the top left corner of the screen every time the task sequence starts - I soon found that it wasn't as simple as it initially sounded....&lt;/P&gt;
&lt;P&gt;I set about creating a script in Autoit (&lt;A title=http://www.autoitscript.com/ href="http://www.autoitscript.com/" mce_href="http://www.autoitscript.com/"&gt;http://www.autoitscript.com/&lt;/A&gt;) to move the window to the correct co-ordinates based on current screen resolution. I like to use Autoit for window manipulation tasks as it has a whole raft of inbuilt functions for automating desktop tasks - which usually makes it easier and quicker than writing the equivalent in VB script.&lt;/P&gt;
&lt;P&gt;The Autoit code is listed below:&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Courier&gt;#NoTrayIcon &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Courier&gt;;zCFG-MoveTaskWindow &lt;BR&gt;;Version 2.0 March 2008 &lt;BR&gt;;Reruns itself and returns - only works when compiled &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Courier&gt;If $CmdLine[0] = 0 Then &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Rerun ourself and let this copy return to the task sequencer &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Run('"' &amp;amp; @AutoItExe &amp;amp; '" rerun') &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit &lt;BR&gt;EndIf &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Courier&gt;Sleep(5000)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Time for the first script to return &lt;BR&gt;If WinExists("Systems Management Server") Then &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $size = WinGetPos("Systems Management Server") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mousemove($size[0]+50, $size[1]+50) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MouseClick("left") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WinMove("Systems Management Server", "", 0, 0) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit &lt;BR&gt;Else &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit &lt;BR&gt;EndIf&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Courier&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Courier&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Courier&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The first line &lt;FONT face=Courier&gt;#NoTrayIcon &lt;/FONT&gt;stops the Autoit icon appearing in the system tray when the script runs. The next section:&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Courier&gt;If $CmdLine[0] = 0 Then &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Rerun ourself and let this copy return to the task sequencer &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Run('"' &amp;amp; @AutoItExe &amp;amp; '" rerun') &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit &lt;BR&gt;EndIf &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Courier&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;configures the script to re-start itself after returning control to the task sequencer (i will explain why later in the post) before running the code to carry out the window move - having access to Autoit creator and fellow UK MCS consultant Jon Bennett really helps in these situations :-) and Jon came up with this re-spawning code. &lt;/P&gt;
&lt;P&gt;The final section:&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Courier&gt;Sleep(5000)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Time for the first script to return &lt;BR&gt;If WinExists("Systems Management Server") Then &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $size = WinGetPos("Systems Management Server") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mousemove($size[0]+50, $size[1]+50) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MouseClick("left") &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WinMove("Systems Management Server", "", 0, 0) &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit &lt;BR&gt;Else &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit &lt;BR&gt;EndIf&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;causes the script to pause for 5 seconds before looking for the existence of the task sequence window (using the Autoit function WinExists). The title of the windows is &lt;STRONG&gt;Systems Management Server&lt;/STRONG&gt;, so if found the script gets its position (using the Autoit function WinGetPos). The script then move the mouse to the location of the window +50 pixels on each axis so that the mouse pointer is inside the task sequence window - it then clicks (Autoit function MouseClick) to select the window before the WinMove function moves it to the top left of the screen&lt;/P&gt;
&lt;P&gt;The reason for re-spawning the script is to return control to the task sequence, which in turn means that the compiled executable that Autoit creates from this script can be added to the task sequencer in the same way that any other script is run:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsefulScriptNumber2MovetheTaskSequenceWi_945F/1.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsefulScriptNumber2MovetheTaskSequenceWi_945F/1.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=428 alt=1 src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsefulScriptNumber2MovetheTaskSequenceWi_945F/1_thumb.png" width=522 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/UsefulScriptNumber2MovetheTaskSequenceWi_945F/1_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The script only works when it is compiled so i have added the script (.au3 file) and the compiled Autoit executable (.exe) to the download location below:&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-MoveTaskWindow.zip" frameBorder=0 scrolling=no mce_src="http://cid-7be6feba9e7c999c.skydrive.live.com/embedrowdetail.aspx/DeploymentGuys/zCFG-MoveTaskWindow.zip"&gt;&lt;/IFRAME&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=3015003" 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></item><item><title>Lite-Touch Deployments - Making them a bit more scalable</title><link>http://blogs.technet.com/deploymentguys/archive/2008/03/12/lite-touch-deployments-making-them-a-bit-more-scalable.aspx</link><pubDate>Wed, 12 Mar 2008 12:24:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:2991080</guid><dc:creator>DeploymentGuys</dc:creator><slash:comments>22</slash:comments><comments>http://blogs.technet.com/deploymentguys/comments/2991080.aspx</comments><wfw:commentRss>http://blogs.technet.com/deploymentguys/commentrss.aspx?PostID=2991080</wfw:commentRss><wfw:comment>http://blogs.technet.com/deploymentguys/rsscomments.aspx?PostID=2991080</wfw:comment><description>&lt;P&gt;Take a look at the image below, which is a fairly common scenario for a company; let's call them Contoso.&amp;nbsp; Contoso has multiple offices around the country that all connected to their head office, some with high-speed network connections and others with relatively slow ones.&amp;nbsp; Contoso is planning their Windows Vista rollout which will be driven from their central office, in this example, Madrid.&amp;nbsp; Contoso wants to deploy their Windows Vista image that they created on their MDT server in Madrid but with a lite-touch installation to all their clients nationwide.&lt;/P&gt;
&lt;P&gt;The problem they need to solve is one of distributing their image file to all company workstations without saturating the network at the time of deployment.&amp;nbsp; Unfortunately, they do not have the infrastructure of SMS or Systems Center Configuration Manager which would make this problem fairly trivial, so they need to create a solution that will allow them to deploy their image created in Madrid to all clients without using up all available network bandwidth.&amp;nbsp;&amp;nbsp;&amp;nbsp; The biggest problem that they will have with a lite-touch scenario is that all clients will contact the MDT server directly by hostname (as configured in the file bootstrap.ini that MDT created and placed inside the WinPE image file) to download the corporate WIM image which, in Contoso's case, is 6 Gb in size.&amp;nbsp; This will work fine in the Madrid office because the MDT server is there and there is high-speed network connectivity between the server and the workstations.&amp;nbsp; But when Contoso starts the deployment in their office in Bilbao, which only has a 256kb network connection to Madrid, it will almost certainly fail due to network bandwidth/latency issues.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Beltsandbracesforyourlitetouchservers_5B12/image_3.png" mce_href="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Beltsandbracesforyourlitetouchservers_5B12/image_3.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=329 alt=image src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Beltsandbracesforyourlitetouchservers_5B12/image_thumb.png" width=477 border=0 mce_src="http://blogs.technet.com/blogfiles/deploymentguys/WindowsLiveWriter/Beltsandbracesforyourlitetouchservers_5B12/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;So, how can Contoso deploy their image to their satellite offices without bringing down the network at the same time?&amp;nbsp; (this really does sound like a possible Microsoft MCP question, doesn't it??!!)&lt;/P&gt;
&lt;P&gt;Not too long ago Adam Shepherd wrote a great &lt;A href="http://www.microsoft.com/technet/technetmag/issues/2007/11/ExtendingBDD/default.aspx?loc=en" mce_href="http://www.microsoft.com/technet/technetmag/issues/2007/11/ExtendingBDD/default.aspx?loc=en"&gt;article&lt;/A&gt; about making a BDD server scalable using technologies such as DFS-R and SQL Replication.&amp;nbsp; It really is a good article because I am often asked by clients about this topic, and I have always used Adam's article to show how it can be done.&amp;nbsp; The problem is that some of my clients do not always implement the recommendations in Adam's article as they see it as too complicated, expensive, or do not like the idea of updating the Active Directory schema in order to implement DFS-R.&lt;/P&gt;
&lt;P&gt;Well, there is another possibility that exists which would achieve a similar result and does not require any network or schema changes; &lt;A href="http://support.microsoft.com/kb/842197" mce_href="http://support.microsoft.com/kb/842197"&gt;DNS Round-Robin&lt;/A&gt;.&amp;nbsp; Round-Robin requires the installation of no additional servers, no extra hardware, no extra licenses and probably no changes to any infrastructure/configuration; all it needs to work in this scenario is the simple tick of 2 checkboxes (which are pre-selected with the default configuration of DNS) on the DNS server.&amp;nbsp; In the properties of the DNS server, just make sure that the following two options are selected from the "Advanced" tab:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Enable round robin &lt;/LI&gt;
&lt;LI&gt;Enable netmask ordering &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;You should also double-check that you have "Strict Name Checking" disabled as well.&amp;nbsp; If it isn't you might find that the remote computer refuses any connection made to it via a DNS alias rather than it's real name.&amp;nbsp; The reason for the error is that an attempt was made to access &lt;A href="file://analias/AShare"&gt;\\AnAlias\AShare&lt;/A&gt; using the DNS A record but the actual hostname of that target was "XYZ", and strict name checking was enabled.&amp;nbsp; See &lt;A class="" title=here href="http://support.microsoft.com/kb/281308/" target=_blank mce_href="http://support.microsoft.com/kb/281308/"&gt;here&lt;/A&gt; for more information.&lt;/P&gt;
&lt;P&gt;The first step to get it all setup is to replicate the MDT file share to a server in each of the remote offices.&amp;nbsp; Contoso will need to do this manually, and a good way to do it would be with the command &lt;STRONG&gt;ROBOCOPY source destination /MIR&lt;/STRONG&gt;.&amp;nbsp; A scheduled task could then be set up to update any changes made to the share with this command as well.&amp;nbsp; An alternative to copying the data over the network is to burn it to a DVD and then send the DVD to the remote office.&amp;nbsp; From there someone in the remote office could copy the data from the DVD onto the local server.&amp;nbsp; Afterwards, Contoso creates an A record for each remote server but with the same hostname as the MDT server in Madrid, just with relevant remote server's IP address.&amp;nbsp; That's it!&lt;/P&gt;
&lt;P&gt;To test the round robin configuration, simply use the NSLOOKUP command from any computer in a remote office.&amp;nbsp; If setup correctly, your NSLOOKUP request should always return the IP address of the nearest server, i.e. the server that is hosting the replicated MDT share in the same location as the computer that made the query; if you repeat the NSLOOKUP command, the returned result should always be the same.&amp;nbsp; If not, then a different IP address will be received for each repetition of the NSLOOKUP command.&amp;nbsp; If this is the case then you probably do not have the two checkboxes configured on the DNS server, as mentioned previously.&amp;nbsp; An interesting 'choice' for this setup is that you could even host the MDT share on a Windows XP workstation in a remote office if no server existed and one could not be installed; however, there are 2 major downsides of using a workstation OS rather than a server OS:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Windows XP is limited to 10 concurrent network connections at any one time. &lt;/LI&gt;
&lt;LI&gt;You will certainly see lower network performance from the workstation when compared to a server. &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;If Contoso wish to use PXE to load the WinPE boot image then they will also need to replicate the WDS server as well to each office which introduces other complications and might not make this solution a viable choice.&amp;nbsp; Otherwise, Contoso simply boots each machine from the MDT-generated boot CD, and upon boot WinPE will map a drive using the MDT server's hostname which, when resolved by DNS, will actually be the server on the same subnet that holds a replica of the MDT share.&amp;nbsp; From then on, the process will continue over the local office network and should thus run significantly faster.&lt;/P&gt;
&lt;P&gt;Finally, I would like to add two very important points that will need considering.&amp;nbsp; The first is that Contoso will &lt;EM&gt;&lt;STRONG&gt;still&lt;/STRONG&gt;&lt;/EM&gt; need to replicate the MDT database (assuming one is used) to the remote servers, or they could leave it in the central office and maintain the cost of the network traffic for the database.&amp;nbsp; The amount of data transferred from the DB would be far less than the amount used to deploy the image so this might not be too much of an issue.&amp;nbsp;&amp;nbsp; The second is that DNS round robin is not fault-tolerant.&amp;nbsp; The DNS server will not be aware that any of the remote servers are offline and will continue issuing the IP address of a server regardless of it's status.&amp;nbsp; This would lead to failures in the deployment process for an office if the local resource is not available when an attempt to install a computer was made.&lt;/P&gt;
&lt;P&gt;Alternatively, you could use a MEDIA deployment point and do away completely with the need for replicated the data between offices and what I have just described.&amp;nbsp; This is also a great way of deploying image files created with MDT but the disadvantage is that every time your deployment point changes you will need to recreate and re-distribute all the deployment DVD's as well; which could prove costly and hard to maintain.&amp;nbsp; Using the method outlined here offers more flexibility and, once setup, would require very little administrative effort (you could program a task to replicate only the changes to the remote shares over night when there would be more network bandwidth available).&lt;/P&gt;
&lt;P&gt;In conclusion, what has been (albeit briefly) explained in this post is a useful way of improving the chances of a successful operating system deployment in situations where you need to send large amounts of data over slow or unreliable network connections.&amp;nbsp; My recommendation will always be to use SMS or System Center Configuration Manager if faced with this scenario as they are designed to handle extremely well these situations, and therefore the use of round-robin could never replace the functionality that these technologies provide.&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=2991080" 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></item></channel></rss>