Windows PowerShell es una interfaz de consola (CLI) con posibilidad de escritura y conjunción de comandos por medio de guiones (scripts en inglés).Powershell no sólo permite interactuar con el sistema operativo, sino también con programas de Microsoft como SQL Server, Exchange o IIS. La principal utilidad de Powershell es permitir automatizar tareas administrativas al usuario.
La característica distintiva de PowerShell, es que es un intérprete de comandos orientado a objetos. La información de entrada y de salida en cada etapa del proceso (cmdlet, “comándulo”) es un conjunto de instancias de objeto, a diferencia de lo que ocurre con los intérpretes de comandos tradicionales, que sólo devuelven y reciben texto.
Si estás comenzando a aprender esta herramienta te recomiendo estas lecturas http://technet.microsoft.com/en-us/library/hh857337.aspx
Ahora veamos un poco sobre Máquinas Virtuales(VMs)…
Una máquina virtual es un software que simula a una computadora y puede ejecutar programas como si fuese una computadora real. Este software en un principio fue definido como “un duplicado eficiente y aislado de una máquina física”. Una característica esencial de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de esta “computadora virtual”
Ahora que tienes una idea de estos conceptos veamos cómo podemos administrar nuestras VMs con ayuda de Powershell.
Puedes usar Windows PowerShell para administrar máquinas virtuales que se ejecutan en servidores Hyper-V Server Core, pero debes ejecutar las secuencias de comandos remotamente desde un equipo que tenga Windows PowerShell instalado. Además, los scripts de Windows PowerShell pueden utilizarse sólo para acceder a la interfaz WMI(Windows Management Instrumentation) en la instalación Server Core específica. Esto significa el cmdlet de Windows PowerShell primario que utilizarás para administrar máquinas virtuales que se ejecutan en Server Core es el cmdlet Get-WmiObject, que también tiene el alias asociado gwmi en Windows PowerShell.
$VMState=@{2="Running" ; 3="Stopped" ; 32768="Paused" ; 32769="Suspended"; 32270="Starting" ; 32771="Snapshotting" ; 32773="Saving" ; 32774="Stopping" } get-wmiobject -computername localhost -Namespace root\Virtualization -query "Select * from MSVM_Computersystem where Description like '%Virtual%' " | format-table -autosize @{Label=”VM Name”; expression={$_.elementName}}, Description, @{Label =”VM State”; expression={$VmState[$_.EnabledState]}}
Requieres de 3 sencillos pasos para lograr este objetivo:
Preparando tu entorno de trabajo
Antes de empezar a usar los cmdlets de Windows Azure, asegúrate de tener:
Instalando el módulo de Windows Azure para Windows PowerShell
Descárgalo desde aquí -> http://go.microsoft.com/?linkid=9811175&clcid=0x409
PS C:\> Set-ExecutionPolicy RemoteSigned
PS C:\> Import-Module "C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\Azure\Azure.psd1"
PS C:\> Import-Module "C:\Program Files\Microsoft SDKs\Windows Azure\PowerShell\Azure\Azure.psd1"
El módulo de Windows Azure incluye los cmdlets de PublishSettingsFile que simplifican la configuración de su entorno de Windows PowerShell para su uso con Windows Azure. Complete los siguientes pasos para prepararse para implementar y administrar aplicaciones:
PS C:\> Get-AzurePublishSettingsFile
Se abrirá una ventana de navegador en https://windows.azure.com/download/publishprofile.aspx, donde puedes firmarte en Windows Azure.
PS C:\> Import-AzurePublishSettingsFile <mysettings>.publishsettings
Donde <mysettings>.publishsettings es el archivo que ha descargado en el paso anterior. Se debe eliminar el perfil editorial que descargado después de importar esos ajustes. El perfil descargado contiene un certificado de manejo que no debe accederse por usuarios no autorizados.
Te recomiendo sigas la carrera en MVA sobre Windows Azure for IT PROS http://www.microsoftvirtualacademy.com/Content/ViewContent.aspx?et=2850&m=2839&ct=16718#fbid=eiO--HYA8Tj