Run PowerShell Scripts in Virtual Machine Manager
- select the contributor at the end of the page -
Unlike some other Microsoft server products, you could consider Windows PowerShell as a big driver in how the management and administration of Exchange 2007 was defined. Basically, Windows PowerShell was the focus of how Exchange would be managed and administered with a graphical user interface layered on top. I define this as a "tightly-integrated" product when it comes to Windows PowerShell support.
Products Integrating with PowerShell
Another product tightly-integrated with PowerShell is Microsoft Virtual Machine Manager which is part of the System Center Suite. Microsoft first came out with Virtual Machine Manager 2007 also. This was yet another Microsoft server product with full Windows PowerShell support and a graphical user interface basically layered on top of that.
I'm sure back in 2007, some people might have started to say, "This won't last, Windows PowerShell will be gone in the next release," but Windows PowerShell remains in these products even today. Both Exchange 2013 and Virtual Machine Manager 2012 SP1 have been released in the last few months, and still follow 100% Windows PowerShell support for managing and administering the product.
I think this provides a strong message from Microsoft. They think PowerShell is enterprise-class, and they can prove it. After all, these products are some of their most important ones (or big sellers), and people are using this "build it on Windows PowerShell first" methodology.
I had high hopes for the other members of Microsoft's System Center Suite, I was slightly disappointed when I began seeing some of the product betas, but there are some definite improvements. If you look at Data Protection Manager, Operations Manager, Configuration Manager, Service Manager and App Controller, they all provide some level of Windows PowerShell support. I consider all of these as "loosely-integrated" products because the Windows PowerShell support seemed like an after-thought: Windows PowerShell is wrapped around existing APIs or an SDK, and does not provide all of the functions or tasks that can be done in the product's graphical user interface. Nonetheless, the Windows PowerShell support they do provide is a definite time saver for various tasks including ad-hoc reporting.
Here, I'm just going to provide a simple example, but the possibilities are limitless. For example, I'm going to use Microsoft Virtual Machine Manager 2012 SP1 running on Server 2012 and go through the process of adding another Microsoft Hyper-V host to my server fabric.
How To Add a Hyper-V Host Using PowerShell
I'm not going to show you each screen of the "Add Resource Wizard," but at the end (and every other wizard in VMM) you will see the "View Script" button:
When you click on the "View Script" button, Notepad will open up and display the Windows PowerShell script that would be run. It was actually generated by the options chosen while going through the wizard:
I've edited the script simply so it fits a bit better, but one can see the power of the automation tool right in front of us! We can copy and paste this Windows PowerShell code into a console or an editor and create our own automation scripts for all kinds of tasks.
Remember, you're saving time
Imagine needing to do something complicated and time-consuming such as using the new features, like network virtualization. Now, you can go through the process in production or in a lab environment, and take the Windows PowerShell scripts with you and easily automate tasks that were once maybe error-prone or just too time consuming.
That's what Windows PowerShell is all about to me: Giving me the time to work on more important stuff, while automating everything else that doesn't really need my full attention anymore.
The new training course on using VMM and Microsoft cloud, Configuring & Deploying a Private Cloud, doesn't go into the specific details of using Windows PowerShell, but you can really become a DevOps ninja by learning PowerShell Fundamentals and weaving them in with the rest of your skills.