![](https://azurespain-7ce76a448ae4d94a-endpoint.azureedge.net/blobazurespain022060bcbe/wp-content/uploads/2018/01/2013-bmw-m5-engine-start-stop-button-photo-457625-s-1280x782.jpg)
Me he montado una máquina virtual de desarrollo en Azure, y no quiero andar arrancándola y entrando en ella a través del portal, porque es bastante lento.
Por ello, me he picado el siguiente powershell que me lanza diferentes operaciones básicas contra la máquina virtual.
Pre requisitos
Lo primero es que el sistema en donde lo voy a lanzar permita ejecutar scripts. Y, aunque es un agujero de seguridad, por ir más deprisa en este artículo, le lanzo un:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
A continuación declaro las tres variables que voy a utilizar. El id de la suscription que voy a utilizar como contexto, el nombre del grupo de recursos, y el nombre de la máquina virtual.
El nombre del servicio es el nombre DNS que le debes poner a la IP a donde está conectada la VM; lo cual, desde el portal, lo puedes hacer sin problema, en el overview de la máquina virtual, en el encabezado, en la parte de DNS.
[powershell]
$suscriptionId = «c1ccc0cc-cc41-4c75-857c-eccc8052cc2c»
$resourceGroupName = «trainer»
$vmName = «trainer»
[/powershell]
Las siguientes líneas son para identificarme en Azure y seleccionar, entre las seis suscripciones que tengo, cual es la que quiero utilizar como contexto para las operaciones que siguen a continuación.
# Con esto me logo en la cuenta de Azure Login-AzureRmAccount # Con esto saco el listado de suscripciones. Solo es necesario si necesito encontrar el Id de la suscripción Get-AzureRmSubscription # Con esto selecciono la suscripción sobre la que voy a lanzar los cmdlets Set-AzureRmContext -SubscriptionId $suscriptionId
Si quiero saber el estado de mi VM (no es necesario), le lanzo el siguiente cmdlet. Pero tengo que tener en cuenta que me van a salir todas las máquinas virtuales que tenga dentro de este grupo de recursos. Para este caso, solo sale una.
Get-AzureRmVM -ResourceGroupName $resourceGroupName -Status | Select-Object Name, PowerState;
Aquí es donde arranco la VM (si ya está arrancada, no pasa nada, ya que no dá error)
Start-AzureRmVM -ResourceGroupName $resourceGroupName -Name $vmName
En este cmdlet descargo el fichero RDP y lo lanzo.
Get-AzureRmRemoteDesktopFile -ResourceGroupName $resourceGroupName -Name $vmName -Launch
Por último, cuando haya terminado, apago la VM. Aquí PowerShell me saca una caja de alerta para asegurarse que quiero apagar la máquina.
Stop-AzureRmVM -ResourceGroupName $resourceGroupName -Name $vmName
Espero que sea de utilidad.