<?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>Client Management Blog by Dominik Heinz</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/dominikheinz/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/dominikheinz/feed.xml</link>
    <description>Blog about Systems Management, Deployment and Operations.</description>
    <lastBuildDate>Wed, 16 May 2018 10:17:30 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Moving to dominikheinz.net</title>
      <link>https://docs.microsoft.com/archive/blogs/dominikheinz/moving-to-dominikheinz-eu</link>
      <pubDate>Wed, 07 Mar 2012 06:48:00 GMT</pubDate>
      <dc:creator><![CDATA[Dominik Heinz]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominikheinz/2012/03/07/moving-to-dominikheinz-eu/</guid>
      <description><![CDATA[The author Dominik Heinz has moved to:

 

dominikheinz.net]]></description>
      <content:encoded><![CDATA[<span style="font-size: x-large">The author Dominik Heinz </span><span style="font-size: x-large">has <em>m</em></span><span style="font-size: x-large"><em>oved</em> to:</span>

<span style="font-size: x-large;background-color: #ffffff"> </span>

<span style="font-size: xx-large"><a href="https://dominikheinz.net"><span style="background-color: #ffffff"><strong>dominikheinz.net</strong></span></a></span>]]></content:encoded>
    </item>
    <item>
      <title>Deploying Custom .MSU Updates with SCCM (and SCUP)</title>
      <link>https://docs.microsoft.com/archive/blogs/dominikheinz/deploying-custom-msu-updates-with-sccm-and-scup</link>
      <pubDate>Mon, 17 Oct 2011 08:28:12 GMT</pubDate>
      <dc:creator><![CDATA[Dominik Heinz]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominikheinz/2011/10/17/deploying-custom-msu-updates-with-sccm-and-scup/</guid>
      <description><![CDATA[&#160;  The Problem:  Local Publishing of .MSU files by using System Center Updates Publisher (SCUP...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p><strong>The Problem:</strong></p>  <p>Local Publishing of .MSU files by using System Center Updates Publisher (SCUP Version 4.5 or 2011) is not possible. It is not supported by the WSUS product team. Is is not an SCCM issue. The WSUS services is designed to only import and trust .MSU files which are coming from the Microsoft Update Cloud service. And within there are only so-called GDR (General Distribution Release) updates which undergo a more expensive and thorough testing and certification process compared to LDR (Limited Distribution Release) and QFE (Quick Fix Engineering) updates.</p>  <p>However, there are Windows 6.x (Vista, 7, Server 2008, Server 2008 R2) Updates which are shipped in the .MSU format and customers would like to deploy them by using SCCM Software Update Management instead of SCCM Software Distribution. </p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/2402.image_5C7E5F7F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/2402.image_5F00_5C7E5F7F.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/2402.image_thumb_50B8F280.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/2402.image_5F00_thumb_5F00_50B8F280.png" width="535" height="385" /></a></p>  <p><strong></strong></p>  <p><strong>The Solution:</strong></p>  <p>I managed to setup a functioning workaround as follows:</p>  <p><em>Step 1: Download the Update you want from Microsoft.com</em></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/4064.image_0BDCA87F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/4064.image_5F00_0BDCA87F.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/7723.image_thumb_29DAB673.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/7723.image_5F00_thumb_5F00_29DAB673.png" width="537" height="147" /></a></p>  <p>&#160;</p>  <p><em>Step 2: Extract the Updates Contents and locate the .CAB File</em></p>  <p>To extract the update, use the “expand –F:*” command.</p>    <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/4503.image_3523CAB0.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/4503.image_5F00_3523CAB0.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/7711.image_thumb_439EC6D5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/7711.image_5F00_thumb_5F00_439EC6D5.png" width="528" height="192" /></a></p>  <p>Locate the .cab file of the update:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/7217.image_453F6CDC.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/7217.image_5F00_453F6CDC.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/4174.image_thumb_2DC4B8AB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/4174.image_5F00_thumb_5F00_2DC4B8AB.png" width="527" height="119" /></a></p>  <p>This cabinet file is actually the update. All other stuff just serves the WUSA.exe and the WSUS detection logic. As we’re rebuilding that stuff in SCUP, we don’t need it anymore. The .CAB file contains the update and is digitally signed – enough for SCUP.</p>  <p>&#160;</p>  <p><em>Step 3: Create an .EXE file containing the .CAB file and the DISM installation command:</em></p>  <p>Yes, we can use the DISM.exe tool to deploy the update by using “online servicing”. The update is in this case not “installed” to the operating system. It is rather “serviced” to the “servicing stack” (CBS, CSI, trusted installer) of the operating system which has been introduced with Windows 6.x. Normally DISM.exe is used to integrate updates into offline .WIM files. But with the /online parameter, it can also be used on a running OS:</p>  <p><font face="Courier New">dism.exe /online /add-package:&lt;path&gt;Windows6.1-KB917607-x64.cab /quiet /norestart /logpath:c:\917607msu.log /loglevel:2</font></p>    <p>You might want to test the installation prior to packaging the .EXE</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/2845.image_4A7E2DC0.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/2845.image_5F00_4A7E2DC0.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/6746.image_thumb_4456E125.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/6746.image_5F00_thumb_5F00_4456E125.png" width="535" height="134" /></a></p>  <p>Now bundle both, the .CAB file and the DISM install command into an executable file. Make sure that the file is digitally signed (code signing) and that this signature is trusted (trusted publisher) at the clients:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/6558.image_59F119C2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/6558.image_5F00_59F119C2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/1374.image_thumb_04E907C8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/1374.image_5F00_thumb_5F00_04E907C8.png" width="534" height="254" /></a></p>  <p>&#160;</p>  <p><em>Step 4: Create a custom update within SCUP</em></p>  <p>Create a custom update within SCUP and use some simple rules to trigger the update. For Windows 7 update, from my experience, the WIN32_QuickFixEngineering query works fine for all OS updates, even GDR updates:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/0285.image_32A6AAC0.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/0285.image_5F00_32A6AAC0.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/4812.image_thumb_301D7902.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-85-10-metablogapi/4812.image_5F00_thumb_5F00_301D7902.png" width="549" height="267" /></a></p>  <p>&#160;</p>  <p><em>Step 5: Publish, Synchronize, Deploy, Enjoy</em></p>  <p>&#160;</p>  <p><strong>Please Note: </strong>Things posted on Blogs are never official Microsoft support statements. </p>]]></content:encoded>
    </item>
    <item>
      <title>SCCM Report Cannot be Displayed–Error 500</title>
      <link>https://docs.microsoft.com/archive/blogs/dominikheinz/sccm-report-cannot-be-displayederror-500</link>
      <pubDate>Thu, 08 Sep 2011 06:17:58 GMT</pubDate>
      <dc:creator><![CDATA[Dominik Heinz]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominikheinz/2011/09/08/sccm-report-cannot-be-displayederror-500/</guid>
      <description><![CDATA[&#160;  Just a quick note on this case:  If you try to open a SCCM report, you might get an generic...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>Just a quick note on this case:</p>  <p>If you try to open a SCCM report, you might get an generic HTTP 500 error. Most likely, the problem is tied to the different report limitations in both: SCCM and IIS. </p>  <p><strong>A:</strong> The SCCM reporting point has a 10.000 rows limit. This limit can be expanded by changing the registry.You should adjust the registry value on the SMS or SCCM Reporting Point server to allow for returning a larger Row Set. </p>  <p>&#160;</p>  <ol>   <li>i. You can change the limit by modifying the registry on the reporting point machine. </li>    <li>ii. Under the <b>HKEY_LOCAL_MACHINE\Software\Microsoft\SMS\Reporting</b> key, add the DWORD value <b>Rowcount</b> and assign it the value for your desired maximum limit. </li>    <li>iii. The maximum row count in decimal is 32767. </li>    <li>iv. If you need to return more than 32,767 records, you can set the row count to 0xffffffff hexadecimal, which will return all rows. However, this significantly increases the workload on the SMS site database. </li> </ol>  <p><strong>B:</strong> The registry change above will allow you to run reports up to 50.000 rows. If you need more, you have to change the ASP buffer size within the IIS server. </p>  <p>&#160;</p>  <ol>   <li>For IIS6: You need to adjust the AspBufferingLimit setting. The AspBufferingLimit property sets the maximum size of the ASP buffer. The default is approximately 4 MB. To change the default, open %WindowsRoot%\System32\InetSrv\MetaBase.xml and search for “AspBufferingLimit”. Adjust the setting to allow for <b>1 MB per 1000 records</b>. You can make changes to the MetaBase.xml file while IIS is running only if the edit-while-running feature is enabled. Otherwise, you must stop IIS before editing the MetaBase.xml file.</li>    <li>For IIS 7.x: change the setting in the IIS Manager -&gt; ASP -&gt; Limits Properties.</li> </ol>  <p>Did you know? You can get more verbose HTTP error messages within your browser is you go to ‘Internet Options’ –&gt; ‘Advanced’ and disable “Show friendly HTTP error messages”. Because “friendly” in most cases means “500”.</p>]]></content:encoded>
    </item>
    <item>
      <title>SCCM PXE Network Boot Process</title>
      <link>https://docs.microsoft.com/archive/blogs/dominikheinz/sccm-pxe-network-boot-process</link>
      <pubDate>Fri, 18 Mar 2011 07:42:26 GMT</pubDate>
      <dc:creator><![CDATA[Dominik Heinz]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominikheinz/2011/03/18/sccm-pxe-network-boot-process/</guid>
      <description><![CDATA[&#160;  Architecture detection using wdsnbp  A SCCM PXE-Handshake with architecture detection uses...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <h4><a name="_Toc227550492">Architecture detection using wdsnbp</a></h4>  <p>A SCCM PXE-Handshake with architecture detection uses an additional step. Before sending the final bootstrap file, the SCCM server sends out a bootstrap file which has an included architecture detection. The file is called „wdsnbp.com“. This is necessary, because the architecture information provided by the smbios is not very reliable. The wdsnbp bootstrap file sends back a DHCP request reply which contains an additional DHCP option 250. This high option is normally not used by other tools and contains information concerning the architecture of the client system.</p>  <p>&#160;</p>  <h4><a name="_Toc227550493"></a><a name="_Toc227550175">Client pre-boot check and bootfile check</a></h4>  <p>Right after the first contact of the client, die SCCM server checks for the necessary bootfiles. If the bootfiles are not present in the boot-directory (normally Remoteinstall\SMSboot), the server will not send out a DHCP offer. Since the bootfiles are extracted of the WinPE wim files during the startup of the WDS service, you should make sure, that only WinPE WIM files are stored within the SMSPXEIMAGES$ share and not full-os WIM files. </p>  <p>Secondarily the SCCM server checks whether the client exists within the SCCM database. If the client is unknown, the SCCM server will not send out a DHCP offer.</p>  <p>Note, that there has been added an unknown computer support in SCCM 2007 R2:</p>  <p>About Unknown Computer Support for Operating System Deployment</p>  <p><a href="https://technet.microsoft.com/en-us/library/cc431374.aspx">https://technet.microsoft.com/en-us/library/cc431374.aspx</a></p>  <p>The check of the client can be surveilled within the smspxe.log. Important are the stored procedures „lookupdevice“ and „getbootaction“ The first one checks, whether the client is known while the second one checks, what boot-file should be sent:</p>  <p>· Pxeboot.com (user has to press F12 to proceed – optional Advertisement)   <br />· Pxeboot.n12 (TFTP download starts instantly - mandatory Advertisement)    <br />· Abortpxe.com (stops the PXE Boot)</p>  <p>&#160;</p>  <h4><a name="_Toc227550494"></a><a name="_Toc227550176">A SCCM PXE-DHCP handshake looks like that:</a></h4>  <p>DHCP and PXE service run on different machines)</p>  <p>DHCP Discover    <br />· Client broadcast asking for IP address and PXE-capable DHCP service    <br />· DHCP discover package contains option 60    <br />· DHCP discover uses port 67 UDP</p>  <p>SCCM site check   <br />· SCCM server checks, whether client is known (lookupdevice)</p>  <p>DHCP Offer   <br />· Reply of the DHCP server containing IP address offering on port 68 UDP    <br />· Reply of the DHCP or PXE server containing option 60</p>  <p>DHCP Request   <br />· Client broadcast, ready to acknowledge IP address and boot server (port 67 UDP)</p>  <p>DHCP Ack   <br />· Server broadcast, acknowledge clients IP address and lease (port 68 UDP)</p>  <p>DHCP Request   <br />· Client unicast request for options 66 (boot server) and option 67 (boot file) (port 4011 UDP)    <br />· Unicast addresses server which offered option 60</p>  <p>DHCP Ack   <br />· Server ack from PXE server including options 66 and 67 (send WDSNBP)    <br />Start of the bootstrap file “wdsnbp” download using TFTP (UDP 69 and UDP highlevel ports)</p>  <p>DHCP Request   <br />· Client unicast request for options 66 (boot server) and option 67 (boot file) (port 4011 UDP)    <br />· Unicast addresses server which offered option 60    <br />· Contains option 250 with architecture</p>  <p>SCCM site server check   <br />· SCCM server checks for current boot action (getbootaction)</p>  <p>DHCP Ack   <br />· Server ack from PXE server including options 66 and 67 (send pxeboot.n12 for example)</p>  <p>TFTP download of bootfile   <br />TFTP download of WinPE</p>  <p>Screenshot of a sample boot:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/8524.image_4A6AD36D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/8524.image_5F00_4A6AD36D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/5808.image_thumb_76E3DD86.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/5808.image_5F00_thumb_5F00_76E3DD86.png" width="464" height="341" /></a></p>]]></content:encoded>
    </item>
    <item>
      <title>DHCP &amp; PXE basics</title>
      <link>https://docs.microsoft.com/archive/blogs/dominikheinz/dhcp-pxe-basics</link>
      <pubDate>Fri, 18 Mar 2011 07:04:54 GMT</pubDate>
      <dc:creator><![CDATA[Dominik Heinz]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominikheinz/2011/03/18/dhcp-pxe-basics/</guid>
      <description><![CDATA[&#160;  A DHCP Handshake runs through the following steps:  DHCP The complete traffic runs on UDP...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <h4><a name="_Toc227550488">A DHCP Handshake runs through the following steps:</a></h4>  <p>DHCP The complete traffic runs on UDP User Datagram Protocol (OSI Layer 4)</p>  <p>Discover    <br />· Client broadcast: asks for IP address    <br />· In the network trace you see a call from 0.0.0.0 to 255.255.255.255    <br />· Runs on port 67 UDP</p>  <p>DHCP Offer   <br />· DHCP server response including IP address for client    <br />· Runs on port 68 UDP</p>  <p>DHCP Request   <br />· Acknowledgement (ack) of the client to the server    <br />· Client requests server ack</p>  <p>DHCP Ack   <br />· Acknowledgement of the IP ownership of the client</p>  <p>&#160;</p>  <h4><a name="_Toc227550489"></a><a name="_Toc227550172">Where PXE comes into play:</a></h4>  <p>This DHCP handshake has nothing to do with PXE at this point. PXE stands for pre-boot execution environment and is a rather old technology. It is in-deph defined and documented by Intel:</p>  <p><a href="https://download.intel.com/design/archives/wfm/downloads/pxespec.pdf">https://download.intel.com/design/archives/wfm/downloads/pxespec.pdf</a></p>  <p>PXE does not come with a dedicated boot protocol. It is simply DHCP packets extended with additional DHCP options. It’s formerly known as the bootstrap protocol. If a PXE-enabled network card sends out an DHCP discover package, it will add DHCP option 60, which includes the string “PXEClient:Arch:xxxxx:UNDI:yyyzzz”. Then it waits for DHCP offers. </p>  <p>It will only respond if it gets a DHCP offer including option 60 which means: I am PXE capable and able to send out boot server and boot file information.</p>  <p>The DHCP offer can be splitted into two independent packages, coming from different servers. The DHCP server can send out the DHCP offer containing the clients IP address and the PXE server can send out the DHCP offer containing the option 60.</p>  <p>The PXE client will wait for all needed information up to 60 seconds. DHCP Discover will be retried four times. The four timeouts are 4, 8, 16 and 32 seconds respectively. If the client gets the offer within this timeout, it will proceed with the DHCP request. If not, it will stop with a PXE-MOF error.</p>  <p>&#160;</p>  <h4><a name="_Toc227550490"></a><a name="_Toc227550173">A PXE-DHCP Handshake looks like the following:</a></h4>  <p>(DHCP and PXE service run on different machines)</p>  <p>DHCP Discover    <br />· Client broadcast asking for IP address and PXE-capable DHCP service    <br />· DHCP discover package contains option 60    <br />· DHCP discover uses port 67 UDP</p>  <p>DHCP Offer   <br />· Reply of the DHCP server containing IP address offering on port 68 UDP    <br />· Reply of the DHCP or PXE server containing option 60</p>  <p>DHCP Request   <br />· Client broadcast, ready to acknowledge IP address and boot server (port 67 UDP)</p>  <p>DHCP Ack   <br />· Server broadcast, acknowledge clients IP address and lease (port 68 UDP)</p>  <p>DHCP Request   <br />· Client unicast request for options 66 (boot server) and option 67 (bootstrap file) (port 4011 UDP)    <br />· Unicast addresses server which offered option 60</p>  <p>DHCP Ack   <br />· Server ack from PXE server including options 66 and 67</p>  <p>Start of the bootstrap file download using TFTP (UDP 69 and UDP high level ports)</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/8738.image_3C5E59CA.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/8738.image_5F00_3C5E59CA.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/4048.image_thumb_51F89267.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/4048.image_5F00_thumb_5F00_51F89267.png" width="622" height="89" /></a></p>  <p>Screenshot: normal PXE boot</p>  <p>You can see in the screenshot that:   <br />· DHCP offers come from two different machines (.2 is the DHCP, .1 is the PXE host)     <br />· The last 2 steps run using unicast    </p>]]></content:encoded>
    </item>
    <item>
      <title>Coexistence of Altiris and SCCM PXE Servers Within The Same Network</title>
      <link>https://docs.microsoft.com/archive/blogs/dominikheinz/coexistence-of-altiris-and-sccm-pxe-servers-within-the-same-network</link>
      <pubDate>Wed, 02 Mar 2011 08:38:05 GMT</pubDate>
      <dc:creator><![CDATA[Dominik Heinz]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominikheinz/2011/03/02/coexistence-of-altiris-and-sccm-pxe-servers-within-the-same-network/</guid>
      <description><![CDATA[&#160;  The question is: Is it possible to have an Altiris and an SCCM PXE server within the same...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>The question is: Is it possible to have an Altiris and an SCCM PXE server within the same network with the target to serve some clients with Altiris and others with SCCM?</p>  <p>The answer is: Yes, but not easy.</p>  <p>The problem is that both systems are sending out custom bootstrap files that have to APIs to hook on. The Altiris server sends out a bootstrap file which ships a gui. The gui then shows a selection menu containing the available bootstrap images. The SCCM server does something quite similar. It sends out a bootstrap file, which detects the target clients architecture (wdsnbp) and then proceeds with an appropriate second bootstrap file.</p>  <p><strong>Thus, what you have to do is to take over control on the FIRST DHCP offer sent to the client.</strong></p>  <p>To accomplish this, you need some sort of decision engine. Technically there are some options:</p>  <p><strong>Option 1: DHCP as decision engine:</strong></p>  <p>You could use DHCP options 66+67 as PXE-referrals if you are able to change them in a dynamic manner based on MAC-addresses. To accomplish this, you would need to import all machines from SCCM and Altiris databases into a new DHCP database. Then, on every DHCP Discover request, you would query the DHCP database for the MAC address and answer the client with the correct DHCP options pointing the client to the appropriate PXE server – either SCCM or Altiris. This contruct requires network programming skills when it comes to use dynamic DHCP options. I’ve implemented it once with a colleague and I can say – it works! It was a custom network daemon attached to a Linux DHCP…</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/8358.image_00FC9571.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/8358.image_5F00_00FC9571.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/7384.image_thumb_4C7BC328.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/7384.image_5F00_thumb_5F00_4C7BC328.png" width="519" height="412" /></a></p>  <p>&#160;</p>  <p><strong>Option 2: Split the clients into dedicated vlans:</strong></p>  <p>Well, this is easy. And it’ll work because DHCP and PXE offer do not need to come from the same machine.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/3000.image4_705474B5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/3000.image4_5F00_705474B5.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/5241.image4_thumb_0DE64FB5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/5241.image4_5F00_thumb_5F00_0DE64FB5.png" width="519" height="386" /></a></p>  <p>&#160;</p>  <p><strong>Option 3: Control the PXE server reply behaviour.</strong></p>  <p>If SCCM 2007 does not know a client machine (and does not support unknown computers), it does not send out an DHCP offer. I’m not sure if Altiris supports the same behaviour, but it should. In this scenario, you need to prestage all clients EITHER to Altiris OR to SCCM. Then, on a client boot, the client will query the DHCP and both PXEs and will only get an DHCP offer from the correct PXE server. It is absolutely crucial that you do NOT configure DHCP options in this scenario. If you would, then the DHCP would always answer. I’ve one customer who has implemented this by using two independent SCCM servers.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/1121.image_0AF0EB02.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/1121.image_5F00_0AF0EB02.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/0550.image_thumb_5AE69980.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/0550.image_5F00_thumb_5F00_5AE69980.png" width="515" height="400" /></a></p>]]></content:encoded>
    </item>
    <item>
      <title>Disk Alignment on Windows 7 for normal disks and SSDs</title>
      <link>https://docs.microsoft.com/archive/blogs/dominikheinz/disk-alignment-on-windows-7-for-normal-disks-and-ssds</link>
      <pubDate>Thu, 27 Jan 2011 04:08:00 GMT</pubDate>
      <dc:creator><![CDATA[Dominik Heinz]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominikheinz/2011/01/27/disk-alignment-on-windows-7-for-normal-disks-and-ssds/</guid>
      <description><![CDATA[&nbsp;
For RAID Systems:
The alignment topic is only relevant when using stripe-sets of disk for...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p><b><span style="font-family: Calibri;">For RAID Systems:</span></b></p>
<p><span style="font-family: Calibri;">The alignment topic is only relevant when using stripe-sets of disk for example within a software or hardware raid. What needs to be <b>aligned</b> is the starting location of the partition and the stripe unit boundary in the disk partition that is created on the RAID. If these are not aligned, a volume cluster may be created over a stripe unit boundary instead of next to the stripe unit boundary. This is because Windows uses a factor of 512 bytes to create volume clusters. This behavior causes a misaligned partition. When accessing the volume cluster which is spanning two different stripe units, the IO controller needs to use two I/O &ndash; requests instead of one which could lead to a performance impact of 20-40 % on large disk arrays with heavy load (SQL Cluster&hellip;)</span></p>
<p><span style="font-family: Calibri;">Not all hardware or software array controllers allow the administrator to choose a stripe unit size; some might provide only a limited set of options. For example, the Windows built-in volume manager for dynamic disks (Dmio.sys) has a fixed stripe unit size of 64 KB. Thus as Windows reserves only the first 63 sectors for the MBR and not the first 64, every 8<sup>th</sup> cluster is going the span two stripes: (alignment.jpg)</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/4212.clip_image001_5393876C.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/4212.clip_5F00_image001_5F00_5393876C.png"><span style="font-family: Calibri;"><img height="213" width="856" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/5807.clip_image001_thumb_1D2213C3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/5807.clip_5F00_image001_5F00_thumb_5F00_1D2213C3.png" alt="clip_image001" border="0" title="clip_image001" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /></span></a></p>
<p><span style="font-family: Calibri;">To work around this issue specify a starting offset of 2,048 sectors (1 megabyte). A starting offset of 2,048 sectors covers most stripe unit size scenarios. This is the default for windows Vista and windows 7 and also adds support for GPT (guid partition tables)</span></p>
<p><span style="font-family: Calibri;">Sources:</span></p>
<p><span style="font-family: Calibri;">You cannot install Windows XP successfully after you use Windows Vista or Windows PE 2.0 to create partitions on a hard disk: </span><a href="https://support.microsoft.com/kb/931760"><span style="font-family: Calibri;">https://support.microsoft.com/kb/931760</span></a></p>
<p><span style="font-family: Calibri;">Disk Subsystem Performance Analysis for Windows: </span><a href="https://www.microsoft.com/whdc/archive/subsys_perf.mspx"><span style="font-family: Calibri;">https://www.microsoft.com/whdc/archive/subsys_perf.mspx</span></a></p>
<p>&nbsp;</p>
<p><b><span style="font-family: Calibri;">Talking of SSDs:</span></b></p>
<p><span style="font-family: Calibri;">Generally speaking SSDs do have a limited number of possible write cycles. Thus, any application on any operating system may cause issues, if it causes intense write load.&nbsp; Most of the current crop of SSD&rsquo;s have decent wear leveling algorithms. As long as you disable the auto (partial) defrag and memory prefetch, then you should be fine for the OS use.&nbsp; </span></p>
<p><span style="font-family: Calibri;">Windows 7 will add additional benefit to the use of SSDs, as it configures the partition with an disk alignment, that is optimized for best performance. An additionally supports the new &ldquo;trim&rdquo; command:</span></p>
<p><span style="font-family: Calibri;"><strong>The purpose of Trim Attribute:</strong></span><span style="font-family: Calibri;"><br />File deleting happens in a file system all time, but the information related to the deleted file only kept in OS, not to device. As a result, a device treats both valid data and invalid data(deleted file) in its storage media the same way, all necessary operations keeping data alive are applied. For example, background defect management and error recovery process are used for HDD. Merge, wear leveling and erase are applied to SSD. OS&rsquo;s process, such as format, Defragger, Recycle bin, temp file deleting and Paging can produce a considerable amount of deleted file. By telling device the deleted file information as invalid data, the device can reduce its internal operation on all invalid data as self-optimization.</span></p>
<p>
<p>Source: <a href="https://t13.org/Documents/UploadedDocuments/docs2008/e07154r6-Data_Set_Management_Proposal_for_ATA-ACS2.doc">https://t13.org/Documents/UploadedDocuments/docs2008/e07154r6-Data_Set_Management_Proposal_for_ATA-ACS2.doc</a></p>
<p>That means in Windows XP you should</p>
</p>
<p>&nbsp;</p>
<p><span style="font-family: Calibri;"></span></p>
<p><span style="font-family: Calibri;">- Disable the defrag</span></p>
<p><span style="font-family: Calibri;">- Disable prefetch </span><a href="https://msdn.microsoft.com/en-us/library/ms940847(WinEmbedded.5).aspx"><span style="font-family: Calibri;">https://msdn.microsoft.com/en-us/library/ms940847(WinEmbedded.5).aspx</span></a></p>
<p><span style="font-family: Calibri;"><strong>- Set partition alignment: <br /></strong>NAND flash storage devices are functionally different from traditional hard disk drives in three ways: physical structure, logical structure, and bit erase operation. The logical structure of SSDs differs from tradition hard disk drives because they are built upon pages, which are a given number of bytes (typically 2 KB or 4 KB), and blocks, which are a given number of pages. When the user wants to erase (re-program or write-erase) a given set of bits in any block, the entire block must be erased. This particular anomaly is directly associated with the physics of how NAND works at the die level. If an operating system or data partition is not properly page aligned, there are undesirable consequences. Specifically, if the offset value where the partition begins does not line up with a given page boundary, the SSD flash management system is burdened with extra overhead each time there is a request to perform an erase data operation.</span></p>
<p><span style="font-family: Calibri;">If you wish to use the align parameter in the DiskPart tool, the correct value should be 1 MB for SSDs with page sizes up to 4 KB, and 2 MB for SSDs with a page sizes from 4 KB to 16 KB.</span></p>
<p><span style="font-family: Calibri;">Guidelines for Designing Small Notebook PCs for Windows XP&mdash;Version 2.0 - 18</span></p>
<p><span style="font-family: Calibri;">The following is an example of the use of the DiskPart (6.0.6002) tool on a 16-GB SSD with a 4-KB page size, where the align parameter is specified: X:\windows\system32\DiskPart.exe DISKPART&gt; Select Disk 0 DISKPART&gt; Create Partition Primary Align=1024 DISKPART&gt; Exit</span></p>]]></content:encoded>
    </item>
    <item>
      <title>How to save and restore a single folder using ConfigMgr and USMT</title>
      <link>https://docs.microsoft.com/archive/blogs/dominikheinz/how-to-save-and-restore-a-single-folder-using-configmgr-and-usmt</link>
      <pubDate>Thu, 28 Oct 2010 05:32:03 GMT</pubDate>
      <dc:creator><![CDATA[Dominik Heinz]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominikheinz/2010/10/28/how-to-save-and-restore-a-single-folder-using-configmgr-and-usmt/</guid>
      <description><![CDATA[1. Download USMT 3.0.1 Package from...]]></description>
      <content:encoded><![CDATA[<p>1. Download USMT 3.0.1 Package from <a href="https://www.microsoft.com/downloads/en/details.aspx?FamilyID=799ab28c-691b-4b36-b7ad-6c604be4c595">https://www.microsoft.com/downloads/en/details.aspx?FamilyID=799ab28c-691b-4b36-b7ad-6c604be4c595</a></p>  <p>2. Install USMT Package onto a client operating system. Please note: The installation on a Server 2008 is not supported and will fail: USMT fails to install on Windows Server <a href="https://support.microsoft.com/kb/959066">https://support.microsoft.com/kb/959066</a></p>  <p>3. After successful installation, copy the “USMT301” folder within c:\program files to your SCCM Server. In my example it’s volume e:</p>  <p>4. On the USMT package you will find 3 XML files which are used to capture user, system and application settings:   <br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/1033.clip_image001_75FD9BDC.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/1033.clip_5F00_image001_5F00_75FD9BDC.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/0550.clip_image001_thumb_403830B5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/0550.clip_5F00_image001_5F00_thumb_5F00_403830B5.png" width="340" height="162" /></a></p>  <p>5. These files are used by USMT normally. But as we only need a single folder to capture, we’ll add a additional 4<sup>th</sup> file in this case called usmt_temp.xml    <br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/5340.clip_image002_67AEFD1F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/5340.clip_5F00_image002_5F00_67AEFD1F.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/1067.clip_image002_thumb_5F4B27C8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/1067.clip_5F00_image002_5F00_thumb_5F00_5F4B27C8.png" width="343" height="97" /></a></p>  <p>6. This XML file will reference only the directory needed on the client:</p>  <p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</p>  <p>&lt;migration urlid=&quot;https://www.microsoft.com/migration/1.0/migxmlext/test&quot;&gt;</p>  <p>&lt;component type=&quot;Documents&quot; context=&quot;System&quot;&gt;</p>  <p>&lt;displayName&gt;Component to migrate TK speciffic docs/settings&lt;/displayName&gt;</p>  <p>&lt;role role=&quot;Data&quot;&gt;</p>  <p>&lt;rules&gt;</p>  <p>&lt;include&gt;</p>  <p>&lt;objectSet&gt;</p>  <p>&lt;pattern type=&quot;File&quot;&gt; e:\devp\* [*]&lt;/pattern&gt;</p>  <p>&lt;/objectSet&gt;</p>  <p>&lt;/include&gt;</p>  <p>&lt;/rules&gt;</p>  <p>&lt;/role&gt;</p>  <p>&lt;/component&gt;</p>  <p>&lt;/migration&gt;</p>  <p>7. Install and Configure a state migration point on the ConfigMgr server if not done already. You need to provide a folder where the clients will temporarily store their captured data:   <br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/2541.clip_image004_584B7543.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/2541.clip_5F00_image004_5F00_584B7543.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/6761.clip_image004_thumb_78A30535.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/6761.clip_5F00_image004_5F00_thumb_5F00_78A30535.jpg" width="265" height="293" /></a></p>  <p>8. Create a package containing the USMT301 folder. Use defaults for all settings and select “this package contains source files. As source files select the e:\USMT301 folder created previously. Don’t forget to place the package onto the distribution points.</p>  <p>9. Create a custom task sequence containing the steps:</p>  <p>a. Request State Store (select capture state)   <br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/6747.clip_image006_51F478E8.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/6747.clip_5F00_image006_5F00_51F478E8.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image006" border="0" alt="clip_image006" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/1067.clip_image006_thumb_0882242D.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/1067.clip_5F00_image006_5F00_thumb_5F00_0882242D.jpg" width="271" height="112" /></a></p>  <p>b. Capture User State (important! Put in the file-name of the created XML!)   <br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/8233.clip_image008_66B64B9B.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/8233.clip_5F00_image008_5F00_66B64B9B.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image008" border="0" alt="clip_image008" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/1070.clip_image008_thumb_15B88773.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/1070.clip_5F00_image008_5F00_thumb_5F00_15B88773.jpg" width="276" height="235" /></a></p>  <p>c. Release State Store</p>  <p>10. Place these 3 steps at the very beginning of you task sequence.</p>  <p>11. The files should get captured to your StateMig Point (If you the the error 0x00002024 while requesting the state store, please uninstall update <a href="https://support.microsoft.com/kb/974571">https://support.microsoft.com/kb/974571</a> and try again. This is a known issue and Microsoft is working on it)    <br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/4532.clip_image010_4CB265AC.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/4532.clip_5F00_image010_5F00_4CB265AC.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010" border="0" alt="clip_image010" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/4520.clip_image010_thumb_26700C54.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/4520.clip_5F00_image010_5F00_thumb_5F00_26700C54.jpg" width="285" height="66" /></a></p>  <p>12. To restore the files, add another 3 steps at the end of the task sequence whilst using the “restore” tasks and not the capture tasks.   <br /><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/6663.clip_image012_0FCDBE0D.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/6663.clip_5F00_image012_5F00_0FCDBE0D.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image012" border="0" alt="clip_image012" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/8345.clip_image012_thumb_542DAF4C.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/8345.clip_5F00_image012_5F00_thumb_5F00_542DAF4C.jpg" width="288" height="120" /></a></p>]]></content:encoded>
    </item>
    <item>
      <title>How to Measure Update Installation Time</title>
      <link>https://docs.microsoft.com/archive/blogs/dominikheinz/how-to-measure-update-installation-time</link>
      <pubDate>Thu, 14 Oct 2010 13:03:21 GMT</pubDate>
      <dc:creator><![CDATA[Dominik Heinz]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominikheinz/2010/10/14/how-to-measure-update-installation-time/</guid>
      <description><![CDATA[Challenges When Measuring Update Installation Time  In order to measure the time needed to install...]]></description>
      <content:encoded><![CDATA[<h3><a name="_Toc222215325"></a><a name="_Toc268524019">Challenges When Measuring Update Installation Time</a></h3>  <p>In order to measure the time needed to install all necessary updates, an administrator needs to know the following information:</p>  <p>1. How many updates will be installed?</p>  <p>2. When have the update installations been started?</p>  <p>3. Is there additional time needed for downloading the update?</p>  <p>4. How long does it take to install specific updates?</p>  <p>5. How can I see that an Update has been installed?</p>  <p>These questions will be discussed in the following chapters. Additionally it will be shown, whether these factors can be measured using a KPI and how.</p>  <p>&#160;</p>  <h4><a name="_Toc268524020">How many updates will be installed?</a></h4>  <p>The number of updates that are applicable for a Windows XP machine is growing with every month. Each month on patch Tuesday, additional around 3-12 Updates are being released for Windows XP and its components. This means that the number of updates and thus the installation time is increasing with every month. If known updates are being applied to the base image, this number of updates on the other hand is decreasing. </p>  <p>In order to measure the update installation time using a KPI the measuring tool would need to have the information, when the last update of the installation chain has been reached. Also, the reference numbers for measurement have to be adjusted every time an update is added (new update) or removed (update added to base image). </p>  <p>&#160;</p>  <h4><a name="_Toc268524021">When have the update installations been started?</a></h4>  <p>The start of an update installation process can be triggered by many different tools. If the windows update Agent starts the update installation, a matching start-string is published to the windowsupdate.log. If any other tool starts off the installation, this information may or may not appear in some log file. In any case the beginning of an update installation is not published to the windows event viewer. Only the successful installation is published. </p>  <p>In order to measure the update installation time using a KPI, the start information of the update installation would have to be published by the tool, which triggers the installation. This information is not provided by windows. </p>  <p>&#160;</p>  <h4><a name="_Toc268524022">Is there additional time needed for downloading the update?</a></h4>  <p>Update, that have to be applied on a system have to be downloaded first normally. If the Windows client is connected to a windows update service, the clients need to download the updates using BITS. If the client is installing the update directly from a share or distribution point (SCCM), the downloads will happen using SMB. The download time of the update is dependent on the following factors:</p>  <p>- Download technology (BITS / SMB)</p>  <p>- Connection Performance (LAN / VPN)</p>  <p>- Update sizes </p>  <p>- Number of updates</p>  <p>- User interference (download disruption, removed cable, hibernating or sleeping clients, unstable wireless connection, unstable UMTS connection etc…)</p>  <p>In order to measure the update installation time using a KPI, the measuring system needs to be aware of these factors that strongly impact the download time.</p>  <p>&#160;</p>  <h4><a name="_Toc268524023">How long does it take to install specific updates?</a></h4>  <p>Most of the monthly security updates commit a minor change to Windows or the Internet Explorer. Mostly, a dll is getting replaced or some functions are changed or blocked (for example activeX killbits). However, some update commit major changes to the system like installing or changing several updates, fixing .net settings or even updating whole components like .net service pack or a new version of IE. For security reasons, Microsoft will not publish the information on what exactly is changed within an update and what not. It’s fact that every update has a different installation time, because they are committing different changes to the OS or some other component. Additionally, the client’s hardware performance (CPU, Disk), the user behavior (disruption, hibernation, working whilst installing updates,…) and the system configuration (more software installed means longer installation time due to the applicability scanning) impacts the update installation time. </p>  <p>In order to measure the update installation time using a KPI, the measuring system needs to be aware of these factors that strongly impact the installation time.</p>  <p>&#160;</p>  <h4><a name="_Toc268524024">How can I see that an Update has been installed?</a></h4>  <p>The Bulletin Installation is visible with timestamp within the EventVWR:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/4336.image_09112355.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/4336.image_5F00_09112355.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/0842.image_thumb_16273B01.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/0842.image_5F00_thumb_5F00_16273B01.png" width="344" height="383" /></a> </p>  <p>If the update has been installed using the windowsupdate agent, the installation succession event is also visible within the event log:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/1512.image_4538DAFE.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/1512.image_5F00_4538DAFE.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/3286.image_thumb_5D88A2C1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/3286.image_5F00_thumb_5F00_5D88A2C1.png" width="339" height="384" /></a> </p>  <p>Additionally, on windows XP, a log file with the name of the knowledge base article is created under %windir%:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/1055.image_46E592D3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/1055.image_5F00_46E592D3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/6761.image_thumb_17374E7A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/6761.image_5F00_thumb_5F00_17374E7A.png" width="630" height="72" /></a> </p>  <p>IF the update was installed using the WindowsUpdate agent, the update will also be shown within the Windows-Update.log:</p>  <blockquote>   <p>2010-06-23 01:35:29:373 3280 2a4 Handler :::::::::::::      <br />2010-06-23 01:35:29:373 3280 2a4 Handler :: START :: Handler: Windows Patch Install       <br />2010-06-23 01:35:29:373 3280 2a4 Handler :::::::::       <br />2010-06-23 01:35:29:373 3280 2a4 Handler : Updates to install = 1       <br />2010-06-23 01:35:29:373 3280 2a4 Handler : Installing update {E8714A48-2007-48F5-B7BF-2F33E0C81EDA}.102       <br />2010-06-23 01:35:29:383 3280 e44 Handler Installing with parameters=-q -z -er, sandbox=C:\WINDOWS\SoftwareDistribution\Download\a4c07d9275eb613d842cb1e140d8a426.       <br />2010-06-23 01:35:34:370 896 ba8 Report REPORT EVENT: {A685CFA7-61E7-481D-9734-D54ADF55703D} 2010-06-23 01:35:29:363-0700 1 184 101 {23491AFE-537E-4684-9D10-895516D6FAE7} 104 0 WindowsUpdate Success Content Install Installation successful and restart required for the following update: Security Update for Windows XP (KB980218)       <br />2010-06-23 01:35:36:422 3280 e44 Handler Install completed with 0x0.       <br />2010-06-23 01:35:36:422 3280 2a4 Handler : Install completed: result type = 0x1, installer error = False, error = 0x0, disabled until reboot = No, reboot required = No       <br />2010-06-23 01:35:36:422 3280 2a4 Handler :::::::::       <br />2010-06-23 01:35:36:422 3280 2a4 Handler :: END :: Handler: Windows Patch Install       <br />2010-06-23 01:35:36:422 3280 2a4 Handler :::::::::::::</p> </blockquote>  <h3>&#160;</h3>  <h3><a name="_Toc268524025">Opportunities When Measuring The Update Installation Time</a></h3>  <h4><a name="_Toc268524026">Setting Timestamps Using Chained Tasks</a></h4>  <p>In order to measure the update installation time, a chain of tasks would be needed containing a task running right before the update installation and a task running right after the update installation. This chain of tasks would also have to trigger the update installation and collect the installation success messages. </p>  <p>Such a chain of tasks could look like this: (Model 1)</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/2860.image_440C65BB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/2860.image_5F00_440C65BB.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/3542.image_thumb_571D6C9A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/3542.image_5F00_thumb_5F00_571D6C9A.png" width="493" height="322" /></a> </p>  <p>&#160;</p>  <p>Or like this (Model 2)</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/0003.image_11C4C9D7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/0003.image_5F00_11C4C9D7.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/6278.image_thumb_07CFB29F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/6278.image_5F00_thumb_5F00_07CFB29F.png" width="477" height="309" /></a> </p>  <p>Microsoft System Center Configuration Manager supports using such chained tasks by providing the tool “task sequencer”.</p>  <p>&#160;</p>  <h4><a name="_Toc268524027">Defining a Key Performance Indicator</a></h4>  <p>Summarizing, the update installation time is dependent on the </p>  <p>· number of updates (changes every month)</p>  <p>· installation time of different updates (different on any update)</p>  <p>· download and installation performance</p>  <p>Since it is not possible to exactly predict all of these dependencies, a update installation time key performance indicator would have to be set very broad to allow a lot room for change. Thus, it’s unsure whether a KPI in this case makes sense at all.</p>]]></content:encoded>
    </item>
    <item>
      <title>ClientKeyData table gets corrupted on central site server</title>
      <link>https://docs.microsoft.com/archive/blogs/dominikheinz/clientkeydata-table-gets-corrupted-on-central-site-server</link>
      <pubDate>Wed, 29 Sep 2010 01:55:00 GMT</pubDate>
      <dc:creator><![CDATA[Dominik Heinz]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominikheinz/2010/09/29/clientkeydata-table-gets-corrupted-on-central-site-server/</guid>
      <description><![CDATA[&#160;  Here’s an issue I’ve now seen on two different customers. They’re both running a 3-tier...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>Here’s an issue I’ve now seen on two different customers. They’re both running a 3-tier hierarchy with more than 30.000 clients. And both updated from SMS 2003 about half a year ago. The problem they’re experiencing is:</p>  <p>More than 20% of the clients do not report on hardware inventory properly and a lot of DDRs seem to get lost. The Matching errors for the data loader (the hardware inventory processor) and the statsys (the processor of the status messages) on the central site are:</p>  <p>&#160;</p>  <p><strong>PROBLEM:</strong></p>  <blockquote>   <p><strong>sinvproc.log:        <br /></strong>The data file &quot;D:\ConfigMgr\inboxes\auth\sinv.box\l5s8o51h.SID&quot; that was submitted by the client whose SMS unique ID is &quot;GUID:34DA8F05-787B-4D3B-8539-AD4322A29E92&quot;, was rejected because the file was signed but <strong>the authentication key did not match the recorded key</strong> for this client.       <br /></p> </blockquote>  <blockquote>   <p><strong>dataldr.log:</strong>       <br />Manager\inboxes\auth\dataldr.box\Process\X3vxse509.MIF&quot; that was submitted by the client whose SMS unique ID is &quot;GUID:1ACBD35E-8426-4CA3-AC84-D1212ACAD3CC&quot;, was rejected because the file was signed but <strong>the authentication key did not match the recorded key</strong> for this client.</p> </blockquote>  <p>It seems like the KeyData, which is stored for every client leads to the issue. The KeyData is the clients authentication key which is used to prove incoming data within <strong>inboxes\auth</strong>. If the KeyData on the central site somehow gets corrupted, the uploaded data from the clients is being rejected ad you experience backlogs in the folders:</p>  <blockquote>   <p>inboxes\auth\dataldr.box\BADMIFS      <br />inboxes\auth\sinv.box\bad      <br />inboxes\auth\statesys.box\corrupt      <br />inboxes\auth\ddm.box\BAD_DDRS</p> </blockquote>  <p>&#160;</p>  <p>In order to prove the cause, you need to follow these steps:</p>  <p><strong>Step 1: Get the SMS GUID of the suspicious client:</strong></p>  <p><em>select Name0, smsid0 from system_data where Name0=‘ClientName’</em></p>  <p>&#160;</p>  <p><strong>Step 2: Get the KeyData field on both, the central site and the child primary site:</strong></p>  <p><em>select SMSID, KeyData from ClientKeyData where SMSID=‘GUID:2A3D67C4-0F80-42B9-8659-1F4DE540B91B’</em></p>  <p>(insert the GUID received on Step 1)</p>  <p>&#160;</p>  <p><strong>Step 3: Compare the KeyData fields from Step 2:</strong></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/5238.image_12B231E0.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/5238.image_5F00_12B231E0.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/85/10/metablogapi/8461.image_thumb_41B46DB7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-10-metablogapi/8461.image_5F00_thumb_5F00_41B46DB7.png" width="577" height="119" /></a> </p>  <p>&#160;</p>  <p><strong>RESOLUTION:</strong></p>  <p>Currently I’m aware of two workarounds:</p>  <ol>   <li>Delete the entire row of the problem client on the central site server. It will be re-populated within 1-2 minutes.</li>    <li>Select the KeyData field from the child primary site server and insert it in the matching field on the central site server. (Be careful, update table commands on the central site server can crash a lot of stuff and are not supported…)</li> </ol>  <p>&#160;</p>  <p><strong>ROOT CAUSE:</strong></p>  <p>Well good question, next question. It looks like it happens when clients are getting re-staged and DDM in Central Site fails to update the table ClientKeyData via   <br />spUpdateClientRegistration.</p>]]></content:encoded>
    </item>
  </channel>
</rss>