Welcome to MSDN Blogs Sign in | Join | Help

WinHEC Redux

Well - this has been a pretty cool week from a virtualization point of view.  We demonstrated the Windows hypervisor for the first time ever, and announced our intended release dates.  We also demonstrated System Center Virtual Machine Manager - and announced release dates for it.

We have had a lot of positive press about this - with many observing that Microsoft is clearly making a strong commitment to virtualization.  Well this is definitely the case if you measure commitment in 'banner size' :-)

The WinHEC dining hall had two large banners over it, a Windows Vista banner and a Windows Server virtualization banner:

WinHEC Banners   WinHEC Banners   WinHEC Banners

The virtualization banner was at least 25% larger than the Vista banner - so I claim technical victory.

Personally my favorite press coverage was the almost positive article posted on The Register - see - miracles can happen.

We also spent a lot of time this week presenting at WinHEC talking in great detail about the architecture and APIs used and exposed by Windows virtualization.  I personally hope to be providing a lot of this information on my blog over the next couple of months.

One final comment I would like to make - is that in cruising around the Net, I have noticed a number of people questioning Jeff Woolsey's claim about Windows virtualization being the first virtualization solution to support hot add of network, memory, processors, etc.  They have usually been pointing to existing mainframe technology - however they missed the key part that Jeff stated that we were the first to do this for Windows operating systems.

Any way - it has been a great week.  If you still haven't seen the WinHEC keynotes you can see them here:

Cheers,
Ben

Gathering historical network statistics under Virtual Server

A little while ago I showed you how to gather information about how much traffic a virtual network had experienced in total.  However it is also possible to get information about the traffic that has specifically occurred in the last minute.  This script below will go through each virtual network on a physical computer and enumerate the amount of traffic seen each second for the last 60 seconds:

Set vs = CreateObject("VirtualServer.Application")
       
For Each vn in vs.VirtualNetworks
    Wscript.Echo
    Wscript.Echo "Virtual Network: " & vn.name

    Wscript.Echo
    Wscript.Echo "Packets sent history: "
    For Each stat in vn.PacketsSentHistory
        Wscript.StdOut.Write stat
        Wscript.StdOut.Write ","
    Next

    Wscript.Echo
    Wscript.Echo "Packets received history: "
    For Each stat in vn.PacketsReceivedHistory
        Wscript.StdOut.Write stat
        Wscript.StdOut.Write ","
    Next
    Wscript.Echo
Next

Cheers,
Ben

Battle Chess under Virtual PC

Released in 1988, Battle Chess is probably one of the most notorious computer chess games ever.  This game managed to take the purely intellectual game of chess and make it immensely more amusing and appealing to the general populace. 

How did it do this?  Simple - in Battle Chess each of the board pieces are animated characters.  As you move your pieces you get to see them walk, run or lumber into place. 

