Deployment Server Remote Control with UltraVNC
Deployment Server 6.9 adds the ability to remote control your clients from the Console using any remote control application you want. There are many free remote control options available. My personal preference is UltraVNC. It offers good performance, file transfer, video driver, encryption, MS logon, text chat, multiple-monitors-support, auto reconnection, and a few plugins.
This article will explain how to configure Deployment Server to use UltraVNC for remote control, in three easy steps. First, you will need to upgrade to Deployment Server 6.9. Second, install UltraVNC Server to all of your client computers. And third, 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. You can download Deployment Server 6.9 at http://www.altiris.com/Download.aspx
Install UltraVNC Server to all of your client computers
First, you will need to download the latest UltraVNC Setup (UltraVNC-xxxx-Setup.exe) from http://www.uvnc.com/download/index.html
Save UltraVNC-xxxx-Setup.exe to a new directory in your eXpress share. I will be using the path eXpress\Apps\UltraVNC\UltraVNC-xxxx-Setup.exe during the rest of this article. If you place the UltraVNC Setup somewhere other than the Apps folder, just remember to substitute the actual directory you are using whenever I reference the Apps folder.
Second, install UltraVNC to any computer so that you can use this install as a source for files and settings to be referenced later in this article.
- Run UltraVNC-xxxx-Setup.exe
- When prompted so select components, choose UltraVNC Server, UltraVNC Mirror Driver, and UltraVNC Viewer. If you want to enable encryption, you can also install the DSM Encryption Plugin.
- When prompted to select additional tasks, choose "Register UltraVNC Server as a system service", "Start or restart UltraVNC service", and "Clean old VNC registry keys"
- When the install is complete, you will receive a warning that no password has been set yet. Press OK and you will be presented with the configuration dialog.
- Enter your VNC Password, enable "Require MS Logon", enable "New MS Logon", enable "Disable TrayIcon", enable "Forbid the user to close down WinVNC", and press OK.
Third, you will create three files in the same directory that you saved UltraVNC-xxxx-Setup.exe in. These files will be named UltraVNC.inf, UltraVNC.reg, and UltraVNC.acl
UltraVNC.inf will contain the following:
[Setup] Lang=en Dir=C:\Program Files\UltraVNC Group=UltraVNC NoIcons=1 Components=server,server\driver Tasks=installservice,startservice,acl,properties,cleanreg AclFile=.\UltraVNC.acl PropertiesFile=.\UltraVNC.reg
If you want to install to a different path, change the Dir= setting. If you want to display Start Menu icons, change NoIcons to '0'.
To create the UltraVNC.reg file, go to the reference computer you installed and configured UltraVNC on 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: 00000001 "NewMSLogon" = dword: 00000001 "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:
UltraVNC.acl will contain one line per domain user or group you want to allow remote control. The lines will look like the following:
allow 0x3 "Domain\Domain Admins"
The first word can be "allow" or "deny". The second portion can be either 0x1 which is View Only, or 0x3 which is Interact. The third is either an Active Directory Group or User in the Domain\Account format.
When you have UltraVNC-xxxx-Setup.exe, UltraVNC.inf, UltraVNC.reg, and UltraVNC.acl in a directory (and nothing else), you can create a job to install UltraVNC.
- Open the Deployment Server Console.
- Create a new job.
- Add a Distribute Software task to the job.
- For the Software Package Name, browse for and select the UltraVNC-xxxx-Setup.exe file you downloaded.
- Enable the "Copy all directory files" option.
- Under "Additional command-line switches:", add "/verysilent /loadinf=".\UltraVNC.inf""
You can now run that job on your machines to install UltraVNC Server.
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=%COMPNAME%
If you would rather use the client computer's IP Address to connect than the computer name, replace %COMPNAME% with %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.
- Do not send local keyboard or mouse events to the remote computer.
- Don't show the status window while connecting.
- 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.
- Do not display the toolbar.
- Automatically scale the viewer window so that the remote screen fits at best your local screen size.
- Display viewer in full screen mode.
- 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.
- Share the server with other viewers, i.e. allow several viewers to connect simultaneously to the server.
- Swap left and right button of the mouse.
- Do not display any local dot mouse cursor.
- Display the local dot mouse cursor.
- Display the normal local mouse cursor.
- Emulate a 3-button mouse.
- Do not emulate a 3-button mouse.
- -scale A/B
- Scale the display by the factor A/B.
- Do not transfer clipboard content.
- -loglevel loglevel
- Set the loglevel. This can range from 0 (minimal) to 10 (maximum logging).
- 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.
- -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 has UltraVNC Server installed. Open your Deployment Server Console. Right-click any computer that has UltraVNC Server installed and choose Remote Control>UltraVNC.