Introduction to the Hyper-V PowerPack Screencast

I recently published a new screencast on the PowerGUI Documentation page called “Introduction to the Hyper-V PowerPack“.  If you want to learn a little bit about what this PowerPack can offer you and how you can get started using it, take a few minutes and watch the screencast today!

In case you haven’t had a chance to see some of the functionality that this PowerPack provides you with, I’m including a few screenshots below to give you a quick preview.  Or, if you want to see the list of custom functions that drive the functionality in this PowerPack, read my blog post titled, “Use PowerPacks to Learn PowerShell“.

Managing VMs using the Hyper-V PowerPack:

Managing Snapshots using the Hyper-V PowerPack:

Kirk out.

Share this post:

Use PowerPacks to Learn PowerShell

The Hyper-V PowerPack for PowerGUI that I published last month is one of my favorite PowerPacks so far.  It’s a great example of how you can take a task that is pretty complicated for someone who doesn’t program for a living (like using PowerShell to manage Hyper-V via WMI), simplify it with rich PowerShell functions that look and feel like cmdlets, and then build a user interface on top those functions to perform management and automation tasks.  Since all of the PowerShell script behind the PowerPack is freely available through the PowerGUI Admin Console, using a PowerPack like the Hyper-V PowerPack is a great way to learn PowerShell because it allows you to get familiar with how specific administrative tasks translate into PowerShell scripts that you can then use for automation, provisioning, scheduled tasks, etc.

The scripts powering the Hyper-V PowerPack are particularly interesting because there are no cmdlets available yet to manage Hyper-V unless you use Microsoft System Center Virtual Machine Manager 2008.  The prescribed way to manage Hyper-V via script with the release of Windows Server 2008 is WMI.  Since working with WMI directly is not much fun after you have become spoiled with the ease-of-use you get with PowerShell cmdlets, not to mention quite difficult, I have included a lot of useful functions (over 30 of them so far) that wrap the WMI management code inside of a cmdlet-like experience complete with support for pipelining so that you can write scripts to work with your Hyper-V servers much more easily.  Here’s a complete list of the functions that are included in the current revision of the Hyper-V PowerPack:

Job Management

Get-HyperVJob
Wait-HyperVJob

Server Configuration

Get-HyperVServerSettings
Set-HyperVServerSettings

Service Management

Get-HyperVService

Physical Network Adapter Management

Get-HyperVPhysicalNIC
Set-HyperVPhysicalNIC

Virtual Network Management

Get-HyperVVirtualNetwork
New-HyperVVirtualNetwork
Remove-HyperVVirtualNetwork
Rename-HyperVVirtualNetwork
Set-HyperVVirtualNetwork

Virtual Machine Management

Checkpoint-HyperVVirtualMachine
Export-HyperVVirtualMachine
Get-HyperVVirtualMachine
Import-HyperVVirtualMachine
New-HyperVVirtualMachine
Remove-HyperVVirtualMachine
Rename-HyperVVirtualMachine
Restore-HyperVVirtualMachine
Set-HyperVVirtualMachine

Virtual Network Adapter Management

Add-HyperVVirtualNIC
Get-HyperVVirtualNIC
Remove-HyperVVirtualNIC
Set-HyperVVirtualNIC

Virtual Ide Drive Management

Add-HyperVVirtualIdeDrive

Virtual Scsi Drive Management

Add-HyperVVirtualScsiDrive

Snapshot Management

Get-HyperVSnapshot
Set-HyperVSnapshot
Remove-HyperVSnapshot
Rename-HyperVSnapshot
Update-HyperVSnapshot

Virtual Hard Disk Management

Get-HyperVVirtualHardDisk
New-HyperVVirtualHardDisk

These functions do not provide comprehensive coverage of all Hyper-V features and there are many more that I plan to add in a future update, but it’s well on it’s way to becoming a comprehensive set of functions.  If you are looking for specific functionality that doesn’t appear to be available through these functions, I encourage you to take a look at the methods on the rich objects that are output by these functions.  There is a whole lot more functionality available than you might think!  I just haven’t had time to expose all of the method-based functionality as cmdlet-like functions yet.

To use these functions in your own scripts you simply have to copy them out of the Hyper-V PowerPack.  Be sure to keep an eye on dependencies and make sure you get all the functions you need.  Most of the PowerPacks I’ve been working on lately come with useful functions like this, for the explicit reason that I want people to be able to use them inside and outside of PowerGUI.  I’ll blog about them as time permits, but until I make time for that I wanted to at least make you aware that they are there as a resource and as a learning tool.

If you want to write PowerShell scripts to manage your Hyper-V servers, doing yourself a favor to take a look at the Hyper-V PowerPack and the functions that it contains.  They might go a long way to helping you get your work done faster and more easily, either by using the functions themselves in your scripts or by looking at the PowerShell code behind the functions and learning how to get WMI to do what you want to do.

