Software Assurance Pays Off – Remote Connection to WinPE during MDT/SCCM deployments

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  🙂

Download the Remote Monitoring sample files

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

  1. Download MDOP 2011 R2 from Microsoft.
  2. 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.  
  3. 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

  1. Using WinRAR (or any other extractor or mount utility), extract the Dart ISO to a folder. For example C:Dart  
  2. Use ImageX or DISM to mount the C:\Dart\Sources\boot.wim file  
  3. From the mounted image, copy the following files to a folder on your server. For example D:\ExtraFiles\x64\Windows\System32

    DartConfig.dat
    FirewallExceptionChange.dll
    LockingHooks.dll
    MSDartCmn.dll
    RdpCore.dll
    rdpencom.dll
    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)

  1. Download the sample files (link) and extract them to D:\Tmp
  2. Copy the D:\Tmp\MDT2010LiteTouch\x64\Unattend.xml to the D:\ExtraFiles\x64 folder  
  3. Create the D:\ExtraFiles\x64\Deploy\Scripts folder and copy D:\Tmp\StartRemoteRecovery.wsf to D:\ExtraFiles\x64\Deploy\Scripts.
  4. Configure your deployment share to use the D:\ExtraFiles\x64 folder for the x64 boot image.  
  5. Update the deployment share, done  🙂
MDT 2010 Lite Touch with the Remote Connection waiting…

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.

  1. Download the sample files (link) and extract them to D:Tmp  
  2. Copy the D:\Tmp\MDT2010\ZeroTouch(SCCM2007)\x86\Unattend.xml to the D:\ExtraFiles\x86 folder  
  3. Create the D:\ExtraFiles\x86\Deploy\Scripts folder and copy the D:\Tmp\StartRemoteRecovery.wsf to D:\ExtraFiles\x86\Deploy\Scripts.  
  4. From the MDT 2010 Files Packages in ConfigMgr 2007, copy the ZTIUtility.vbs script to D:\ExtraFiles\x86\Deploy\Scripts  
  5. 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  🙂

ConfigMgr 2007 (MDT Zero Touch) with the Remote Connection waiting…

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 DaRT Remote Connection Viewer

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)

The RemoteRecovery.exe application minimized
My MDT01 Server with an open connection to my WinPE client using DaRT Remote Connection Viewer.

/ Johan

About the author

Johan Arwidmark

0 0 votes
Article Rating
Subscribe
Notify of
guest
24 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Admin
Admin
8 years ago

Hi Feroze,

The MDT 2013 documentation has the steps for doing this with MDT 2013 and ConfigMgr 2012 R2

/ Johan

ferozekhan267oa
ferozekhan267oa
8 years ago

Hi Johan,

Will this work for my SCCM2012R2 with MDT2013 environment? Else could you please enlighten us all on how to implement the same with Dart8.1 + SCCM2012R2 with MDT2013.

Thanks.
Feroze

Admin
Admin
10 years ago

Great,

/ Johan

przlaicu
przlaicu
10 years ago

hey
I did it thanks if you read it. I have ben copy the files above and file WaitForConnection.exe and put all those files to mounted Winodws System32 folder and works

Thanks for great tutorial

przlaicu
przlaicu
10 years ago

HelloI have question I am new to this. so if i am wrong please help me. I want to make my winpe 3.0 with dart remote recovery toll but i dont know how. I have been copy the files you specified in my root ot win pe dir and add support files in winpe via dism bat when Iam starting the remote revovery then noting hapens. Can you please help me how to put that app in my win pe. I have creathed winpe with coppe script i didnt use the MDT or SCCM, like i sad I am noob.… Read more »

przlaicu
przlaicu
10 years ago

HelloI have question I am new to this. so if i am wrong please help me. I want to make my winpe 3.0 with dart remote recovery toll but i dont know how. I have been copy the files you specified in my root ot win pe dir and add support files in winpe via dism bat when Iam starting the remote revovery then noting hapens. Can you please help me how to put that app in my win pe. I have creathed winpe with coppe script i didnt use the MDT or SCCM, like i sad I am noob.… Read more »

Admin
Admin
10 years ago

Nice! You might also want to look into code changes in MDT 2012 Update 1 when integrated with ConfigMgr 2007/2012.

They also generate a ticket, but in addition publishes that information the monitoring web service so you can see you running ConfigMgr deployments in realtime in the Deployment Workbench and then just double-click a machine to remote into it.

/ Johan

Avi
Avi
10 years ago

Hey Johan,
I took a twist on your method that start the scripts with a task sequence step and added a step to echo the ticket.xml to SMSTS.log and that adds the ticket in the Task Sequence Advertisement to be used while troubleshooting, over here:
leitchronicle.wordpress.com/2012/10/25/re-software-assurance-pays-off-remote-connection-to-winpe-during-mdt-sccm-deployments/

Avi
Avi
11 years ago

Hey Johan,You are correct that's why I use only 1 boot image,in SCCM 2007 R3 task sequence properties there's only one boot image, and there's no step that i can change it,anyway after the restart i know it's the same boot image because if i open command line and view the files on X: then they are the same,was just wondering if anyone tried it in sccm with a "restart to winpe" step,at least all the files are there so in worst case i can instruct the person on the other side how to run the script manually, Thanks all… Read more »

