Nuevo Módulo “Az” de PowerShell para Azure

En agosto de 2018 se liberó el nuevo módulo de PowerShell para Azure, “Az”. Este módulo incluye la funcionalidad del anterior módulo “AzureRM” y de “AzureRM.Netcore”, a los que reemplazará. Microsoft recomienda utilizar este módulo ya que será el único que recibirá actualizaciones de nuevas funcionalidades en Azure a partir de diciembre de 2018. El módulo AzureRM tendrá soporte, pero sólo de actualizaciones de seguridad, hasta 2020.

El nuevo módulo “Az” se puede instalar sobre PowerShell 5.1 (requiere .NET Framework 4.7.2 o superior) y sobre PowerShell Core (6.0 y 6.1).

La instalación de este módulo en una de nuestras máquinas es muy sencilla. Lo primero es comprobar que tenemos una versión de PowerShell que lo soporte. En este caso se trata de una máquina Windows 10 enterprise que no se ha actualizado y cuenta con la versión 5.0, por lo que no es compatible. Tenemos que actualizar, como mínimo, a la versión 5.1:

La actualización se lleva a cabo mediante Windows Update para Windows 10 y se incluyó con Anniversary Update, por lo que habría que actualizar la versión del sistema operativo.

En cambio, en una máquina Windows Server 2016 tenemos:

Por lo que no es necesario actualizar.

En el caso de que nuestro sistema operativo sea Windows 7, Windows 8.1, Windows Server 2008 R2 o Windows Server 2012 R2 podemos descargar WMF 5.1 (Windows Management Framework):

https://www.microsoft.com/en-us/download/details.aspx?id=54616

Si cumplimos los requisitos ya podemos comprobar que el módulo está en PowerShell Gallery:

Y hacemos la instalación:

Vemos que el módulo está disponible:

Por supuesto, siempre podemos utilizar Cloud Shell, donde ya está disponible este módulo sin que tengamos que instalar nada:

Donde además podemos estar seguros de que tenemos la última versión disponible de PowerShell:

Az y AzureRM al mismo tiempo

Debemos tener en cuenta que no podemos tener importados los dos módulos en la misma sesión de PowerShell. De hecho, ya hemos dicho que Microsoft recomienda utilizar el módulo Az.

Por otra parte, si tenemos scripts creados para AzureRM y queremos ejecutarlos en una sesión PowerShell con Az, no es necesario que tengamos instalado el módulo AzureRM, podemos habilitar los alias de AzureRM que se incluyen en Az:

Con este comando podremos seguir ejecutando los scripts que se crearon para AzureRM pero usando el módulo Az y los alias convertirán los antiguos comandos AzureRM a los nuevos Az:

Si al tratar de ejecutar el comando anterior obtenemos lo siguiente:

Nos dice que es porque no ha importado el módulo “Az.Accounts”. Si forzamos la importación:

Y se debe a que nuestra máquina no tiene instalado .NET Framework 4.7.2, que ya dijimos al principio que es un requisito para el módulo Az.

Por otra parte, si queremos instalar el módulo Az en una máquina que ya tenía instalado el módulo AzureRM, tendremos que usar la opción AllowClobber para permitir que, si hay algún comando nuevo que tiene el mismo nombre que uno antiguo, el antiguo sea sustituido por el nuevo.

Desinstalar AzureRM

Si ya tenemos instalado el módulo AzureRM y queremos desinstalarlo para quedarnos con el módulo Az, ejecutamos el siguiente script que forma parte de Az.Accounts: