An update to VMRCplus 1.6.0 has been released and is now available here.
This release contains several fixes and minor enhancements.
It has been tested on Windows Server 2008 as well.
Matthijs
It has been a while since my last post. I am busy doing Hyper-V stuff these days. Trying to grasp the Hyper-V API is one of them...
Anyway, Windows Server 2008 has become available and people are installing Virtual Server 2005 R2 SP1 on it. Yes, you may think everyone is using Hyper-V beta on Server 2008. But there are still a lot of Virtual Server users out there. Virtual Server 2005 R2 SP1 is not supported on Windows Server 2008. It will be, but that will be an update to Virtual Server 2005 R2 SP1.
Some people reported issues with VMRCplus and accessing Virtual Server 2005 R2 SP1 on Windows Server 2008. So I had to see for myself if it worked or not.
After having performed the required configuration of Windows Firewall, I was able to access the remote Virtual Server host.
My scenario consisted of three Windows Server 2008 machines. 1 DC, one member server with Virtual Server 2005 R2 SP1 installed, one member server with VMRCplus.
I was logged on as a domain administrator. I allowed VMRCplus through Windows Firewall and enabled the 'Remote Administration' exception on both member servers. That was it, I could connect just fine.
Now, you may not want to run as domain administrator but use a regular user account. I tried that too.
I logged on to the VMRCplus machine with a regular domain user account (you can do that on Windows Server 2008).
But VMRCplus failed connecting to Virtual Server. One reason is that I did not give this account permissions on Virtual Server. So I gave this 'user' account Full Control of Virtual Server (not the host machine, just Virtual Server). It still failed because of insufficient DCOM permissions. So that was easily fixed by setting the proper permissions. I ran dcomcnfg, opened the properties of the computer, selected Edit Limits for 'Launch and Activation Permissions' and added the user account and gave it Remote Launch and Remote Activation permissions.
When using multiple accounts, I suggest using a 'Virtual Server Users' group and give that group the required permissions as outline above. You would then only have to add the user accounts to that group who need access to Virtual Server.
On connecting to a remote VS host from Vista, you may receive a dialog from VMRCplus with the message:
"The object exporter specified was not found"
Check the firewall settings on Vista. Use the 'advanced' snap-in and verify the active profile Windows Firewall is using for VMRCplus. Also verify that an inbound rule exists.
On connecting to a remote VS host, you may receive a dialog from VMRCplus with the message:
"QI for IEnumVARIANT failed on the unmanaged server"
This may be caused by InstallShield. For a solution see http://support.installshield.com/kb/view.asp?articleid=q106194
Release 1.6.0, as discussed earlier in the TechNet Magazine related post, is now available from the Microsoft Download Center.
You can get the updated release here.
Matthijs
The October issue of TechNet Magazine covers VMRCplus. I wrote that article for the Utility Spotlight in August. However, I updated the content in September.
That is why you may notice screen shots of a different VMRCplus. The release on the Microsoft Download Center is 1.5.0 which was the first public release. That release is also on the companion CD of the Virtual Server 2005 R2 Resource Kit.
But VMRCplus did not cover all functionality of Virtual Server at that time. Development continued and led to a new dot release, 1.6.0.
So what is new in 1.6.0?
First of all, the UI reflects Virtual Server terminology. Both Paul and I had used a mix of Virtual Server terminology and internal (SDK) terminology. To reflect the terminology used in the web administration UI of Virtual Server, the terminology of VMRCplus has been updated.
Second, VMRCplus now offers configuration of scripts on both the Virtual Server and Virtual Machine level. This was missing from the previous release.
Third, VMRCplus offers configuring promiscuous mode on the network so you can trace traffic in the virtual switch. This is something Virtual Server does not offer in the web administration UI.
Of course there have been minor enhancements like storage of Console Manager coordinates, conflict handling when a shortcut already exists (something Virtual Server fails to resolve).
The COM and LPT port assignment logic has been fixed (most of it did not work).
The x86 installer package no longer installs on x64. This has been done to prevent issues with 32-bit VMRCplus on 64-bit Virtual Server.
Error handling has been enhanced and several issues have been fixed.
The updated release can be downloaded from the Utility Spotlight page. It currently offers 1.5.0 but this will be fixed at the end of next week.
In this post, I assume you have configured Windows Firewall correctly to allow traffic from VMRCplus. Please read the other post if you did not.
When connecting to a remote host from Vista, I got the RPC message even with Windows Firewall set up properly.
Scenario 1: UAC is enabled and I am a member of the local administrators group.
- When I start VMRCplus and connect to a remote host, I get the RPC message.
- When I start VMRCplus elevated (right click on a shortcut to VMRCplus and select "Run as Administrator") I still get the RPC message.
- When I start VMRCplus from an elevated command prompt (run cmd "as administrator") it works. ??????????
So it seems there is a difference between using "Run as administrator" on the VMRCplus shortcut and starting VMRCplus from an elevated command prompt.
Scenario 2: UAC is enabled and I am a member of the local users group.
- When I start VMRCplus and connect to a remote host, I get the RPC message.
- When I start VMRCplus elevated (right click on a shortcut to VMRCplus and select "Run as Administrator") and authenticate to the UAC dialog using a local administrator account it works.
So if you run into the RPC message on Vista with a properly configured Windows Firewall, you may want to try the steps above corresponding to your scenario.
I was helping troubleshooting the 'RPC Server is unavailable' issue this week. The message was shown on a Vista client with VMRCplus connecting to a remote host.
Although I have included this issue in the VMRCplus help file (VMRCplus.chm) I realized that the information may not be enough. It took considerable effort to get VMRCplus working on Vista where the Windows Firewall simply blocked the traffic.
So what was the issue?
Windows Firewall contained an exception for VMRCplus. And the path pointed to the correct location of VMRCplus which, in the default installation, is %ProgramFiles%\microsoft vmrcplus\vmrcplus.exe.
Everything seemed OK but still the RPC message showed.
I deleted the exception and was hoping for Windows Firewall to popup the Unblock/Keep blocking message. But nothing happened except for VMRCplus being persistent with the RPC message. Adding the exception back in did not help either.
The solution in this case was to delete the exception, reboot the client and start VMRCplus again.
At that point, the Windows Firewall popped up the dialog which offers to either unblock or keep blocking VMRCplus. Selecting Unblock still showed the RPC message because it was 'too late' at that point. Connecting again did not succeed either. I had to exit VMRCplus and start it up again.
Now the Windows Firewall allowed VMRCplus through and I could finally connect.
From my experience in troubleshooting this issue it is necessary to have the Windows Firewall exception for VMRCplus in place prior to launching VMRCplus. But if it's there and you still get the RPC message, follow the path as described above.
I received several inquiries about installing VMRCplus in an unattended way. Most people were able to install VMRCplus that way but could not figure out how to install the Virtual Server COM API also.
Just for the complete picture I have outlined both installation options below.
To install VMRCplus using the defaults use:
msiexec /i vmrcplus.msi
This will install VMRCplus using the default location and without the Virtual Server COM API.
To install VMRCplus with the Virtual Server COM API use:
msiexec /i vmrcplus.msi ADDLOCAL=ALL
This will install VMRCplus as the previous step but also the Virtual Server COM API.
You can suppress any output by adding msiexec switches like /quiet /passive.
You may experience a crash of VMRCplus when browsing folders on x64. For example when selecting a folder for a virtual hard disk or virtual machine.
This is caused by a bug in the FolderBrowserDialog of the .Net Framework. This has been fixed but a public fix is not available. It will be available through a service pack, probably by the end of 2007.
The issue may not occur on all x64 systems. It seems to depend on the speed and time of browsing. If it does, you should Continue the application. For now your only option is to type the full path and not use the folder browser.
Setup
VMRCplus has a very straightforward installation process. If you do not want to change the location of VMRCplus, you only have two options left. Either you use the defaults or you add the Virtual Server COM object (VSCOMAPI).
The default installation (meaning you leave everything default by clicking Next) results in a local installation of VMRCplus without the Virtual Server COM object. This type is meant for a local installation on a Virtual Server host. Virtual Server already registered the COM object so you should not (must not) install it through VMRCplus.
If you want to remotely manage Virtual Server AND you do not have Virtual Server installed on the machine you install VMRCplus on, you must install VSCOMAPI. If you don't, you will get the message that the COM object could not be found.
Platform architecture
VMRCplus exists in two packages for two platform architectures; an x86-package for 32-bit operating systems and an x64-package for 64-bit operating systems. The x64-package is for x64 (AMD64); there is no support for IA64 (as there is also no support for IA64 by Virtual Server).
Although you might expect the x86-package to work on x64, it won't. It allows you to install however which is fixed in a newer build.
So always install the x64-package on x64 architecture.
VMRCplus has no support for alternate credentials. This means that in order to manage a Virtual Server remotely, both the machine with VMRCplus and the Virtual Server host must be in the same forest. You may wonder why VMRCplus does not support alternate credentials. Both the VMRC client and the Virtual Server Administration Website support this. Or do they only seem to support this?
The VMRC client is the standalone client which comes with Virtual Server. It is used to connect to the VMRC Server port, configured on the Virtual Server host. By default, the VMRC Server uses TCP port 5900.
When connecting using VMRC client, it connects using the single TCP port to the Virtual Server VMRC service. Authentication is built-in with the VMRC server; if authentication is required the server responds to the VMRC client with an authentication request which results in an authentication dialog to the user.
VMRCplus does not communicate using the VMRC port. This is sometimes misunderstood. VMRCplus only uses the VMRC port when opening remote control sessions in the Console Manager. That is where the VMRC port is being used.
The Virtual Server Administration Website (vswebapp.exe) is a web application hosted on Internet Information Services (IIS). In a default configuration, IIS is installed on the Virtual Server host and vswebapp.exe is installed on IIS. When connecting from a remote client using Internet Explorer (IE) you communicate with the web application (vswebapp.exe). If authentication is required, IE shows an authentication dialog which is the result of the web application os IIS. Basically you authenticate to IIS using alternate credentials if integrated logon fails. Important to understand that up to this point, Virtual Server has not been involved in authentication. Only after authentication has been performed, vswebapp.exe uses these credentials to 'connect' to Virtual Server. If that fails, it fails. So Virtual Server expects proper credentials and if not provided, access is denied.
Vswebappe.exe accesses Virtual Server using COM in this scenario because vswebapp.exe is local to the Virtual Server host. However the Virtual Server COM object has no support for alternate credentials.
VMRCplus can be compared in this scenario when installed locally on the Virtual Server host. If your current credentials are sufficient, you get access according to your privileges. If not, you simply get an access denied message ('... server does not exist or insufficient privileges...").
When VMRCplus is used in a remote scenario it uses DCOM to access Virtual Server. As mentioned before, Virtual Server does not support alternate credentials. Also in this scenario, your authentication is performed implicitly and only succeeds when both the VMRCplus machine and remote Virtual Server host are in the same forest.
An additional requirement exists in the remote scenario. Virtual Server runs with Local System identity. In the remote scenario this requires the VMRCplus user to be a member of the local Administrators group on the Virtual Server host. If this requirement is unacceptable for you, you must use VMRCplus locally on the Virtual Server host. You can offer the VMRCplus user RDP to the Virtual Server host and limit its privileges on the host. VMRCplus has been designed for RDP usage.
I received a lot of feedback on VMRCplus and the topics vary. Questions on functionality, feature requests but also queries on future developments; now that VMRCplus is available from our download center, are there any plans for future releases?
I am still developing VMRCplus by incorporating new functionality and bug fixes. Although I do not have a release plan yet, I anticipate to release an updated version somewhere in September.
That release will have minor UI adjustments, feature requests and fixes. The amount of changes depends on the time I have to implement them and feedback received.
Some things will never be in VMRCplus. For example workgroup support (management of non-domain joined hosts) and support for different credentials. Basically these are related and the possibilities are limited by the Virtual Server architecture. I will write a separate article on that.
Before going into VMRCplus itself or tips, tricks, and such related to the tool I would like to talk a bit on the history.
VMRCplus was developed by Paul Despe. It was created as a developer tool and assisted in easy test of Virtual Server. Why? Because it had a Windows UI; basically it was a Winform application.
Paul put a lot of stuff in there to cover features that were mostly used. However development was stopped roughly early 2005 when I got my hands on it. I was super enthusiastic and provided numerous feedback on it to Paul. But Paul had little time to fix things. And with several issues I pointed him to the code where and what to fix.
I felt like enhancing and completing the tool to cover all functionality of Virtual Server. Therefore I suggested taking over the code and putting my energy in fixing and enhancing. I also discussed public release with Paul and he would really like this to happen but did not know how to get it done.
So I set two goals for myself; enhance the tool and make it publicly available.
It was approximately one year ago that I took over the code and started fixing, rewriting, enhancing, etc. I received code written in VB.Net from VStudio 2003.Net and ported all to VStudio 2005. I replaced .Net Framework 1.1 stuff with 2.0 controls. There was a lot of cleaning up to do; VB allows for easy coding but I wanted strongly typed code. I like to know what types my variables are and what goes into them.
It was not my code so I first had to understand the logic. Then create structure to be able to sustain the code. And gradually I figured out how several functions were designed or expected to function.
I promoted VMRCplus internally through a DL, internal site and Groove workspace. In the past last year I received a lot of very positive feedback from many throughout Microsoft. It was downloaded over 5000 times. I added more features to cover Virtual Server functionality and started to enhance it to the user. Meaning creating a better User Experience with Virtual Server; VMRCplus tells the user in many situations what the problem is and how to correct it.
A last step in coding was the creation of a Windows Installer package. This was done from scratch using the WiX toolset. Although a great toolset, you need to understand Windows Installer to fully understand how to develop the database. Just to clarify, the WiX toolset is a development tool to develop the installer.
Of course the above is a very short description of what went on and what has been done to end with VMRCplus as it currently is.
Could I have released VMRCplus at an earlier stage? Yes. But I deliberately did not want to do that. Virtual Server R2 SP1 was in development and I ship Virtual Server binaries with the tool. I kept up with SP1 developments and wanted to wait until RTW before shipping parts with VMRCplus.
The other challenge was to get it released publicly. Well, that was a huge challenge. We don't just compile code and ship it. Products go through a release process which involves a lot of checks. Although VMRCplus is not a product and not supported, it went through the same process products do.
In a short story, this is the history of VMRCplus. I hope that you like its current capabilities, I plan to fix and enhance it in the near future.
I have called my blog VMRCplus. Simply because I did not have a blog at all and never felt the need to create one.
That has changed with the release of VMRCplus last tuesday (26th of June) where I announced internally that it was ready to be shared with anyone outside of Microsoft.
Well, that led to 'some' activity both within Microsoft and now on the Internet.
It is really cool to see it is appreciated that much.
I waited to post after I published VMRCplus on the Microsoft Download Center.
Here is the official URL:
http://www.microsoft.com/downloads/details.aspx?FamilyID=80adc08c-bfc6-4c3a-b4f1-772f550ae791&DisplayLang=en
Thanks to all IT Pro's, IT Evangelists, MVP's, MCT's and many others who blogged about VMRCplus and hosted the bits. You don't need to do that any longer.