South Europe, Spain
listas@juanquijano.es

Configurar mi equipo para trabajar contra O365 con PowerShell

Este  artículo breve está dirigido a montar un entorno de administración de O365 con PowerShell. Algo que me sucede a menudo cuando me enfrento a equipos que no tienen configurado todo lo necesario.

Partamos de lo más importante, el contexto mínimo:

  • Tiene que ser un Server 2012 R2 o un Windows 7.
  • Debo tener permisos de administración en mi equipo local, para poder instalar aplicaciones.
  • No debo estar detrás de un firewall que me bloquee a NuGet el acceso al repositorio de Módulos.
  • No viene mal el ponerle una vela negra a una deidad que no requiera sacrificios humanos, para que todo funcione corréctamente.

Pre requisitos

Lo primero es encontrar cual es la versión de PowerShell que tengo instalada en mi máquina, suponiendo que lo esté. Para ello abro la consola de PowerShell en modo Administrador y lanzó la siguiente sentencia:

$psversiontable

Name Value
—- —–
PSVersion 5.1.17040.1000
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
BuildVersion 10.0.17040.1000
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

Si todo fuera idílico, tendría una respuesta similar a la que se muestra, indicando que tengo la versión 5.x (ahora mismo la 5.1).

Pero puede ser que tenga instalada una versión 3, o incluso una 2 (si es Widnwos 7) y debo de ir a la siguiente página y descargarme lo siguiente,

Windows Management Framework 5.1.

Me aparecen varios ficheros para descargar, y debo escoger la versión para Windows 8.1 o Windows 2012 Server R2, en su versión de 64 bits.

Win8.1AndW2K12R2-KB3191564-x64.msu

Aquí el problema lo vamos a tener si no tenemos instalado la versión 3.5 del framework de .Net. Porque, viene instalado por defecto en Windows 8.1, pero en Windows 7 no lo incluye por defecto.

Recomiendo utilizar el instalador Web

Instalando Módulos

Todo esto lo he hecho porque PowerShell es una herramienta modular que me permite escoger qué conjuntos de cmdlets quiero utilizar, sin tener que almacenar toda la biblioteca en su totalidad.

Y la versión 5 me permite instalar módulos específicos de manera autónoma desde la propia consola, utilizando las capacidades de la plataforma de gestión de paquetes Nuget.

Puede ser que mi PowerShell  no tenga el módulo para hacer dichas instalaciones desde Nuget, y para comprobarlo lanzo el cmdlet siguiente:

Get-Module PowerShellGet -ListAvailable

Que me debería responder algo como:

ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 1.0.0.1 PowerShellGet {Install-Module, Find-Module, Save-Module, Update-Module...}

En el caso de que no sea así, en este artículo tienes los enlaces para instalarte este módulo.

Una vez listo, toca instalarse los módulos de gestión del directorio activo de O365 y Azure.

Importando, que es gerundio

Para administrar O365, en teoría solamente necesitaría el módulo MSOnline, el cual descargo e instalo con la siguiente orden,

Install-Module -Name MSOnline

Sin embargo Azure AD está creciendo al ritmo que nos tiene acostumbrado Microsoft, y la vieja versión 1 del módulo AzureAD ha desaparecido de la web de descarga (al menos mientras escribo estas líneas). Por ello, para instalarme la versión 2.0, debo lanzar el script correspondiente,

Install-Module -Name AzureAD -RequiredVersion 2.0.0.33

Por último, aunque no es una buena práctica de seguridad, un problema que me he encontrado son las políticas de ejecución de los script de PowerShell. Para quitar todas las restricciones utilizo,

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Pero cuidado con esto, que estás dejando una puerta abierta a que se ejecuten sin restricciones scripts bajados desde internet.

Conclusión

Con esto voy a poder gestionar mi directorio activo Azure sobre el que funciona mi Tier de O365, tanto con los cmdlets nuevos que incluye la última versión del módulo AzureAD 2.x, como con los antiguos a los que puedo acceder en MSOnline.

Cuidado, lector del futuro, cuando leas este artículo, porque las versiones pueden haber cambiado. Pero, utilizando las instalaciones desde Nuget, no debería causarte problemas.

Espero que sea de ayuda

 

 

 

 

 

 

Tags: ,

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: