![Cómo crear VM de Hyper-V Server mediante PowerShell](https://jotelulu.com/wp-content/uploads/2023/05/Comandos-de-Powershell-Hyper-V-VM-scaled-2.jpg)
Descubre cómo crear VM de Hyper-V Server mediante PowerShell de manera sencilla, rápida y cómoda.
El despliegue de nuevos servidores o la creación de máquinas virtuales (VM desde ahora) puede ser un trabajo realmente aburrido, sobre todo cuando se tienen que desplegar muchos servidores con un perfil igual o en todo caso muy parecido.
Por eso, a lo largo de este pequeño artículo comentaremos como podemos usar la consola enriquecida de Microsoft, o sea, PowerShell, para hacer despliegues de VM a golpe de comando, teniendo además la ventaja de poder reutilizar estos comandos para generar scripts que nos permitan la automatización de los despliegues de VM.
PowerShell dispone de un montón de comandos para trabajar con innumerables procesos y servicios y, como no podía ser de otra manera, también dispone de comandos para la gestión de Hyper-V y sus máquinas virtuales, cosa que era de suponer porque para hablar de eso estamos haciendo este artículo.
NOTA: En las conclusiones encontrarás otros artículos de este mismo medio en los cuales se habla de Hyper-V y PowerShell.
En este caso, como estamos hablando de la creación de VM de Hyper-V con PowerShell tenemos que ir al comando “New-VM”, que es el comando destinado para este propósito y sobre el que organizaremos todo este artículo y nuestro despliegue de VM.
El comando tiene una sintaxis bastante rica y con bastantes opciones:
New-VM
[[-Name] <String>]
[[-MemoryStartupBytes] <Int64>]
[-BootDevice <BootDevice>]
[-SwitchName <String>]
-NewVHDPath <String>
-NewVHDSizeBytes <UInt64>
[-Path <String>]
[-Version <Version>]
[-Prerelease]
[-Experimental]
[[-Generation] <Int16>]
[-Force]
[-AsJob]
[-CimSession <CimSession[]>]
[-ComputerName <String[]>]
[-Credential <PSCredential[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
…
En nuestro caso no vamos a estudiarlos todos, sino que vamos a ver solo algunos y a probar algunos ejemplos.
Además, aunque se trata en otro artículo, es importante que sepamos que podemos realizar la actualización de la ayuda de PowerShell mediante el comando “Update-Help” y que podemos usar la ayuda de cada comando de PowerShell mediante el siguiente comando “Get-Help <Comando_PowerShell>”.
Imagen. Actualización de la ayuda de PowerShell con el comando Update-Help
Como con todo en la vida, debemos empezar por cosas sencillas y crear VM simples que poco a poco iremos complicando en despliegues más complejos.
Para comenzar, vamos a ver cómo crear una máquina virtual en la que simplemente daremos un nombre y una memoria RAM de inicio.
# New-VM -Name «<Nombre>» -MemoryStartupBytes <Memoria_RAM>
Donde:
Un ejemplo de esto sería:
# New-VM -Name «VMPruebas1» -MemoryStartupBytes 1GB
Imagen. Ejemplo de comandos de PowerShell para el despliegue de una VM más o menos sencilla
NOTA: Es importante que pongamos siempre nombres, y que estos estén bien pensados y que no se vayan cambiando cada dos por tres, ya que además de usarse para identificar las VM también se usa para generar los nombres de VHD, etc.
Esta VM realmente no se habrá arrancado ni instalado nada, ni se habrán tratado temas como otros discos, la red, etc. Pero puede ser interesante usar estos comandos para poder desplegar máquinas virtuales de manera masiva a la espera de ser instaladas posteriormente.
Vamos a ver otro caso en el que vamos a dar más configuraciones.
Por ejemplo, describiendo el nombre, el tamaño de RAM y disco duro, donde se guarda la máquina virtual y donde se guarda el disco duro virtual (VHD/VHDX). Esto lo haríamos mediante el siguiente comando:
# New-VM -Name «<Nombre>» -MemoryStartupBytes <Memoria_RAM> -Path <Ruta_VM> -NewVHDPath <Ruta_Disco> -NewVHDSizeBytes <Tamaño_Disco>
Donde:
Y esto mismo en un ejemplo podría ser:
# New-VM -Name «<Nombre>» -MemoryStartupBytes <Memoria_RAM> -Path <Ruta_VM> -NewVHDPath ‘c:\vhd\base.vhdx’ -NewVHDSizeBytes 40GB
Imagen. Ejemplo de one-line de PowerShell para la provisión de una VM
A esto le podemos añadir cosas como, por ejemplo:
Imagen. Ejemplo de one-line de PowerShell para la provisión de una VM
Con esto, sin meternos en scripting, ya podríamos cumplimentar VM, pero con cuatro cambios, podremos convertir nuestros comandos en guiones para el despliegue automático, pero esa, como la de Conan Rey, es otra historia…
Tal y como has podido ver en este artículo, Cómo crear VM de Hyper-V Server mediante PowerShell, el uso de código de PowerShell para la creación de máquinas virtuales es un medio bastante eficiente para hacer despliegues de infraestructura virtualizada, especialmente cuando se tiene que desplegar un buen volumen de máquinas de manera lo más rápida posible, ya que nos ayudará de manera notable en la aceleración de estas tareas, estando limitado casi únicamente por el hardware de la máquina.
La administración de tu infraestructura virtualizada mediante el hipervisor de Microsoft nos permite la doble vertiente de la administración por consola y por entorno gráfico, siendo un poco más sencillo usar el interface gráfico, pero con esta pequeña guía podrás solventar el choque inicial de no saber por dónde empezar, pudiendo suavizar notablemente la curva de aprendizaje y teniendo la ventaja de ahorro de tiempo que nos brinda PowerShell.
Si estás interesado en este tema y quieres hacer pruebas en tu equipo de sobremesa puedes visitar el tutorial Cómo instalar Hyper-V en Windows 10, también puedes consultar el artículo Comandos Powershell para Hyper-v para aprender otros comandos de gestión de Hyper-V con PowerShell, y a gestionar tus puntos de control con Uso de PowerShell para la gestión de puntos de control en Hyper-V.
Además, puedes consultar otros tutoriales y artículos relacionados con Hyper-V.
¡Gracias por leernos!