In the new Dart 7 release (part of MDOP 2011 R2), Microsoft added a remote connection application to WinPE, it allows you to connect to a WinPE system using the new Dart Remote Connection Viewer. This article explains how to add it to either MDT 2010 Lite Touch or ConfigMgr (SCCM) 2007 to monitor your deployments.
Credit goes to Michael Niehaus for letting me know it existed and explaining the inner works, and thank you Process Monitor and Process Explorer for helping me figure out what files where actually needed 🙂
Adding Remote Monitoring to MDT 2010 or ConfigMgr 2007 OS Deployments
Adding Remote Monitoring to your deployments is done in these three high-level steps. The sample for MDT 2010 Lite Touch is for a x64 boot image, and the sample for ConfigMgr 2007 is for a x86 boot image.
- Download MDOP 2011 R2, and install DaRT
- Extract the files needed for Remote Connection
- Configure the boot image(s) for MDT 2010 Lite Touch or ConfigMgr 2007
Step 1 – Download Dart 7 (Beta) and create the Dart ISO
- Download MDOP 2011 R2 from Microsoft.
- Install Dart 7 using the default settings. You need to install the x86 version on a x86 OS, and the x64 version on a x64 OS.
- Use the DaRT Recovery Image wizard to create the Dart ISO, use the source files from Windows 7 x64, and on the Remote Connections page, select Allow Remote Connection, and specify a port number like 3388.
Step 2- Extract the files needed for Remote Connection
- Using WinRAR (or any other extractor or mount utility), extract the Dart ISO to a folder. For example C:Dart
- Use ImageX or DISM to mount the C:\Dart\Sources\boot.wim file
- From the mounted image, copy the following files to a folder on your server. For example D:\ExtraFiles\x64\Windows\System32
RemoteRecovery.exe Note: All files except the DartConfig.dat file, can also be extracted from the C:\Program Files\Microsoft DaRT 7\v7\tools.cab.
Configure MDT 2010 Lite Touch to add the files to its boot image (SCCM instructions further down)
- Download the sample files (link) and extract them to D:\Tmp
- Copy the D:\Tmp\MDT2010LiteTouch\x64\Unattend.xml to the D:\ExtraFiles\x64 folder
- Create the D:\ExtraFiles\x64\Deploy\Scripts folder and copy D:\Tmp\StartRemoteRecovery.wsf to D:\ExtraFiles\x64\Deploy\Scripts.
- Configure your deployment share to use the D:\ExtraFiles\x64 folder for the x64 boot image.
- Update the deployment share, done 🙂
Configure ConfigMgr 2007 (MDT 2010 Zero Touch) to add the files to its boot image
This sample is for a x86 boot image, for ConfigMgr 2007 deployments you always use (or should use) a x86 image even when deploying x64 operating systems.
- Download the sample files (link) and extract them to D:Tmp
- Copy the D:\Tmp\MDT2010\ZeroTouch(SCCM2007)\x86\Unattend.xml to the D:\ExtraFiles\x86 folder
- Create the D:\ExtraFiles\x86\Deploy\Scripts folder and copy the D:\Tmp\StartRemoteRecovery.wsf to D:\ExtraFiles\x86\Deploy\Scripts.
- From the MDT 2010 Files Packages in ConfigMgr 2007, copy the ZTIUtility.vbs script to D:\ExtraFiles\x86\Deploy\Scripts
- When creating the boot image in ConfigMgr 2007 (using the Create Boot Image using Microsoft Deployment wizard), specify the D:\ExtraFiles\x86 folder in the Extra Directory to Add.
Note: The reason for using Unattend.xml file rather than the Operating System Media Pre-Execution Hook (tsconfig.ini) is because I wanted the Remote Connection to work even if the ConfigMgr wizard was used when starting the deployment. TSconfig.ini is not process until you click Next when using the wizard. The reason for not using WinPEShl.ini is because the network needs to be started, and it's the wpeini.exe process that starts the network, and then parses the unattend.xml file, So starting via Unattend.xml turned out to be the best 🙂
How it works
In this sample, the StartRemoteRecoveryScript.wsf script is started by unattend.xml, before the normal LiteTouch.wsf script is or ConfigMgr wizard is launched. To connect to WinPE you need to use the DaRT Remote Connection Viewer, and type in the TicketNumber, IP Address and Port.
This information is visible on the WinPE client, and is also stored in the inv32.xml in X:\Windows\System32 on the client. If you want to automate the connection to the client (for example provide a readymade link), you can create a script that reads the info from inv32.xml and creates a shortcut on the deployment server. Dart Remote Connection Viewer supports command line parameters for Ticket number, IP address and Port.
The StartRemoteRecovery.wsf script
The StartRemoteRecovery.wsf script is simply used to start RemoteRecovery.exe in a way so it's starting the application and then continues. If you just add RemoteRecovery.exe directly to unattend.xml it will pause forever. Also, I decided to start the RemoteRecovert.exe application minimized. If you don't like that, simply change line 22 in the script to iRetVal = oSHell.Run(sCmd, 1, false)