<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Pawan’s Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/pingpawan/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/pingpawan/feed.xml</link>
    <description>All about System Center</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:46:03 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>A brief description of the steps which occurs in a simple SCCM OSD task sequence</title>
      <link>https://docs.microsoft.com/archive/blogs/pingpawan/a-brief-description-of-the-steps-which-occurs-in-a-simple-sccm-osd-task-sequence</link>
      <pubDate>Sun, 11 May 2014 23:34:00 GMT</pubDate>
      <dc:creator><![CDATA[PingPawan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/pingpawan/2014/05/11/a-brief-description-of-the-steps-which-occurs-in-a-simple-sccm-osd-task-sequence/</guid>
      <description><![CDATA[&nbsp;
Hello People,
In continuation to my last blog PXE Deep Dive, I am writing this one next in...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>Hello People,</p>
<p>In continuation to my last blog <a href="/b/pingpawan/archive/2014/01/12/deep-dive-pxe-boot-flow-for-sccm-2007-2012.aspx">PXE Deep Dive</a>, I am writing this one next in the series</p>
<p><span style="color:#000000;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:small;"><em>Before the Task Sequence begins, there are series of steps which occur:</em></span></p>
<p><span style="font-size:small;"><span style="color:#000000;"><span style="font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;"><em>Once the PC boots into WinPE from Boot Media or PXE </em></span>, the</span> machine connects to the Management point to download the policies.</span></p>
<p>Point of failures at this stage are:-</p>
<ol>
<li>MP communication</li>
<li>NIC and storage drivers</li>
</ol>
<p>To verify if the drivers are correct or not, enable Command line support in the boot image.</p>
<p>Once winPE initializes, open Command prompt by pressing F8, type ipconfig.</p>
<p>If you see an IP address assigned to the machine, it can be concluded that PC has the correct NIC drivers.</p>
<p>Next type DISKPART in command prompt hit enter</p>
<p>Type List Disk</p>
<p>If you see the HDD listed there, your storage drivers are OK.</p>
<p>To verify MP communication, go through SMSTS log which is located at X:\windows\Temp\SMSTSLOG</p>
<p>In ConfigMgr 2012, you can directly open the log in WINPE as CMTRACE is&nbsp;included in WINPE and. <span style="color:#000000;"><span style="font-family:Calibri;font-size:medium;">Depending on the architecture of the boot image it is located under</span></span></p>
<p><span style="font-family:Times New Roman;font-size:medium;"> </span><span style="color:black;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;">X:\SMS\BIN\I386\<i>cmtrace</i>.exe or<s>&nbsp;</s> X:\SMS\BIN\x64\<i>cmtrace</i>.exe </span></p>
<p>Once we verify the above are working OK, <span style="color:#000000;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;">assuming there are only optional deployments</span><span style="color:#1f497d;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"> , </span>we should be prompted with the list of task sequences available for that machine.</p>
<p>If the machine has a required&nbsp;task sequences&nbsp;deployment, it will start the task sequences execution.</p>
<p>The first thing the PC&nbsp;will do is to check the task sequences dependencies. i.e. it will verify the&nbsp;distribution point&nbsp;location for all the packages referenced in the task sequence.</p>
<p>Once it gets at least one Distribution&nbsp;point&nbsp;location for all the packages, then only it initiates the Task Sequence execution.</p>
<p>The first thing it does is, it creates a list of steps which it will perform in the entire execution</p>
<p>It does so by parsing the TS as shown in the screenshot</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image001_5944FF63.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image001_5F00_5944FF63.jpg"><img title="clip_image001" style="display:inline;border-width:0px;" alt="clip_image001" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image001_thumb_7984B775.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image001_5F00_thumb_5F00_7984B775.jpg" border="0" height="297" width="761" /></a></p>
<p>The above screenshot shows extract of the steps which the TSmanager will execute. Please notice that this is a truncated log and you may not see your log exactly the same way as you see here.</p>
<p>This log tracks the initial policy download and MP communication. Please note that the log is truncated and only shows the points of interest</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image002_04D80E77.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image002_5F00_04D80E77.png"><img title="clip_image002" style="display:inline;border-width:0px;" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image002_thumb_3C8F2862.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image002_5F00_thumb_5F00_3C8F2862.png" border="0" height="521" width="774" /></a></p>
<p>Contd..</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image003_04551105.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image003_5F00_04551105.png"><img title="clip_image003" style="display:inline;border-width:0px;" alt="clip_image003" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image003_thumb_02D0A299.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image003_5F00_thumb_5F00_02D0A299.png" border="0" height="233" width="788" /></a></p>
<p>Following are the bare minimum steps which you would generally see the Task sequence to deploy an OS :-</p>
<p><strong>Restart in WINPE</strong></p>
<p><span style="font-size:small;">This step is required so that that actual WIM file can be laid down on to the hard drive.<span style="color:#000000;"> T<span style="font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;">his step is only needed when the Task Sequence starts in the full OS and its purpose is to lay down WinPE on the hard drive so it can reboot into WinPE from the hard drive. WinPE is a mini OS for purposes of deploying Windows</span></span></span></p>
<p><span style="color:#000000;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:small;">Logs will always be under X:\Widows\Temp\SMSTSLog. They should ALWAYS be obtained from this location</span></p>
<p><span style="font-family:Times New Roman;font-size:medium;"> <br /></span></p>
<p style="margin:0cm 0cm 12pt 21.55pt;"><span style="color:#000000;font-size:small;"><span style="font-family:Calibri;font-size:medium;">This step does not run when booted from PXE or boot media due to a condition that is placed on it. The condition evaluates the variable SMSTSinWinPE to determine if it is FALSE. If in WinPE, SMSTSinWinPE will evaluate to TRUE. If not in WinPE, SMSTSinWinPE will evaluate to FALSE. Booting from PXE or boot media boots directly in to WinPE so SMSTSinWinPE will evaluate to TRUE, causing the step to be skipped.</span></span></p>
<p><span style="color:#000000;font-size:small;"><span style="font-family:Times New Roman;font-size:medium;"> <br /></span></span></p>
<p>Next is:-</p>
<p><strong>Format and Partition Disk</strong></p>
<p>In this step the HDD is formatted so that OS can be laid down.</p>
<p>The associated executable with this step is OSDDiskPart.exe</p>
<p>Below is the truncated log for Format and partition log.</p>
<p></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image004_5B789E7A.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image004_5F00_5B789E7A.jpg"><img title="clip_image004" style="display:inline;border-width:0px;" alt="clip_image004" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image004_thumb_69DBC2BF.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image004_5F00_thumb_5F00_69DBC2BF.jpg" border="0" height="545" width="782" /></a></p>
<p>This log is truncated and you may not see as is.</p>
<p>The disk is formatted per the settings configured at this step.</p>
<p>In this step, notice that by default from Win7 onwards OS&rsquo;s it actually creates two partitions one which is 350MB in size and other which utilizes&nbsp;100% of the remaining Hard drive. (You can always customize this as per your preference.)</p>
<p></p>
<p style="margin:0cm 0cm 0pt;"><span style="color:#000000;"><span style="font-family:Calibri;font-size:medium;">The &ldquo;System Reserved&rdquo; partition is created so that it can contain the boot files on a separate partition than the Windows partition. This allows additional features such as Bitlocker, WinRE, and recovery tools to be used. Also, the above only applies to BIOS PCs. It does not apply to UEFI PCs which use a completely different partitioning scheme.<br /></span></span></p>
<p>The command&nbsp;that runs in this step is:-</p>
<p><span style="background-color:#ffff00;">Set command line: &quot;X:\windows\system32\diskpart.exe&quot; /s &quot;X:\windows\TEMP\DiskPartScript.txt</span></p>
<p>The text file is immediately&nbsp; deleted after the completion of this step.</p>
<p></p>
<p><strong>Apply Operating System Image</strong></p>
<p>Then drive is wiped excluding C:\_SMSTaskSequence, c:\SMSTSClientCache and %OSDStateStorePath%. Boot files are then copied to root of drive and BCD is written. It then finally saves the initial windows configuration to C:\windows\panther\unattend\unaddend.xml. The component which does all these is ApplyOperatingSystem.</p>
<p>Once the Disk is formatted, the next step is the Apply Operating System task. In this step, the wim file is copied to C:\_SMSTaskSequence\Packages if the download settings for package is &quot;download and run&quot;.</p>
<p><span style="color:#000000;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:small;">The image is applied to the hard drive which basically copies all of the contents in the WIM file to the hard drive.</span></p>
<p><span style="color:#000000;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:small;"><span style="font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;">The image is applied by using wingapi.dll</span><br /></span></p>
<p><span style="font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:small;">Boot files are copied and the BCD is created on the boot partition and not necessarily the Windows partition. This goes back to the System Reserved partition which I clarified on in the Format and Partition Disk step. The System Reserved partition is the boot partition and this is where boot files are copied to and the BCD created.</span></p>
<p><span style="color:#1f497d;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><span style="color:black;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;">It then finally saves the initial windows configuration to %Windir%\panther\unattend\unaddend.xml</span><br /></span></p>
<p><span style="color:#1f497d;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><span style="color:black;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><span style="color:#000000;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;">The associated<b><i> </i></b>executable with this step is ApplyOperatingSystem.exe</span><br /></span></span></p>
<p>Below is another truncated log while OS is getting applied :-</p>
<p><span style="color:#000000;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;">Points of interest are highlighted</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image005_25E742CE.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image005_5F00_25E742CE.png"><img title="clip_image005" style="display:inline;border-width:0px;" alt="clip_image005" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image005_thumb_72F98170.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image005_5F00_thumb_5F00_72F98170.png" border="0" height="565" width="800" /></a></p>
<p>Cont.&hellip;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image006_1B9EDDE4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image006_5F00_1B9EDDE4.png"><img title="clip_image006" style="display:inline;border-width:0px;" alt="clip_image006" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image006_thumb_187155B7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image006_5F00_thumb_5F00_187155B7.png" border="0" height="560" width="808" /></a></p>
<p>Cont&hellip;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image007_677B2626.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image007_5F00_677B2626.png"><img title="clip_image007" style="display:inline;border-width:0px;" alt="clip_image007" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image007_thumb_23F04879.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image007_5F00_thumb_5F00_23F04879.png" border="0" height="212" width="811" /></a></p>
<p><strong>Apply Windows Settings/ Apply Network Settings :</strong></p>
<p>In both these steps, the OS/network specific settings are added to the existing %windir%\panther\unattend.xml file.</p>
<p><span style="color:#000000;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;">The associated<b><i> </i></b>executables with these steps are OSDWinSettings.exe and OSDNetSettings.exe</span></p>
<p>I<span style="font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;">n these two steps the settings are not actually applied to Windows but only added to the unattend.xml file. The settings are not actually applied until the Windows Setup runs during the Setup Windows and ConfigMgr task.</span><span style="color:#000000;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><br /></span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image008_1E1773EA.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image008_5F00_1E1773EA.png"><img title="clip_image008" style="display:inline;border-width:0px;" alt="clip_image008" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image008_thumb_529A153C.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image008_5F00_thumb_5F00_529A153C.png" border="0" height="460" width="802" /></a></p>
<p>&nbsp;<strong>Apply Network settings:-</strong></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image009_436A9CDB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image009_5F00_436A9CDB.png"><img title="clip_image009" style="display:inline;border-width:0px;" alt="clip_image009" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image009_thumb_511C973C.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image009_5F00_thumb_5F00_511C973C.png" border="0" height="271" width="804" /></a></p>
<p></p>
<p><strong>Apply Device Drivers:</strong></p>
<p>In this step, the search is done on entire Drivers catalogue and a list of drivers is prepared which will be installed once the Full OS boots.</p>
<p><span style="font-family:Times New Roman;font-size:medium;"> <br /></span></p>
<p style="margin:0cm 0cm 0pt 21.55pt;"><span style="color:#000000;font-size:small;"><span style="font-family:Calibri;font-size:medium;">The associated<b><i> </i></b>executable with this step is OSDDriverClient.exe.</span></span></p>
<p></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image010_5029071A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image010_5F00_5029071A.png"><img title="clip_image010" style="display:inline;border-width:0px;" alt="clip_image010" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/metablogapi/clip_image010_thumb_23C9A3EB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49-metablogapi/clip_5F00_image010_5F00_thumb_5F00_23C9A3EB.png" border="0" height="245" width="806" /></a></p>
<p>In the above case, the PC was&nbsp;a virtual machine hence no drivers were installed.</p>
<p><strong>Setup Windows And Configmgr:</strong></p>
<p>The Client installation files are copied to C:\_SMSTaskSequence\Packages.<span style="color:red;font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"><span><strong><em>&nbsp;</em></strong><span style="color:#000000;font-size:small;">The boot manager</span></span></span><span style="color:#000000;"><span style="font-family:&#39;Calibri&#39;,&#39;sans-serif&#39;;font-size:11pt;"> is updated to boot into the Windows OS installed at the Apply Operating System task </span>and the machine is rebooted to full blown OS and windows setup is run.&nbsp;In this phase windows and network settings,&nbsp;are actually executed using the unattend.xml file which was created earlier.</span></p>
<p><span style="font-family:Times New Roman;font-size:medium;"> </span><span style="color:#000000;font-size:small;"><span style="font-family:Calibri;font-size:medium;">Before booting out of WinPE and into the full OS, this task creates a SetupComplete.cmd file in the Windows installation under Windows\Setup\Scripts. In this file it adds the following line</span></span></p>
<p><span style="color:#000000;font-size:small;"><span style="font-family:Times New Roman;font-size:medium;"> </span></span><span style="color:#000000;font-size:small;"><span style="font-family:Calibri;font-size:medium;">%windir%\system32\osdsetuphook.exe /execute</span></span></p>
<p><span style="color:#000000;font-size:small;"><span style="font-family:Times New Roman;font-size:medium;"> S</span></span><span style="color:#000000;font-size:small;"><span style="font-family:Calibri;font-size:medium;">etupComplete.cmd is a Windows Setup file that gets executed once Windows Setup completes. In this way, the Task Sequence continues once Windows Setup is complete.</span></span></p>
<p><span style="font-family:Times New Roman;"> <br /></span></p>
<p>Once the&nbsp;task sequence continues, the&nbsp;ConfigMgr client install&nbsp;is completed, if there are additional steps, the&nbsp;task sequence will execute them. e.g. install application, apply software updates.</p>
<p>SMSTS log at this stage moves to C:\_smsTaskSequence. And after the client gets installed , it moves to C:\windows\ccm\logs</p>
<p>If everything goes as expected, the C:\_smstaskSequence folder is deleted and You will have the Operating system ready to use.</p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Deep Dive PXE boot flow for SCCM 2007/2012</title>
      <link>https://docs.microsoft.com/archive/blogs/pingpawan/deep-dive-pxe-boot-flow-for-sccm-20072012</link>
      <pubDate>Sun, 12 Jan 2014 01:06:00 GMT</pubDate>
      <dc:creator><![CDATA[PingPawan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/pingpawan/2014/01/12/deep-dive-pxe-boot-flow-for-sccm-20072012/</guid>
      <description><![CDATA[Deep Dive PXE boot flow for SCCM 2007/2012
Hello All,
I have seen many people do not have their...]]></description>
      <content:encoded><![CDATA[<p><b>Deep Dive PXE boot flow for SCCM 2007/2012</b></p>
<p>Hello All,</p>
<p>I have seen many people do not have their concepts clear about OSD PXE for SCCM. Hence I thought if writing this blog and I tried to elaborate as much as I can on this topic.</p>
<p>Machine does a network boot, it sends a <b>broadcast</b> to entire network with option 60. Both DHCP and WDS/PXE server gets the broadcast. DHCP <b>offers</b> the IP address to the client. But before the client machine requests for the offered IP, it waits for a green signal from WDS. WDS/PXE sever runs a stored procedure, <b>LOOKUPDEVICE</b> for the client machine against SCCM DB. If the machine is found in the DB or If there is an advert for Unknown collection, WDS signals client to proceed with the PXE boot.</p>
<p>Client machine now requests for the IP offered by DHCP and DHCP then acknowledges this IP assignment. Machine finally has an IP address and is ready to proceed further. (DORA completes).</p>
<p><b>Please Note</b></p>
<p>The above scenario is only true if we have the client machine PXE and DHCP all are in same subnet. If any of these 3 are in a separate subnet, necessary arrangement needs to be made so that the Broadcast sent by client could reach to both DHCP and PXE server.</p>
<p>Preferably, we configure IP helpers on the routers so that the broadcast can be forwarded to the DHCP and PXE server in the other subnet. One of the caveats here is if there are any king of security/firewall on the router/switches, proper arrangement needs to be made to allow the traffic.</p>
<p>For instance if DHCP&nbsp;snooping is used, the same&nbsp;needs to be allowed on the router/switches on the network as they potentially block the network traffic in these cases.</p>
<p>&nbsp;</p>
<p>Now after the client machine gets an IP address, It downloads <b>WDSNBP.COM </b>from PXE server.</p>
<p>This file detects the hardware architecture on the machine and this information is later used at the time of boot image download.</p>
<p>&nbsp;</p>
<p><b>Points of failure till this point:- </b></p>
<ul>
<li>Client Machine may not be part of SCCM DB and there is not advert on Unknown collection. This can be tracked in SMSPXE.LOG which is available on PXE service point in MP directory.</li>
<li>Client machine is not in the same subnet as of the PXE and DHCP server. In this situation if the IP helper table is not configured, the broadcast sent by client will not be forwarded to the other subnet.</li>
<li>Ports: 66, 67 and 4011 should be open for IP assignment and WDS file download.</li>
</ul>
<p>&nbsp;</p>
<div>
<p>Let&rsquo;s now look at the logs snippet from SMSPXE.</p>
<p><span style="text-decoration:underline;"><strong>Screenshot from A failed machine and corresponding logs from SMSPXE</strong></span></p>
<p><span style="text-decoration:underline;"><strong><span style="text-decoration:underline;"><strong><b><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/PXE1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49/PXE1.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/01/49/PXE1.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-01-49/PXE1.png" border="0" /></a></b></strong></span></strong></span></p>
<p><span style="text-decoration:underline;"><strong>&nbsp;</strong></span></p>
</div>
<p><span style="background-color:#ffff00;">Client lookup reply: &lt;ClientIDReply&gt;&lt;Identification Unknown=&quot;0&quot; ItemKey=&quot;16777223&quot;</span></p>
<p><span style="background-color:#ffff00;">00:15:5D:0B:02:4F, D4EE23C0-E33F-4AD1-8C11-17058ABE0C4E: device is in the database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SMSPXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1/12/2014 11:13:13 AM&nbsp; 3156 (0x0C54)</span></p>
<p>Client boot action reply: &lt;ClientIDReply&gt;&lt;Identification Unknown=&quot;0&quot; ItemKey=&quot;16777223&quot; ServerName=&quot;&quot; ServerRemoteName=&quot;&quot;&gt;&lt;Machine&gt;&lt;ClientID/&gt;&lt;NetbiosName/&gt;&lt;/Machine&gt;&lt;/Identification&gt;&lt;PXEBootAction LastPXEAdvertisementID=&quot;&quot; LastPXEAdvertisementTime=&quot;&quot; OfferID=&quot;&quot; OfferIDTime=&quot;&quot; PkgID=&quot;&quot; PackageVersion=&quot;&quot; PackagePath=&quot;&quot; BootImageID=&quot;&quot; Mandatory=&quot;&quot;/&gt;&lt;/ClientIDReply&gt;</p>
<p><span style="background-color:#ffff00;">00:15:5D:0B:02:4F, D4EE23C0-E33F-4AD1-8C11-17058ABE0C4E: no advertisements found</span></p>
<p><span style="background-color:#ffff00;">00:15:5D:0B:02:4F, D4EE23C0-E33F-4AD1-8C11-17058ABE0C4E: No boot action. Aborted.</span></p>
<p>00:15:5D:0B:02:4F, D4EE23C0-E33F-4AD1-8C11-17058ABE0C4E: Not serviced.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SMSPXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1/12/2014 11:13:14 AM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3156 (0x0C54)</p>
<p>Client boot action reply: &lt;ClientIDReply&gt;&lt;Identification Unknown=&quot;0&quot; ItemKey=&quot;16777223&quot; ServerName=&quot;&quot; ServerRemoteName=&quot;&quot;&gt;&lt;Machine&gt;&lt;ClientID/&gt;&lt;NetbiosName/&gt;&lt;/Machine&gt;&lt;/Identification&gt;&lt;PXEBootAction LastPXEAdvertisementID=&quot;&quot; LastPXEAdvertisementTime=&quot;&quot; OfferID=&quot;&quot; OfferIDTime=&quot;&quot; PkgID=&quot;&quot; PackageVersion=&quot;&quot; PackagePath=&quot;&quot; BootImageID=&quot;&quot; Mandatory=&quot;&quot;/&gt;&lt;/ClientIDReply&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SMSPXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1/12/2014 11:13:17 AM&nbsp; 3156 (0x0C54)</p>
<p>00:15:5D:0B:02:4F, D4EE23C0-E33F-4AD1-8C11-17058ABE0C4E: no advertisements found&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SMSPXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1/12/2014 11:13:17 AM&nbsp; 3156 (0x0C54)</p>
<p></p>
<p></p>
<div>
<p>&nbsp;================================================================================================================================</p>
<p></p>
</div>
<p><span style="text-decoration:underline;"><strong>Screenshot from a successful PXE boot and corresponding SMSPXE log&hellip;</strong></span></p>
<p><img alt=" " /></p>
<p><span style="background-color:#ffff00;">Client lookup reply: &lt;ClientIDReply&gt;&lt;Identification Unknown=&quot;0&quot; ItemKey=&quot;0&quot; ServerName=&quot;&quot; ServerRemoteName=&quot;&quot;&gt;&lt;Machine&gt;&lt;ClientID/&gt;&lt;NetbiosName/&gt;&lt;/Machine&gt;&lt;/Identification&gt;&lt;/ClientIDReply&gt;</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SMSPXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1/12/2014 11:23:51 AM&nbsp; 3156 (0x0C54)</p>
<p><span style="background-color:#ffff00;">00:15:5D:0B:02:64, 773FBA8A-EB14-453C-9EB1-B8F4657199BD: device is not in the database.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SMSPXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1/12/2014 11:23:51 AM&nbsp; 3156 (0x0C54)</span></p>
<p>Getting boot action for unknown machine: item key: 2046820352&nbsp;&nbsp;&nbsp;&nbsp; SMSPXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1/12/2014 11:23:51 AM&nbsp; 3156 (0x0C54)</p>
<p><span style="background-color:#ffff00;">Client boot action reply: &lt;ClientIDReply&gt;&lt;Identification Unknown=&quot;0&quot; ItemKey=&quot;2046820352&quot; ServerName=&quot;&quot; ServerRemoteName=&quot;&quot;&gt;&lt;Machine&gt;&lt;ClientID&gt;87776601-61c0-45d4-8425-363cf7803315&lt;/ClientID&gt;&lt;NetbiosName/&gt;&lt;/Machine&gt;&lt;/Identification&gt;&lt;PXEBootAction LastPXEAdvertisementID=&quot;&quot; LastPXEAdvertisementTime=&quot;&quot; OfferID=&quot;BLR20000&quot; OfferIDTime=&quot;12/22/2013 8:54:00 AM&quot; PkgID=&quot;BLR00001&quot; PackageVersion=&quot;&quot; PackagePath=&quot;https://MSBLR.MS.LOCAL/SMS_DP_SMSPKG$/CAS00005&quot; BootImageID=&quot;CAS00005&quot; Mandatory=&quot;0&quot;/&gt;&lt;/ClientIDReply&gt;</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SMSPXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1/12/2014 11:23:51 AM&nbsp; 3156 (0x0C54)</p>
<p><span style="background-color:#ffff00;">00:15:5D:0B:02:64, 773FBA8A-EB14-453C-9EB1-B8F4657199BD: found optional advertisement BLR20000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SMSPXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1/12/2014 11:23:51 AM&nbsp; 3156 (0x0C54)</span></p>
<p>Getting boot action for unknown machine: item key: 2046820353&nbsp;&nbsp;&nbsp;&nbsp; SMSPXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1/12/2014 11:23:59 AM&nbsp; 3156 (0x0C54)</p>
<p>Client boot action reply: &lt;ClientIDReply&gt;&lt;Identification Unknown=&quot;0&quot; ItemKey=&quot;2046820353&quot; ServerName=&quot;&quot; ServerRemoteName=&quot;&quot;&gt;&lt;Machine&gt;&lt;ClientID&gt;304cce6c-b4ec-46fc-9f28-98c017b854f8&lt;/ClientID&gt;&lt;NetbiosName/&gt;&lt;/Machine&gt;&lt;/Identification&gt;&lt;PXEBootAction LastPXEAdvertisementID=&quot;&quot; LastPXEAdvertisementTime=&quot;&quot; OfferID=&quot;BLR20000&quot; OfferIDTime=&quot;12/22/2013 8:54:00 AM&quot; PkgID=&quot;BLR00001&quot; PackageVersion=&quot;&quot; PackagePath=&quot;https://MSBLR.MS.LOCAL/SMS_DP_SMSPKG$/CAS00005&quot; BootImageID=&quot;CAS00005&quot; Mandatory=&quot;0&quot;/&gt;&lt;/ClientIDReply&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SMSPXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1/12/2014 11:23:59 AM&nbsp; 3156 (0x0C54)</p>
<p>00:15:5D:0B:02:64, 773FBA8A-EB14-453C-9EB1-B8F4657199BD: found optional advertisement BLR20000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SMSPXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1/12/2014 11:23:59 AM&nbsp; 3156 (0x0C54)</p>
<div>
<p>Looking for bootImage CAS00005&nbsp;&nbsp;&nbsp;&nbsp; SMSPXE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1/12/2014 11:23:59 AM&nbsp; 3156 (0x0C54)</p>
</div>
<p>==============================================================================================================================================================================</p>
<p>&nbsp;</p>
<p>So once client machine architecture detection is completed using WDSNBP.com, it proceeds further with the PXE boot. And it downloads the PXE boot files from PXE server. Depending upon the advertisement Client machine download the PXE boot files. The file downloaded at this step is controlled/ monitored by SMSPXE. SMSPXE runs a stored procedure called <b>getbootaction</b> and depending on the result, it gives the PXE boot files to client.</p>
<p>For Optional advertisement: PXE.COM (User to press F12 to continue with the Network boot)</p>
<p>For Mandatory Adverts: PXEBOOT.n12</p>
<p>If for any reason PXE boot has to aborted, machine downloads abortpxe.com. Possible reasons for aborting PXE boot could be machine is not allowed for PXE boot, Client has already done the PXE boot once and PXE boot flag is set to yes. No advert found for machine in DB. Etc&hellip;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The client machine now downloads the Boot image, bootmgr.exe and BCD store. BootMGR and BCD store are used to initialize the WINPE environment. Boot image downloaded here would be dependent on the result of the architecture detection done earlier by WDSNBP file.</p>
<p>&nbsp;</p>
<p>Once the Boot image and the other two files are downloaded completely, it initializes the WINPE which in itself is a mini OS.</p>
<p><b>NOTE:</b></p>
<p>I have seen a couple of instances where the boot image download fails and you would see the Generic OS boot failure error message. Please do troubleshoot that error message as it is irrelevant to PXE boot. It just means that there is no OS found on the machine.</p>
<p>Once WINPE initializes, it does a DORA again and attain an IP address from DHCP server.<b> In 99% cases the IP address is same as of the initial IP address. What&rsquo;s important to know here is machine retries for the IP address and it&rsquo;s not the one which it had originally while PXE booting</b></p>
<p>Once machine attains the IP address it finds the MP from AD and then connects to MP to download all the policies. And it gets all the policies are downloaded, user will be presented with the option to select the Task sequence. (If machine only has optional adverts)</p>
<p><b>Possible Failures at this stage:-</b></p>
<p><b>Machine reboots the moment WINPE screen appears.</b></p>
<p>Enable command prompt in WINPE and open CMD by hitting F8 once WinPE initializes. Make sure machine has an IP address and the HDD is getting detected. Command which you can run here is IPCONFIG and DISKPART. DISKPART will confirm the presence of storage while ipconfig will confirm network connectivity.</p>
<p>Chances are there that even though these two tests succeeds, the machine still reboots after winPE initialization.</p>
<p>Check if machine is able to find the MP and if yes if the communication is happening OK with MP or not.</p>
<p>Collect SMSTS log to see the detailed error and troubleshoot accordingly.</p>
<p>SMSTS log at this phase will be found at</p>
<p>X:\SMSTSLOG\SMSTS.lOG</p>
<p>X:\WINDOWS\TEMP\SMSTSLOG\SMSTS.LOG</p>
<p>&nbsp;</p>
<p>Once you see the TS execution has started, we conclude PXE boot is working &hellip;</p>
<p>I will cover the TS execution steps in details in my upcoming blog!!!</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>