Share via

Dart Remote recovery starts too late in your OSD MDT Deployment? Here is the fix.

I hope everybody leverages DART Remote Recovery remote agent in their OSD task sequences with MDT integration.

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.

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.

Here is what you're going to need:

  1. SCCM 2012 SP1 or later
  2. MDT package files
  3. 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:
  4. 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:

Here is how to implement earlier appearance of computers with Dart Remote Recovery console in MDT monitoring.

  1. Download two attached scripts
  2. Copy the to some location on the server, I'll call it \\server\Packages\PreExecHook here
  3. Copy the following files from C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Scripts to this folder:
    1. ZTIDataAccess.vbs
    2. ZTIUtility.vbs
    3. ztiRunCommandHidden.wsf
    4. ZTIGather.wsf
    5. ZTIDiskUtility.vbs
  4. Using Aut2exe.exe tool from AutoIt compile PreExecHook.au3 to x86PreExecHook.exe and AMD64PreExecHook.exe checking "64 bit" flag
  5. Go to properties of your Boot Image and go to "Customization"
  6. Check "Enable prestart command" and type in "X:\SMS\PKG\SMS10000\x86PreExecHook.exe" without quotes for x86 boot image and "X:\SMS\PKG\SMS10000\AMD64PreExecHook.exe" for x64 boot image
  7. Check "Include Files for the prestart command" and use the path where you copied all the files to - i.e. \\server\Packages\PreExecHook 
  8. After clicking "OK" it will ask you to update Distribution Points. Go ahead and do it.

That's it! Now it will have your Remote Recovery Running earlier, like on this picture below - even before the task sequence selection!