But the best part is when you take your opponents piece you get to watch the pieces duel - with the aggressor always winning.  Some of the battles are fairly straight forward (when a Knight takes a pawn - it is a simple sword fight) while other battles range from surprising (like when your King produces a golden pistol to shoot his opponent, or your rook swallows the opponents’ queen whole) to hilarious (like the reenactment of the 'black knight' scene from Monty Python's quest from the holy grail - when a knight battles another night).

Battle Chess runs perfectly under Virtual PC:

Battle Chess under Virtual PC   Battle Chess under Virtual PC   Battle Chess under Virtual PC   Battle Chess under Virtual PC

Cheers,
Ben

System Center Virtual Machine Manager demo at WinHEC

Following up the Windows virtualization demonstration today in Bill Gates' keynote - we also had demonstrations of the upcoming System Center Virtual Machine Manager (codenamed 'Carmine').  This is really cool.  Some key features that were demonstrated today:

  • Physical to virtual conversion of server workloads
  • Creation of new virtual machines from a template library
  • Intelligent placement of virtual machines in a server farm
  • The 'Self Service portal'

The self service portal is really cool.  This is a web interface that allows users to create and manage a restricted set of virtual machines - as defined by an administrator - all over the web.

Cheers,
Ben

Windows virtualization in Bill Gates' WinHEC keynote!

Woo hoo!  Well - the demo went off perfectly (I was backstage keeping an eye on the hardware).  Kudos Jeff for the fantastic job!

For those who did not see it - today we demonstrated Windows virtualization running:
            - 32-bit and 64-bit virtual machines
            - Windows Server 2003, RedHat Linux, Longhorn server
            - 1, 2 and 4 processor virtual machines
            - Hot adding network cards and memory to virtual machines

We also announced that we will be supporting hot add of storage and 8 processor virtual machines (I have actually seen both of these working internally - but were not in today's demo).  If you want to see it for yourself - checkout the keynote here: http://www.microsoft.com/events/executives/billgates.mspx

Cheers,
Ben

Backstage at WinHEC

What is this a picture of?

Backstage at WinHEC

It is what the big WinHEC display looks like from behind.  That is right - I am backstage at the moment and we are preparing for the Bill Gates' keynote.  Cool stuff coming - so if you are not already planning to watch it - Watch it!

Here is the link: http://www.microsoft.com/events/executives/billgates.mspx

Cheers,
Ben

Virtual PC Security options

Virtual PC has a set of build in security options.  What this allows you to do is to restrict access to various parts of the application for non-Administrative users*.  When all the options are enabled - all that a non-administrative user can do is to launch preconfigured virtual machines.

Now the problem is that this setting has to be configured by an Administrator on the computer in question.  If you are doing a large deployment you can avoid this by simply placing the correct value in the registry.  The Virtual PC security options are stored in a hexadecimal DWORD called 'Locks' under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual PC\5.0\Security.  The value of the DWORD determines what is restricted.  The values are as follows:

0x001 = Disable access to the Virtual PC Options
0x002 = Disable access to virtual machine settings
0x008 = Disable access to the new virtual machine wizard
0x020 = Disable access to the virtual disk wizard

If you want to disable multiple items - you just add the values.  So a value of 0x00A would mean that the settings and new virtual machine wizard were not accessible.  And a value of 0x02B would mean that everything possible was disabled.

You might notice that the numbers for these options are not a strict binary progression (4 and 16 are missing).  This is because of security options that were attempted in earlier builds of Virtual PC that did not prove to be useful or reliable.

Cheers,
Ben

* Connectix versions of Virtual PC used to use a password rather than the account type for these security options.  However as part of the Microsoft security evaluation we found a large number of problems with this approach (and potential ways to bypass this feature), so the decision was made to move to using the built-in Windows credentials for this purpose.

Virtual PC Guy at WinHEC

Hi All,

Well - I will be spending a chunk of time at WinHEC this week.  This is really exciting stuff.  We have a bunch of content about Windows virtualization (in fact - we have an entire track about it).  We are also going to have a bunch of exclusive demos and announcements.

For those of you who are not going to be here - I highly recommend that you checkout the stream of the Bill Gates' keynote (available at: http://www.microsoft.com/events/executives/billgates.mspx).

As for me - I am going to be hanging around the Microsoft virtualization booth most of Tuesday.  I will also be at the Tuesday and Thursday 'Ask The Experts' sessions - as well as speaking on Thursday.  So if you are in town - drop by and say hello.

Cheers,
Ben

Quest for Glory II: Trial by Fire under Virtual PC

Quest for Glory II: Trial by Fire (QFG2) has you playing the role of the hero from the original Quest for Glory.  The story goes that after doing in all the baddies in the town of Speilburg you fly off with Abdul to the middle eastern town of Shapier - where bad things are about to go down - and they are desperately in need of a hero.

All in all - I quite like QFG2.  It offers a larger play world with many interesting aspects to explore.  There are, however, two things that I dislike about this sequel.  The first is the fact that (unlike in QFG1) there are a number of events that are 'time triggered' (meaning that after x days of game time - something will happen).  I dislike this as it means that I do not have as much time to wonder around and explore.  The second thing I dislike is that the city of Shapier is a labyrinthine maze of boring brown tunnels (shown in my third screenshot) and even with the printed map that comes with the game it is too easy to get lost / frustrated.

But even with these two gripes, QFG2 is a great game - and it runs perfectly under Virtual PC:

Quest for Glory II: Trial by Fire under Virtual PC   Quest for Glory II: Trial by Fire under Virtual PC   Quest for Glory II: Trial by Fire under Virtual PC

Cheers,
Ben

Check available CPU reserve under Virtual Server

Today I have a very simple script:

Set vs = CreateObject("VirtualServer.Application")

Wscript.Echo "Available system capacity: "  & vs.AvailableSystemCapacity

This will report the available system capacity as a percent.  Note that this is specifically refering to the ability to reserve CPU resource for a virtual machine - and not how much CPU resource is actually being used.  By default virtual machines have a CPU reserve of 0%.  You could have any number of these virtual machines running - and still have this script report that 100% CPU reserves were available (as this is technically true).  Though once you start setting CPU reserves on virtual machines - this script will tell you exactly how much CPU capacity you have left.

Cheers,
Ben

Quest for Glory 1: So you want to be a hero? under Virtual PC

Quest for Glory 1: So you want to be a hero? (from here on in - QFG1) is one of my all time favorite games.  This is one of the great Sierra adventure games - where you take the role of a hero in a small town with a number of mysteries.  It is up to you to explore and determine what is going.  You get to choose the role of a warrior, wizard or thief - and the game plays slightly differently depending on your choice.

This was one of the first games I ever played which had the concept of building character attributes - and I have always enjoyed spending the time to build up my character statistics to ludicrous proportions.

Quest for Glory 1: So you want to be a hero? under Virtual PC   Quest for Glory 1: So you want to be a hero? under Virtual PC   Quest for Glory 1: So you want to be a hero? under Virtual PC

QFG1 is also filled with many humorous lines.  My favorite joke is that if you play the role of a thief you can command your character to 'pick nose'.  If your lock picking skill is under 50 you will stick your lock pick into your nose and kill yourself by accident.  If your lock picking skill is over 50 you will successfully 'open your nose'.

QFG1 runs perfectly under Virtual PC.

Cheers,
Ben

 

Poking around the Virtual PC Options.XML file

There are a number of global settings for Virtual PC that are stored in our 'Options.XML' file.  You can have a look in this file by running 'notepad %appdata%\Microsoft\Virtual PC\Options.xml'.  One interesting option is that we store the details of where the Virtual PC Console, New Virtual Machine Wizard and Virtual Disk Wizard were on the screen when they were last displayed.  For instance - my Options.XML file has the following section:

 <window>
   <console>
     <height type="integer">626</height>
     <left_position type="integer">821</left_position>
     <top_position type="integer">173</top_position>
     <visible type="boolean">true</visible>
     <width type="integer">359</width>
   </console>
   <new_pc>
     <left_position type="integer">429</left_position>
     <top_position type="integer">61</top_position>
   </new_pc>
   <virtual_disk_wizard>
     <left_position type="integer">429</left_position>
     <top_position type="integer">148</top_position>
   </virtual_disk_wizard>
 </window>

As you can see it is fairly straight forward to change this information if you want these windows to come up in a specific location.  Note that whenever these windows are moved - Virtual PC updates this information - so if you want them to always open in the same spot you will need to setup a program / batch file to copy over a backup of this file before launching Virtual PC.

Cheers,
Ben

Performing a customized unattended installation of Virtual Server

The Virtual Server Administrator's guide outlines how to perform a basic unattended installation of Virtual Server.  However it does not tell you how to do a customized unattended install (where you only install some of the components).  You can do this with the following command (all one line):

msiexec /I "Virtual Server 2005.msi" /L*v %TEMP\VS2005Install.log ADDLOCAL=VirtualServer,VMRCClient,DevAndDoc,VSWebApp PIDKEY=#YOUR_PID_WITHOUT_DASHES# /qb-

Where you remove the components from 'ADDLOCAL' that you do not want installed.  So if you just wanted the VMRC client you would run:

msiexec /I "Virtual Server 2005.msi" /L*v %TEMP\VS2005Install.log ADDLOCAL=VMRCClient PIDKEY=#YOUR_PID_WITHOUT_DASHES# /qb-

Note: To get the .msi file with Virtual Server 2005 R2 you will need to run Setup.exe /c /t [drive letter]:\[path to the .msi file].

Cheers,
Ben

Gathering network statistics under Virtual Server

Just a short post today - I recently went searching for some sample scripts for gathering information about the Virtual Server virtual networks - and did not find many - so I thought I would put this simple sample up:

Set vs = CreateObject("VirtualServer.Application")
       
For Each vn in vs.VirtualNetworks
    Wscript.Echo
    Wscript.Echo "Virtual Network: " & vn.name
    Wscript.Echo "Packets sent: " & vn.packetsSent
    Wscript.Echo "Packets received: " & vn.packetsReceived
    Wscript.Echo
Next

This script will iterate over all the virtual networks on an instance of Virtual Server and let you know the name, packets sent and packets received for each network.

Cheers,
Ben

More Posts Next page »