用DART來實現遠程控制WinPE(類似於teamview)

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 orConfigMgr 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 deploymentshare, 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\MDT2010ZeroTouch(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 TicketNumber, 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章