Admin
Admin
11 years ago

Stop using two boot images then 🙂 There is no need for more than one boot image.

Anyway as long as you add the same files to the boot image that is downloaded you should be able to start the monitoring again.

/ Johan

Avi
Avi
11 years ago

Hey Johan,Thanks for the great guide!!One thing though – it's working only for the first boot into PE if the PE is restarted back to PE with a download and execute from DP, then a process of staging the PE on the hardrive occurs using i think tsbootshell.exe which creates a different xml file, in my environment which is SCCM 2007 R3 this is what i noted: 1st boot (from PXE) – unattend.xmlx:windowssystem32inv32.xml 2nd boot (restart to winpe) – C:_SMSTaskSequenceWinPEWinPEUnattend.xmlX:smsbini386 i can see this being logged in SMSTS.log, with line: "Creating WinPE Answer File"Has anyone been successful in having the… Read more »

discontinuity
discontinuity
11 years ago

Great article!! And it worked like a charm after a few tries 🙂 I also used alexsemi's scripts (thank u alexesemi 😉 ) But I wonder if it is possible to remote view the complete installation process? Because Dart remote connection is lost after SCCM/MDT TS applies the windows image which follows a restart. In case of a TS failure after applying the OS image would it be possible to create a dart connection? Thanks for all the precious info you guys shared.

discontinuity
discontinuity
11 years ago

Great article!! And it worked like a charm after a few tries 🙂 I also used alexsemi's scripts (thank u alexesemi 😉 ) But I wonder if it is possible to remote view the complete installation process? Because Dart remote connection is lost after SCCM/MDT TS applies the windows image which follows a restart. In case of a TS failure after applying the OS image would it be possible to create a dart connection? Thanks for all the precious info you guys shared.

Admin
Admin
11 years ago

Hi Gareth, I use Lite Touch to create the reference image for the following reasins. 1. It's faster, both the actually creation of the image, but foremost the customizations that you do are quick (no need to wait for update packages etc.).2. It's cleaner, simpler and only requires a shared folder3. Because of #2 it's very easy to hand off the task of creating the reference to a seprate team, without them needing access to the SCCM console4. It's easy to suspend and resume a Lite Toich Task Sequence, if you need to do something manual in the process.5. It's… Read more »

GDV13
GDV13
11 years ago

Johan,

Slightly off topic, but relvant to your last comment.
Could you please expand on your reasons to use MDT to create your reference image?
I'm having a heated debate with my colleagues, who prefer to use ConfigMgr to create their references, and would like some ammo from a world reknowned expert, such as yourself to help my cause.

/ Gareth

Admin
Admin
12 years ago

ConfigMgr 2007 allows you to install x64 Operating System images from a x86 boot image, and x86 boot image is the best possible boot image you can have. Operating System Install Packages are a different story, they always run setup, so for those packages you would need a x64 boot image to deploy an x64 OS install package… Of course I don't recommend using OS install packages, so it will never be a probelm 🙂 I use MDT Lite Touch to create my ConfigMgr reference images, for a few reasons 1. Twice as fast2. Less costly 3. Easy to delegae4.… Read more »

bdwest
bdwest
12 years ago

Re: "for ConfigMgr 2007 deployments you always use (or should use) a x86 image even when deploying x64 operating systems" — Can you point me to a reference that unpacks this idea? It's been a while since I messed with this, but I seem to remember that OSD wouldn't let me install an x64 OS using an x86 boot image. Thus, we are using an x64 boot image for x64 OS installation.

Admin
Admin
12 years ago

MDT 2010 Lite Touch can be as automated as you want it to be (e.g. be fully automated, zero touch), in fact quite many companies (and datacenters) deploy machines this way. Being able to connect remotely to WinPE is very valuable, especially when deploying remote client / servers. As for the inv32.xml it's located in X:WindowsSystem32.

/ Johan

thadkew
thadkew
12 years ago

John,
My thought is that if you have a series of machines that you're imaging at once, you can put them on the bench and go back to your desk and then walk each of them through.
Also, in our environment, we have techs in the field that might call in to ask questions about what feature to add during install. To use it as a training tool like this would be ideal.

It's a nice feature. The only thing I'm trying to figure is the inv32.xml feature. Where is this particular item saved?

Jason

Jabbor
Jabbor
12 years ago

Johan,

This seems to work well following your instructions. I installed it for MDT 2010 LTI. I'm just not really sure how I would use it. If I'm performing an LTI, I would be at the console of that machine anyway. What would be a good scenario for this ability. I do think it is cool and I'm trying to figure out how I can use this in other PE boot situations.

Thanks,

John

iceee
iceee
12 years ago

Hi Johan

Any chance that you might supply a script that reads the inv32.xml information and creates the shortcut on the deployment server?

/A

Admin
Admin
12 years ago

Hey Johnnie,

Good catch, thanks… I have updated the sample files

/ Johan

JRodri6
JRodri6
12 years ago

looking at the sample files, I notice that the both of the unattend.xml files for MDT have the StartRemoteRecovery.wsf section description as "Lite Touch PE" and the LiteTouch.wsf section description as "Start Remote Connection". Aren't these backwards? The ConfigMgr sample files have the descriptions for StartRemoteRecovery.wsf as "Start Remote Connection"


>