In previous days, I have been working quite a bit to get UltraVNC to work in my environment. I love the way it works, but after a lot of tinkering, I realized that it is still open source, and does not support everything without a lot of tweaking. My final decision was to jump to Dameware, as we already owned licensing for it. This could possibly be another article on how I implemented it. However, I didn’t want my efforts in getting VNC to work in an enterprise wasted, so I decided to create this guide on setting up VNC, and some of the pitfalls that I ran into, and how to avoid them.
Overview
In this guide, the goal would be to create an UltraVNC package, and distributing it using a script: we will be using Kixtart. The operating systems that this has been tested with are Windows XP SP2, SP3 and Windows 7. (Windows Vista would also work). The CPU architecture targeted is 32Bit. I have had some success in 64bit OS as well, but not thoroughly tested. We will be using the latest version of UltraVNC. (at the time of this writing, 1.0.9.5). There are tons of ways to install UltraVNC, as well as tons of ways to have encryption, authentication, etc … I have tried most of them, and my final product was what I found to be the most integrated solution.
Before getting into the process, here are a couple of questions regarding VNC that I had to research:
Earlier version (than 1.0.9.5) of UltraVNC used the cad.exe, which was a proprietary file to send the ctrl-alt-del.
Version 1.0.9.5 started using the native windows DLL that sends the command. Also, in Windows 7, the software Secure Attention Sequence (SAS) is enabled only for Easy Access Applications, but not for services. uvnc_service would require SAS to be enabled for services as well.
To do this, you can either change the registry: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\SoftwareSASGeneration and set it to 3.
Or, you can do it through GPO. the policy can be found in Administrative Templates\Windows Components\System\Windows Logon Options and enable the Software Secure Attention Sequence, and choose both Easy Application Access, and Services.
Posted in: UltraVNC FAQ
There are 2 options for the mirror driver: the mirror driver and the hook driver. I have tried both in different scenarios, and I can’t say that it’s been a very good experience, from a silent, unattended installation perspective.
The mirror driver is a kernel driver, which means that the first installation would work ok, but subsequent installations would require a reboot.
I have not seen a whole lot of performance increase, or decrease by using the mirror driver. This would be your choice to decide whether to use it. Even though there are separate installers for the mirror driver and the hook driver, you are able to add it to the installation components during the UltraVNC installer.
Posted in: UltraVNC FAQ
Every time you run the UltraVNC installer, some components seem to download from the internet. Unfortunately, as of the current version (1.0.9.5), there is no way that I know off to remove that. Of course, that means that if you don’t have any provisions to hide that from showing up, the downloading items pop up will still be visible to the user. Read on in the implementation process to find a solution for this issue.
Posted in: UltraVNC FAQ
One of the questions I had was whether to use the ultravnc.ini file for retaining settings, or the registry. After tinkering with both, I decided that the settings are better off retained in the registry. Some would argue that the ultravnc.ini is more portable, and depending on your environment, if users are completely locked out, the ultravnc.ini may be a better option.
Though I’m not sure for a fact, whether the ultravnc.ini can contain all the settings for the ACL and the encryption information for the SecureVNCPlugin. I do, however, know for a fact that if using the registry, then there is no need to do additional steps to import the ACLs, using the MSLogonACL.exe. Again, look in the procedure to find out how.
Posted in: UltraVNC FAQ
Since there are files that will be needed that will pertain to your own settings, the first step should be to create an install of UltraVNC as it will be deployed in your environment. There will probably be 2 instances that you will want to have installed: UltraVNC Server, and UltraVNC including the Viewer. UltraVNC Server: This will be on the user’s workstations, which would mean that you want to lock it down as much as possible. UltraVNC Server with the Viewer: This will be the version that would be installed on workstations that will also require the viewer. (for administrators, helpdesk staff, etc …) The installation process for both pieces are exactly the same. So I will list the steps for one (UltraVNC Server) , and the steps would have to be repeated with the different options for the second version of UltraVNC Server with the Viewer.
[Permissions]
[Admin]
UseRegistry=1
UltraVNC 1.0.9.5: http://www.uvnc.com
SecureVNC Plugin: http://adamwalling.com/SecureVNC
Kixtart: http://kixtart.org
UltraVNC Kix Install Script: http://www.foreignkid.com/public/KIX/BLOG_InstallVNC.kix