Kirk out.

Share this post:

Hyper-V PowerPack Updated

Since the Hyper-V PowerPack for PowerGUI was published several weeks ago, I have found and fixed several defects, particularly in the area of adding and removing managed Hyper-V servers.  I have also enhanced the search functionality so that it is easier to use when you work with one domain in particular.  To see the complete list of changes, see the revision history section on the Hyper-V PowerPack page.

If you downloaded the Hyper-V PowerPack before Friday, November 14, 2008, I recommend that you visit the Hyper-V PowerPack site and upgrade your PowerPack to the most recent version.  Upgrading the Hyper-V PowerPack can be done in a few easy steps, as follows:

  1. Download the new version of the PowerPack.
  2. Open the PowerGUI Admin Console if you haven’t already.
  3. Right-click the Hyper-V folder at the root of the Hyper-V PowerPack in PowerGUI and click on Delete.
  4. Right-click the root node in the PowerGUI tree, click on Import, and select the updated HyperV.powerpack file that you downloaded.

Once you have done these steps, you will be using the most recent version of this PowerPack.  If you have any feedback or questions you would like to raise for this PowerPack or any others, please feel free to contact me directly (see my about page for details) or leave me a note on the PowerGUI Forums.

Enjoy!

Kirk out.

Share this post:

PowerGUI: Now with 100% more Hyper-V!

About three months ago I decided to go on a deep technology dive, exploring a facet of some technology with PowerShell and seeing what made it tick.  Typically these sorts of things take anywhere from a few days to a few weeks to work out the details and the end result is some useful scripts that I then blog about and try to leverage with a PowerPack or two.  Well this time I ended up going a little deeper than I have in the past, and I decided to go silent on my blog while I worked out the PowerShell scripts behind this huge project.  Today I’m happy to end that silence by sharing with you the largest PowerPack that has been published to date!

Hyper-V DrinkAs of today, PowerGUI users can download a free Hyper-V PowerPack for PowerGUI!  This PowerPack has been a huge undertaking, to put it mildly, and I’m absolutely thrilled with the end result (and so happy that I’ve finally finished the first version…whew)!  Here’s a list of some of the key features that this PowerPack provides:

  1. Bulk management of multiple VMs, Virtual Networks, Virtual Hard Drives, Snapshots, etc. within one Hyper-V servers and across multiple Hyper-V servers.
  2. Support for remote management of Hyper-V servers using alternate credentials.
  3. Integrated management of standard Windows features like Processes, Services, Event Logs, etc.
  4. Automatic credential caching (in memory, not to disk) allowing you to enter a password for a Hyper-V server you are managing only once per PowerGUI session.
  5. Discovery of Hyper-V servers through Active Directory.
  6. Over 30 rich user-defined functions that wrap the Hyper-V WMI interfaces and provide a cmdlet-like experience when scripting with Hyper-V while outputting rich, custom objects complete with properties and methods to script to your heart’s content.  Many of these functions support CSV input through Import-Csv, so there are a lot of opportunities for provisioning already available.
  7. 101 links and actions allowing you to manage just about everything you would want to manage in Hyper-V, including configuration of security via AzMan Scopes, Snapshot refresh, and many, many more.

In terms of Hyper-V functionality, the PowerPack is pretty comprehensive at this point.  There are some features that I have support for in functions that I just didn’t have time to put into the PowerPack at the end of this cycle.  There are also quite a few features in the PowerPack that aren’t available in the Hyper-V Manager.  But that just means there are opportunities for new features to be added in later versions of this PowerPack.  Let me know what features are the most important to you so that I can help you meet your Hyper-V management/scripting needs.

To give you an idea of what it took to make this PowerPack, the main script that contains the function library I’m using in this PowerPack is over 9500 lines long (if you’re new to PowerShell, that’s a heck of a lot of code in a language that lets you do so much with very, very short scripts)!  This huge script, and the scripts powering the links and actions, plus the rest of the PowerShell script behind the PowerGUI PowerPacks are all visible to the end user.  If you’re trying to figure out how to do something with Hyper-V via WMI and you can’t find the answer, take a look at the functions I have and see if they are already doing what you want to do.  Then you can use the functions or try to copy out the code that you need and go from there!

Just a quick note to get you started, once you download and import the PowerPack into PowerGUI, expand the Hyper-V node and then click on Managed Hyper-V Servers.  That will expose the Add Connection functionality you need to use to add your first connection to a Hyper-V server.  Once you’ve done that, you’ll be able to use the rest of the functionality against that server.

If you have any feedback for this PowerPack (or any others), feel free to leave a note on my blog or on the PowerGUI discussion forums.  We’ll be sure to try and help you meet your needs any way that we can!

So what are you waiting for?  Go to the Hyper-V PowerPack site and download the PowerPack today!

Kirk out.

Share this: