<?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>AlexSemi's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/alex_semi/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/alex_semi/feed.xml</link>
    <description>Alexey Semibratov&amp;#039;s Blog on OSD/SCCM/MDT</description>
    <lastBuildDate>Mon, 19 Dec 2016 18:28:42 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>New version of drivers harvester copies all OEM drivers to separate folder</title>
      <link>https://docs.microsoft.com/archive/blogs/alex_semi/1066</link>
      <pubDate>Mon, 19 Dec 2016 18:20:23 GMT</pubDate>
      <dc:creator><![CDATA[alexsemi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/alex_semi/?p=1066</guid>
      <description><![CDATA[Download: Drivers Harvester

I've updated Drivers Harvester Tool with a new version. Now it takes...]]></description>
      <content:encoded><![CDATA[Download: <a href="https://msdnshared.blob.core.windows.net/media/2016/12/HarvestDrivers.zip">Drivers Harvester</a>

I've updated <a href="https://blogs.msdn.microsoft.com/alex_semi/2013/11/05/harvesting-drivers-from-running-computer-cleaner-better-works-on-windows-7/">Drivers Harvester Tool</a> with a new version. Now it takes a parameter "-d" with directory following after space where you can save your drivers to. But the biggest change is that the tools now creates two subfolders:

LoadedOEMDrivers - all drivers, that where loaded into memory
OtherOEMDrivers - the rest of OEM drivers. Can be drivers that not loaded into memory plus older versions of drivers

&nbsp;

The tool does not capture all drivers sometimes, so you end up re-imaging your machine to find that missing driver. This happens because the driver was not loaded into memory, but it's still an OEM driver and causing a "bang" in device manager. So now it copies all OEM drivers regardless if they are loaded into memory or not to OtherOEMDrivers, so you can easily identify the missing one.

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Drivers harvester now ignores PNF files!</title>
      <link>https://docs.microsoft.com/archive/blogs/alex_semi/drivers-harvester-now-ignores-pnf-files</link>
      <pubDate>Tue, 01 Sep 2015 11:40:28 GMT</pubDate>
      <dc:creator><![CDATA[alexsemi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/alex_semi/2015/09/01/drivers-harvester-now-ignores-pnf-files/</guid>
      <description><![CDATA[I updated Drivers Harvester tool&nbsp;addressing the issue with PNF files&nbsp;I described...]]></description>
      <content:encoded><![CDATA[<p>I updated <a href="https://blogs.msdn.com/b/alex_semi/archive/2013/11/05/harvesting-drivers-from-running-computer.aspx">Drivers Harvester tool</a>&nbsp;addressing the issue with PNF files&nbsp;I described <a href="https://blogs.msdn.com/b/alex_semi/archive/2015/08/11/harvesting-drivers-from-c-windows-system32-driverstore-filerepository-and-pnf-files.aspx">here</a></p>
<p>Enjoy!</p>]]></content:encoded>
    </item>
    <item>
      <title>Harvesting drivers from C:WindowsSystem32DriverStoreFileRepository and PNF files</title>
      <link>https://docs.microsoft.com/archive/blogs/alex_semi/harvesting-drivers-from-cwindowssystem32driverstorefilerepository-and-pnf-files</link>
      <pubDate>Tue, 11 Aug 2015 13:41:58 GMT</pubDate>
      <dc:creator><![CDATA[alexsemi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/alex_semi/2015/08/11/harvesting-drivers-from-cwindowssystem32driverstorefilerepository-and-pnf-files/</guid>
      <description><![CDATA[&nbsp;
In my blog article with harvesting drivers tool&nbsp;here&nbsp;I described how to harvest...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>In my blog article with harvesting drivers tool&nbsp;<a href="https://blogs.msdn.com/b/alex_semi/archive/2013/11/05/harvesting-drivers-from-running-computer.aspx">here</a>&nbsp;I described how to harvest drivers from the repository. I've being used that process on a different projects, and I noticed, that exactly the same driver with an exception of one file gets imported creating a duplicate.</p>
<p>After a little bit of digging, we've found the culprit - the PNF files. Here is a quick description:</p>
<p><strong>Windows Precompiled INF File</strong></p>
<p>The .pnf file extension is also used to represent a Windows Precompiled Setup Information File. Windows creates a PNF file for each INF file to ensure efficient processing. Typically, PNF files are stored in the %windir% or %windir%\Inf folder.</p>
<p>&nbsp;</p>
<p>So, basically, that file&nbsp;gets created by P&amp;P manager&nbsp;on every machine and unique&nbsp;on every machine! That, effectively, makes our content unique and you keep creating duplicates of your drivers.</p>
<p>So here is what you need to do - <span style="color: #ff0000;">Delete all PNF files from captured drivers before importing them to SCCM or MDT!</span></p>
<p><span style="color: #000000;">Give it a shot. Delete all PNF files from your repository and re-import. Check how many duplicates you got rid off.</span></p>
<p>&nbsp;</p>
<p>You are welcome :)</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Compare two ZTIWindowsUpdate logs with this script to see which patches added and removed</title>
      <link>https://docs.microsoft.com/archive/blogs/alex_semi/compare-two-ztiwindowsupdate-logs-with-this-script-to-see-which-patches-added-and-removed</link>
      <pubDate>Mon, 10 Aug 2015 09:57:41 GMT</pubDate>
      <dc:creator><![CDATA[alexsemi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/alex_semi/2015/08/10/compare-two-ztiwindowsupdate-logs-with-this-script-to-see-which-patches-added-and-removed/</guid>
      <description><![CDATA[The standard MDT step called "Install Windows Updates" calls ZTIWindowsUpdate.wsf script that...]]></description>
      <content:encoded><![CDATA[<p>The standard MDT step called "Install Windows Updates" calls ZTIWindowsUpdate.wsf script that essentially installs all updates from Microsoft Updates site. I, personally, recommend this method when building your golden images.</p>
<p>Now, when somebody asks you, what has changed, the answer "the image was updated with latest patches" may not be sufficient. The attached script will compare two ZTIWindowsUpdate.logs - the one you have from previous build and the new one and gives you two lists - the list of patches that were added and the list of patches that have been removed. Now you are in control what gets in your images and what gets removed.</p>
<p>&nbsp;</p>
<p>Usage:&nbsp;cscript ZTIWindowsUpdateLogCompare.wsf /OldLog:&lt;Old Log File&gt; /NewLog:&lt;New Log File&gt;</p>
<p>Thank you for using my work.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/63/41/88/ZTIWindowsUpdateLogCompare.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-63-41-88/ZTIWindowsUpdateLogCompare.zip">ZTIWindowsUpdateLogCompare.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Back to blogging!</title>
      <link>https://docs.microsoft.com/archive/blogs/alex_semi/back-to-blogging</link>
      <pubDate>Fri, 07 Aug 2015 12:21:19 GMT</pubDate>
      <dc:creator><![CDATA[alexsemi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/alex_semi/2015/08/07/back-to-blogging/</guid>
      <description><![CDATA[I have not written any new blogs due to some technical difficulties and being extremely busy in last...]]></description>
      <content:encoded><![CDATA[<p>I have not written any new blogs due to some technical difficulties and being extremely busy in last 8 months. Now the technical issues have been fixed, and I will share everything I was working on lately.</p>
<p>It's going to be about OSD, SCCM, MDT, Windows Client and more. Stay tuned :)</p>]]></content:encoded>
    </item>
    <item>
      <title>Bullet-proof version of ZTIWindowsUpdate.wsf</title>
      <link>https://docs.microsoft.com/archive/blogs/alex_semi/bullet-proof-version-of-ztiwindowsupdate-wsf</link>
      <pubDate>Fri, 07 Aug 2015 12:21:00 GMT</pubDate>
      <dc:creator><![CDATA[alexsemi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/alex_semi/2015/08/07/bullet-proof-version-of-ztiwindowsupdate-wsf/</guid>
      <description><![CDATA[&nbsp;
I'm removing this page soon, since the new ZTIWindowsUpdate.wsf from MDT 2013 U1 works just...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p><span style="background-color: #ff0000;"><strong>I'm removing this page soon, since the new ZTIWindowsUpdate.wsf from MDT 2013 U1 works just fine.</strong></span></p>
<p>&nbsp;</p>
<p>Many of you use ZTIWindowsUpdate.wsf script that is a part of MDT to build your golden images. So do I. I came across two issues, that I fixed&nbsp;and I would like to share the modified version of this script.</p>
<ol>
<li>On Windows 7 and Office 2010, there is a patch, that becomes applicable again, and does not get re-installed because ZTIWindowsUpdate.wsf remembers everything it installed and skips it. Now, if the script finds something that was already installed, it does not skip it, it re-installs it, saying "REINSTALLING - " and then patch name and GUID</li>
<li>Sometimes, when it can't connect to Windows update, it just fails. I replaced this logic with reboot and retry</li>
</ol>
<p>&nbsp;</p>
<p>Just replace the standard copy of ZTIWindowsUpdate.wsf with the one attached here and try to build your golden images.</p>
<p>&nbsp;</p>
<p>Enjoy!</p>]]></content:encoded>
    </item>
    <item>
      <title>Mask all important passwords in all MDT logs</title>
      <link>https://docs.microsoft.com/archive/blogs/alex_semi/mask-all-important-passwords-in-all-mdt-logs</link>
      <pubDate>Thu, 13 Nov 2014 15:58:00 GMT</pubDate>
      <dc:creator><![CDATA[alexsemi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/alex_semi/2014/11/13/mask-all-important-passwords-in-all-mdt-logs/</guid>
      <description><![CDATA[By default, MDT logging routine masks the entire line if it sees the word "password".
I came across...]]></description>
      <content:encoded><![CDATA[<p>By default, MDT logging routine masks the entire line if it sees the word "password".</p>
<p>I came across the problem with UDI, when using ZTIUserSatat.wsf, the encryption key is exposed in clear text in the logs with command line&nbsp;when ScanState.exe or LoadState.exe is called because there is no word &ldquo;password&rdquo; in the logging line.</p>
<p>Regardless,&nbsp;you don&rsquo;t want to hide the whole line for troubleshooting purposes, only the value of that variable&nbsp;that&nbsp;gets exposed.</p>
<p>So, I modified ZTIUtility.vbs adding logic to hide those variables. Here is what was added to&nbsp;CreateEntry function</p>
<table>
<tbody>
<tr>
<td>
<p><code class="cplusplus"><br /></code>&nbsp;</p>
</td>
</tr>
</tbody>
</table>
<table frame="border">
<tbody>
<tr>
<td><code class="cplusplus">Public Function CreateEntry(sLogMsg, iType)<br />Dim sTime, sDate, sTempMsg, oLog, bConsole<span style="color: #ff0000;">, sMaskedVar</span><br /><br /><br /> ' Each of the operations below has the potential to cause a runtime error.<br /> ' However, we must not stop operation if there is a failure, so allways continue.<br /><br /> On Error Resume Next<br /><br /><br /> ' Special Handling for Debug vs. Non-Debug messages<br /><br /> If not Debug then<br /><br /> If iType = LogTypeVerbose Then<br /> Exit Function ' Verbose Messages are only displayed when Debug = True<br />Elseif iType = LogTypeDeprecated Then<br />iType = LogTypeInfo ' Deprecated messages are normally Info messages<br /> End if<br /><br /> ' Suppress messages containing password<br /><br /> If Instr(1, sLogMsg, "password", 1) &gt; 0 then<br />sLogMsg = "&lt;Message containing password has been suppressed&gt;"<br /> End if<br /><br /><span style="color: #ff0000;"> ' Mask variables containing passwords</span><br /><span style="color: #ff0000;"> For Each sMaskedVar in Split(oEnvironment.Item("MaskedVariables"),",")</span><br /><span style="color: #ff0000;">sLogMsg = Replace(sLogMsg, Trim(oEnvironment.Item(sMaskedVar)), "&lt;password has been suppressed&gt;")</span><br /><span style="color: #ff0000;"> Next</span><br /><br /> Else ' Debug = True</code></td>
</tr>
</tbody>
</table>
<p><code class="cplusplus"></code>&nbsp;</p>
<p><code class="cplusplus">Make changes in your CustomSettings.INI&nbsp;</code><code class="cplusplus">by adding&nbsp;a new property</code></p>
<table frame="border">
<tbody>
<tr>
<td>
<p><code class="cplusplus">[Settings]<br />...</code></p>
<p><code class="cplusplus">Properties=</code><code class="cplusplus">MaskedVariables<br /></code></p>
<p><code class="cplusplus">....</code></p>
<p><code class="cplusplus"></code>&nbsp;</p>
<p><code class="cplusplus">[Default]</code></p>
<p><code class="cplusplus">...</code></p>
<p><code class="cplusplus"><br />MaskedVariables=_SMSTSReserved2,OSDUserStateKeyPassword</code></p>
<p><code class="cplusplus">...<br /></code></p>
</td>
</tr>
</tbody>
</table>
<p><code class="cplusplus"></code>&nbsp;</p>
<p><code class="cplusplus"></code>&nbsp;</p>
<p><code class="cplusplus">Enjoy!</code></p>]]></content:encoded>
    </item>
    <item>
      <title>StartMBAMEncryption script updated!</title>
      <link>https://docs.microsoft.com/archive/blogs/alex_semi/startmbamencryption-script-updated</link>
      <pubDate>Wed, 23 Jul 2014 17:14:40 GMT</pubDate>
      <dc:creator><![CDATA[alexsemi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/alex_semi/2014/07/23/startmbamencryption-script-updated/</guid>
      <description><![CDATA[In my previous blog post here:...]]></description>
      <content:encoded><![CDATA[<p>In my previous blog post here: <a href="https://blogs.msdn.com/b/alex_semi/archive/2013/08/12/start-mbam-encryption-on-bitlocker-pre-provisioned-and-windows-to-go-drives.aspx?CommentPosted=true#commentmessage">https://blogs.msdn.com/b/alex_semi/archive/2013/08/12/start-mbam-encryption-on-bitlocker-pre-provisioned-and-windows-to-go-drives.aspx?CommentPosted=true#commentmessage</a></p>
<p>I talk about starting MBAM encryption as a part of SCCM Task Sequence, saving the key to MBAM database. Apparently, the script did not work on Surface Pro or pretty much any other tablet - it needs one more registry key under Policy\FVE - OSEnablePrebootInputProtectorsOnSlates</p>
<p>I added this key and it fixed the problem. The version was updated.</p>
<p>&nbsp;</p>
<p>Thank you.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Dart Remote recovery starts too late in your OSD MDT Deployment? Here is the fix.</title>
      <link>https://docs.microsoft.com/archive/blogs/alex_semi/dart-remote-recovery-starts-too-late-in-your-osd-mdt-deployment-here-is-the-fix</link>
      <pubDate>Mon, 07 Jul 2014 13:18:54 GMT</pubDate>
      <dc:creator><![CDATA[alexsemi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/alex_semi/2014/07/07/dart-remote-recovery-starts-too-late-in-your-osd-mdt-deployment-here-is-the-fix/</guid>
      <description><![CDATA[I hope everybody leverages DART Remote Recovery remote agent in their OSD task sequences with MDT...]]></description>
      <content:encoded><![CDATA[<p>I hope everybody leverages DART Remote Recovery remote agent in their OSD task sequences with MDT integration.</p>
<p>It works in conjunction with MDT Monitoring, and it starts when first "Use MDT Package" step runs in PE. This step is calling ZTISCCM.WSF script. The problem is, that there are lots of other errors, related to drive formatting, selection of the task sequence and so on that may happen the way before ZTISCCM.wsf runs.</p>
<p>So, how do we launch RemoteRecovery.exe passing all parameters to MDT monitoring? One of the ways to do that is by using the pre-execution hook. I created a custom script, which is essentially a stripped-down version of ZTISCCM.wsf script that you can run in your pre-exec hook and your computers will show up in Monitoring almost immediately after you click "next" in firs OSD window.</p>
<p>Here is what you're going to need:</p>
<ol>
<li>SCCM 2012 SP1 or later</li>
<li>MDT package files</li>
<li>I assume that the standard method already working in your environment, if not - here is a great article by Johan that explains how to get it to work: <a href="https://www.deploymentresearch.com/Research/tabid/62/EntryId/78/Using-DaRT-8-and-MDT-2012-Update-1-Monitoring-with-ConfigMgr-2012-SP1-Beta.aspx">https://www.deploymentresearch.com/Research/tabid/62/EntryId/78/Using-DaRT-8-and-MDT-2012-Update-1-Monitoring-with-ConfigMgr-2012-SP1-Beta.aspx</a></li>
<li>AutoIt 3. You don't have to use it, I use it to suppress the "dos box" with script running by providing TS engine the EXE file instead of WSF. TS Engine always runs VB Scripts with CSCRIPT.EXE causing a big "dos" box with script running. Our users should not see it. Download it from here: <a href="https://www.autoitscript.com/site/autoit/">https://www.autoitscript.com/site/autoit/</a></li>
</ol>
<p>Here is how to implement earlier appearance of computers with Dart Remote Recovery console&nbsp;in MDT monitoring.</p>
<ol>
<li>Download two attached scripts</li>
<li>Copy the to some location on the server, I'll call it <a href="file://\\server\Packages\PreExecHook">\\server\Packages\PreExecHook</a> here</li>
<li>Copy the following files from C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Scripts to this folder:</li>
<ol>
<li>ZTIDataAccess.vbs</li>
<li>ZTIUtility.vbs</li>
<li>ztiRunCommandHidden.wsf</li>
<li>ZTIGather.wsf</li>
<li>ZTIDiskUtility.vbs</li>
</ol>
<li>Using Aut2exe.exe tool from AutoIt compile PreExecHook.au3 to x86PreExecHook.exe and AMD64PreExecHook.exe checking "64 bit" flag</li>
<li>Go to properties of your Boot Image and go to "Customization"</li>
<li>Check "Enable prestart command" and type in "<span style="font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">X:\SMS\PKG\SMS10000\x86PreExecHook.exe</span>" without quotes for x86 boot image and "X:\SMS\PKG\SMS10000\AMD64PreExecHook.exe" for x64 boot image</li>
<li>Check "Include Files for the prestart command" and use the path where you copied all the files to - i.e. <a href="file://\\server\Packages\PreExecHook">\\server\Packages\PreExecHook</a>&nbsp; <br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/60/45/1541.Untitled.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-45/1541.Untitled.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/60/45/1541.Untitled.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-45/1541.Untitled.png" alt="" border="0" /></a></li>
<li>After clicking "OK" it will ask you to update Distribution Points. Go ahead and do it.</li>
</ol>
<p>That's it! Now it will have your Remote Recovery Running earlier, like on this picture below - even before the task sequence selection!</p>
<p><br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/60/45/7776.Untitled.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-45/7776.Untitled.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/60/45/7776.Untitled.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-45/7776.Untitled.png" alt="" border="0" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/60/45/0552.Untitled.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-45/0552.Untitled.png"><img style="margin-right: auto; margin-left: auto; display: block;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/60/45/0552.Untitled.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-45/0552.Untitled.png" alt="" border="0" /></a></p>
<p><br />&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/54/01/75/EnableDart.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-54-01-75/EnableDart.zip">EnableDart.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Prevent "half-baked" computers in your environment with special handling of failing steps in State Restore phase</title>
      <link>https://docs.microsoft.com/archive/blogs/alex_semi/prevent-half-baked-computers-in-your-environment-with-special-handling-of-failing-steps-in-state-restore-phase</link>
      <pubDate>Tue, 17 Jun 2014 12:03:37 GMT</pubDate>
      <dc:creator><![CDATA[alexsemi]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/alex_semi/2014/06/17/prevent-half-baked-computers-in-your-environment-with-special-handling-of-failing-steps-in-state-restore-phase/</guid>
      <description><![CDATA[I bet you've seen technicians, imaging computers, ignore failed task sequences when in Live OS...]]></description>
      <content:encoded><![CDATA[<p>I bet you've seen technicians, imaging computers, ignore failed task sequences when in Live OS already and giving those computers to the users. They make a judgment that computer was imaged "good enough" and it's a hassle to escalate it and have some SCCM admin to look at it, investigating what happened.</p>
<p>This simple script will "sabotage" boot on non-UEFI machine, making it sort of unusable (but this can be easily fixed, though). Here is how to implement it:</p>
<p>&nbsp;</p>
<p>1. Copy attached script to your MDT package Scripts\Custom folder. Update your MDT package.</p>
<p>2. Add a new "Run Command line" step to the last, "Gather Logs and StateStore on Failure" group right under first "Gather" step:<br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/60/45/7455.1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-45/7455.1.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/60/45/7455.1.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/272x117/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-45/7455.1.png" alt="" border="0" /></a></p>
<p></p>
<p></p>
<p></p>
<p>&nbsp;</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/53/50/99/MakePartitionInactiveOnFailure.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-53-50-99/MakePartitionInactiveOnFailure.zip">MakePartitionInactiveOnFailure.zip</a></p>]]></content:encoded>
    </item>
  </channel>
</rss>