Dart - Remote Control WinPE (The Nice Way)


Before i begin, a big thanks to reddit/user/ab0mbs for the initial script for this project!

For the longest time i have always included Dart's Remote Tools in my WinPE boot images. Dart is included in the Microsoft Desktop Optimization Pack  which is available if you have Software Assurance with Microsoft. Dart's Remote Tools allows you to remote control a WinPE session, traditionally the user would supply a tech with the IP, Port, and Ticket Number for connection. 



This method is fine if someone is at the other end to offer this information, but what if you want to remotely control a machine in WinPE without this hassle? Here is How: 

End Goal: At the end of this guide, your boot images will automatically generate a shortcut file to allow users to easily remote control every machine that boots from your SCCM Boot wim, you will have a folder set up like this which will generate shortcut files to DART remote control, at the end of your build process it will be deleted :




Firstly, you will want to integrate Dart into your boot image:
(I'm assuming you are using SCCM/MDT Integration, you can make it work fine without, just google)

  1. Install DaRT 8.1 or 10 onto a workstation.  
  2. Using File Explorer, navigate to the C:\Program Files\Microsoft DaRT\Version folder.a
  3. Copy the Toolsx86.cab file to C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x86
  4. Copy the Toolsx64.cab file to C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x64
  5. Create a new ConfigMgr Boot image using the MDT wizard; select the DaRT component during creation.
  6. For more info see here: http://deploymentresearch.com/Research/Post/334/Adding-DaRT-8-1-from-MDOP-2013-R2-to-ConfigMgr-2012-R2

Take your new boot image and mount it:

DISM.exe /Mount-Wim /WimFile:"C:\Users\admin\Desktop\winpe.wim" /index:1 /MountDir:"C:\Users\admin\Desktop\offline"



Go here to download the scripts and files you will need:  Files

From the downloaded files, please the following items in each location:

Place:

WinPE_DarT.ps1 >  \offline\Windows\System32
Unattend.xml >  \offline\Windows\System32
shortcutmap.txt > \offline\Windows\System32
DartConfig.dat >  \offline\Windows\System32
RemoveDartShortcut.ps1 > Into your OSD Script folder


WinPE_Dart.ps1 (Powershell script that does the bulk of the work)
Unattend.xml  (Instructs WinPE to load the PS script)
shortcutmap.txt (Contains password for mapping folder to store shortcut files)
DatConfig.dat (Contains Dart settings, fixed to use port 3389, you can generate a new one by running the Dart create image tool)
RemoveDartShortcut.ps1 (Removes shortcut script for running machine at the end of your build TS, place this as a step somewhere near the end)


You will need to modify Winpe_Dart.ps1 and include your username and share location. I tested this script initially using a Service Account and storing the password from shortcutmap,txt in a secure string but had all kinds of issues with service accounts and secure strings working together , in the end i had to create a standard user account in AD and use that, you can choose whether or not to then delete the shortcutmap.txt after mapping is complete ( i left it commented out for testing). The script will create shortcuts for dart 7/8/10 however i have commented these out as im only using Dart 10. 

Once you are happy that you have your files in order, go ahead and unmount your wim file. 

DISM.exe /Unmount-Wim /MountDir:"C:\Users\admin\Desktop\offline" /commit

Bring this Wim file into SCCM and set it as your default PXE boot file,, add your drivers,  also don't forget to associate it to your task sequences. Oh and dont forget to add powershell component to your boot image. 

For any questions please leave a comment and i will get back to you.