Since I wrote how to enable AClient remote control in WinPE 1.6, I have had a lot of people ask me if it is possible to remote control in WinPE 2.1. I have just figured out that it is possible! While it is not as easy as enabling AClient remote control, it is not too difficult and it is worth the effort to be able to right-click any computer that is running a job in automation so that you can view the progress and troubleshoot any problems that may arise. If you notice that a computer has been stuck in automation for a long time, you can simply remote control the computer to fix the problem.
To enable Remote Control in WinPE 2.1, you will need to...
- Upgrade to Deployment Server 6.9
- Add WinPE 2.1 Pre-boot OS files to Boot Disk Creator
- Install UltraVNC Server to a reference computer
- Configure UltraVNC on the reference computer
- Export the UltraVNC settings from the reference computer
- Copy the UltraVNC files off of the reference computer
- Add UltraVNC to your boot configuration
- Add UltraVNC Viewer to the Deployment Server Console
Upgrade to Deployment Server 6.9
Deployment Server 6.9 adds a new RemoteControlTools.ini file that will allow you to add any remote control tool to the right-click menu of your computers in the Deployment Server Console. It also adds support for WinPE 2.1. You can download Deployment Server 6.9 at http://www.altiris.com/Download.aspx
Add WinPE 2.1 Pre-boot OS files to Boot Disk Creator
To add the WinPE 2.1 Pre-boot OS files to Boot Disk Creator, download "WinPE Automation Environments for Deployment Solution 6.9 for 32-bit (x86)" from the same place you downloaded Deployment Server 6.9 and run it on your Deployment Server.
Install UltraVNC Server to a Reference Computer
First, you will need to download the latest UltraVNC Setup (UltraVNC-xxxx-Setup.exe) from http://www.uvnc.com/download/index.html
Run UltraVNC-xxxx-Setup.exe on any computer, this will be our reference computer.
When prompted so select components, choose UltraVNC Server and nothing else. If you want to enable encryption, you can also install the DSM Encryption Plugin.
When prompted to select additional tasks, choose "Clean old VNC registry keys" and nothing else.
Configure UltraVNC on the Reference Computer
When the install is complete, launch "Start > Programs > UltraVNC > UltraVNC Server" If you receive a warning that no password has been set yet, press OK. You will be presented with the configuration dialog.
Enter your VNC Password, disable "Require MS Logon", disable "New MS Logon", enable "Disable TrayIcon", enable "Forbid the user to close down WinVNC", and press OK. The reason you must disable "Require MS Logon" and "New MS Logon" is because for some reason WinPE 2.1 couldn't authenticate when I had these enabled. So, we will use the password for authentication.
Export the UltraVNC Settings from the Reference Computer
Next, open regedit and export the registry key "HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3" as UltraVNC.reg.
Your UltraVNC.reg file should look like this:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ORL]
[HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3]
"DebugMode" = dword: 00000000
"DebugLevel" = dword: 00000000
"AllowLoopback" = dword: 00000000
"LoopbackOnly" = dword: 00000000
"DisableTrayIcon" = dword: 00000000
"MSLogonRequired" = dword: 00000000
"NewMSLogon" = dword: 00000000
"UseDSMPlugin" = dword: 00000000
"ConnectPriority" = dword: 00000000
"DSMPlugin" = hex:
[HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3\Default]
"FileTransferEnabled" = dword: 00000001
"FTUserImpersonation" = dword: 00000001
"BlankMonitorEnabled" = dword: 00000001
"CaptureAlphaBlending" = dword: 00000000
"BlackAlphaBlending" = dword: 00000000
"DefaultScale" = dword: 00000001
"UseDSMPlugin" = dword: 00000000
"SocketConnect" = dword: 00000001
"HTTPConnect" = dword: 00000001
"XDMCPConnect" = dword: 00000000
"AutoPortSelect" = dword: 00000001
"InputsEnabled" = dword: 00000001
"LocalInputsDisabled" = dword: 00000000
"IdleTimeout" = dword: 00000000
"QuerySetting" = dword: 00000002
"QueryTimeout" = dword: 0000000a
"QueryAccept" = dword: 00000000
"LockSetting" = dword: 00000000
"RemoveWallpaper" = dword: 00000001
"Password"=hex: 3a,c5,fd,c2,ba,de,af,16
"AllowShutdown" = dword: 00000001
"AllowProperties" = dword: 00000001
"AllowEditClients" = dword: 00000001
"DSMPlugin" = hex:
Copy the UltraVNC Files Off of the Reference Computer
From the reference computer, copy VNCHooks.dll, and WinVNC.exe from C:\Program Files\UltraVNC to a location on your Deployment Server. Also, copy the UltraVNC.reg file into the same location.
Add UltraVNC to Your Boot Configuration
Edit an existing WinPE 2.1 configuration or create a new one.
When you are presented with the file explorer view of the boot configuration, create a new folder named UltraVNC. Inside that folder, place the files UltraVNC.reg, VNCHooks.dll, and WinVNC.exe.
Create a new text file in the startup folder named UltraVNC.bat. For the contents of UltraVNC.bat, enter the following:
regedit -s X:\UltraVNC\UltraVNC.reg
start X:\UltraVNC\WinVNC.exe
Your boot configuration should now look like this:
Save UltraVNC.bat and rebuild your boot configuration.
Add UltraVNC Viewer to the Deployment Server Console
Go to your reference, open Windows Explorer and go to "C:\Program Files\UltraVNC" copy the files vncviewer.exe, zip32.dll, unzip32.dll to a directory in the eXpress share of your Deployment Server. I will be using the directory eXpress\UltraVNC.
Next, open RemoteControlTools.ini in Notepad. And add the following section:
[UltraVNC]
Display-Name=Ultra&VNC
RemoteToolEXEFilePath=UltraVNC\vncviewer.exe
CommandLine=%AGENTIPADDR%
At the CommandLine= option, you can also add any additional command line parameters that you want. For your convenience, here is a list of the command line parameters and what they do:
- -help, -? or -h
- Print a help message.
- -listen [port]
- Start the VNCviewer in listen mode. If port is specified, the viewer listens on that port.
- -viewonly
- Do not send local keyboard or mouse events to the remote computer.
- -nostatus
- Don't show the status window while connecting.
- -nohotkeys
- Do not enable hot keys (like CTRL+ALT+F9 for full screen mode etc.). Can be useful in case of conflict with other installed software hotkeys.
- -notoolbar
- Do not display the toolbar.
- -autoscaling
- Automatically scale the viewer window so that the remote screen fits at best your local screen size.
- -fullscreen
- Display viewer in full screen mode.
- -noauto
- Disable auto mode. Required for using the color options below or saving a custom configuration (otherwise the settings from quick options always override).
- -8bit, -256colors, -64colors, -8colors, -8greycolors, -4greycolors, -2greycolors
- Set the color depth. Fewer colors can significantly reduce the required bandwidth.
Note: Grey colors only work with 32 bits color screen resolution. 16 or 24 bits color resolutions just don't work with grey colors.
- -shared
- Share the server with other viewers, i.e. allow several viewers to connect simultaneously to the server.
- -swapmouse
- Swap left and right button of the mouse.
- -nocursor
- Do not display any local dot mouse cursor.
- -dotcursor
- Display the local dot mouse cursor.
- -normalcursor
- Display the normal local mouse cursor.
- -emulate3
- Emulate a 3-button mouse.
- -noemulate3
- Do not emulate a 3-button mouse.
- -scale A/B
- Scale the display by the factor A/B.
- -disableclipboard
- Do not transfer clipboard content.
- -loglevel loglevel
- Set the loglevel. This can range from 0 (minimal) to 10 (maximum logging).
- -console
- Open a console window for log output.
- -logfile filename
- Log to the file specified by filename.
- -config filename
- Read the configuration from filename.
- -encoding encoding
- Encoding is either raw, rre, corre, hextile, zlib, zlibhex, tight or ultra. Encodings are described here.
- -compresslevel level
- Use specified compression level (0..9) for "tight" and "zlib" encodings (Tight encoding specific). Level 1 uses minimum of CPU time and achieves weak compression ratios, while level 9 offers best compression but is slow in terms of CPU time consumption on the server side. Use high levels with very slow network connections, and low levels when working over high-speed LANs. It's not recommended to use compression level 0, reasonable choices start from the level 1.
- -quality quality
- Use the specified JPEG quality (0..9) for the "tight" encoding (Tight encoding specific). Quality level 0 denotes bad image quality but very impressive compression ratios, while level 9 offers very good image quality at lower compression ratios. Note that the "tight" encoder uses JPEG to encode only those screen areas that look suitable for lossy compression, so quality level 0 does not always mean unacceptable image quality.
- -password password
- Use the specified password for "classic" VNC authentication.
- -serverscale scale
- Scale the display on the server side by 1/scale. For instance scale = 2 means that the remote screen dimensions are reduced by 2 ("half screen size"), reducing at the same time the amount of graphical data received by a factor 4 (2^2).
- -quickoption option
- Select a quickoption. Modem option is default.
1: Auto
2: LAN
3: Medium
4: Modem
5: Slow
7: Ultra
- -dsmplugin filename
- Use the DSM plugin specified by filename.
- -proxy host[:port]
- Use the repeater specified by host and optionally port.
Now you can remote control any computer that is in WinPE 2.1 Automation. Open your Deployment Server Console. Right-click any computer that is in WinPE 2.1 Automation and choose Remote Control>UltraVNC.