VMM: Scripting Guide Goes Live
The VMM Scripting Guide is now available in the download center. The Virtual Machine Manager Scripting Guide explains how to create Microsoft Windows PowerShell scripts that execute Virtual Machine Manger 2007 commands, and provides more thatn 100 pages of useful sample scripts, including:
- Sample Script for Upgrading Hosts and Library Servers
- How to Convert an Existing Cmdlet Help Example to a Script
- Sample Scripts for Managing Virtual Machines
AutomateNewVMCreation.ps1
InstallVMAdditions.ps1
ConfigureGuestCluster.ps1
How ConfigureGuestCluster.ps1Works 69
NewVMScriptFromWizard.ps1 - Sample Scripts for Backing Up and Restoring the VMM Database
- Sample Script for Integrating VMM with OpsMgr
For example, the SummarizeVMMInformation.ps1 script displays a summary or information about your VMM environment.
SummarizeVMMInformation.ps1
The following sections describe each set of commands that make up the SummarizeVMMInformation.ps1 script.
Display Information About the Virtual Machine Manager Server
The first set of commands in SummarizeVMMInformation.ps1 performs the following tasks:
1. Retrieves today's date from the system and stores the date in variable $SummaryDate.
2. Connects to the Virtual Machine Manager server, VMMServer1, in the Contoso.com domain, retrieves the server object from the Virtual Machine Manager database, and stores the server object in variable $VMMServer.
3. Retrieves, from the Virtual Machine Manager database, the Virtual Machine Manager host objects as an array and stores the host objects in variable $VMHosts.
4. Retrieves, from the Virtual Machine Manager database, all virtual machine objects and uses the pipeline operator (|) and where statement to select only objects for virtual machines that are not stored in the library. The command stores these virtual machine objects in variable $HostedVMs.
5. Displays the following summary information about your Virtual Machine Manager server and its hosts and virtual machines:
· Today's date.
· The name of the Virtual Machine Manager server.
· Whether this is an evaluation version of the Virtual Machine Manager software.
· The placement goal (the two possible values are LoadBalance or Consolidate) that Virtual Machine Manager uses to select the most suitable host on which to deploy a virtual machine. LoadBalance refers to load balancing among hosts, which minimizes the processing load on any one host. Consolidate refers to resource maximization on individual hosts, which consolidates multiple low-utilization workloads on a single host.
· The number of hosts added to this Virtual Machine Manager server.
· The number of virtual machines deployed on any host.
· The average number of virtual machines per host.
####################################################################
# Summary of Virtual Machine Manager Server
####################################################################
$SummaryDate = Get-Date
# Substitute the name of your VMM server and domain in this command:
$VMMServer = Get-VMMServer -ComputerName "VMMServer1.Contoso.com"
$VMHosts = @(Get-VMHost)
$HostedVMs = @(Get-VM | where {$_.Status -ne "Stored"})
Write-Host "`nVIRTUAL MACHINE MANAGER SERVER" -ForegroundColor Yellow
Write-Host "Summary Date :", $SummaryDate
Write-Host "VMM Server Name :", $VMMServer.Name
Write-Host "Evaluation Version :", $VMMServer.IsEvaluationVersion
Write-Host "Placement Goal :", $VMMServer.PlacementGoal
Write-Host "Total Hosts :", $VMHosts.Count
Write-Host "Hosted VMs :", $HostedVMs.Count
if ($VMHosts.Count -ne 0)
{
Write-Host "VMs per Host :", ($HostedVMs.Count / $VMHosts.Count)
}
Display Information About Self-Service Policies
The next set of commands performs the following tasks:
1. Retrieves, from the Virtual Machine Manager database, self-service policy objects as an array and stores the policy objects in variable $SelfServicePolicies. A self-service policy allows a user or members of a group to create and manage their own virtual machines through the Virtual Machine Manager self-service feature. Self-service users manage their virtual machines through a Web site called the Self-Service Portal.
2. Displays the following summary information about virtual machines that are available to self-service users, using the pipeline operator (|) and where statement to filter virtual machine objects based on specific criteria:
· The total number of self-service policies.
· The total number of virtual machines that are available for self-service users.
· The number of virtual machines that are assigned to self-service users and are currently deployed on a host server.
· The total number of virtual machines that are assigned to self-service users and that are currently stored in the Virtual Machine Manager library. These virtual machines are unavailable to self-service users unless the self-service policy that governs these machines includes the permission that allows users to store their virtual machines in the library. The store permission also enables users to deploy a stored virtual machine on a host server (unless the quota-points setting blocks the deployment of additional virtual machines).
####################################################################
# Summary of Self-Service
####################################################################$Se$SelfServicePolicies = @(Get-SelfServicePolicy)
$VMs = @(Get-VM)
Write-Host "`nSELF-SERVICE" -ForegroundColor Yellow
Write-Host "Self Service Policies :", $SelfServicePolicies.Count
Write-Host "Total Self-Service VMs :", @($VMs | where {$_.SelfServicePolicy -ne $null}).Count
Write-Host "Hosted Self-Service VMs :", @($VMs | where {$_.SelfServicePolicy -ne $null} | where {$_.Status -ne "Stored"}).Count
Write-Host "Stored Self-Service VMs :", @($VMs | where {$_.SelfServicePolicy -ne $null} | where {$_.Status -eq "Stored"}).Count