Hola, en el articulo de hoy vamos a ver como conectarnos mediante Powershell en Windows 10 a Exchange Online. Office 365 brinda muchos servicios de los cuales podemos administrar en su mayoría desde la consola web, pero no todo se puede realizar desde ahí. Es por eso que para realizar ciertas configuraciones especificas debemos conectarnos mediante Powershell para ejecutar distintos comandos o scripts que nos facilitaran los cambios que precisamos. Lo bueno de utilizar Powershell es que podemos automatizar procesos que hasta incluso vía web podemos demorar mucho mas tiempo.
Vamos a repasar como nos veníamos conectando hasta ahora y como conectarnos mediante el nuevo modulo de EXO v2.
Lo primero que vamos a realizar es repasar nuestro script de conexión.
Este primer script es de los primeros utilizados con Office 365 utilizando autenticación básica, el cual Microsoft dejará de utilizarla en poco tiempo.
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking
Debemos guardar el código en un archivo .ps1 para luego poder ejecutarlo.
Cuando precisamos ejecutar un archivo de Powershell del tipo .ps1 es posible que debamos permitirlo, dado que por seguridad nos dará un error. Para eso debemos ejecutar este comando:
Set-ExecutionPolicy Unrestricted
Cuando ejecutamos el script, nos pedirá nuestro usuario y contraseña de administrador de nuestro tenant de Office 365.
Una vez conectados, veremos la confirmación de la conexión y ya podemos empezar a operar con Powershell en Exchange Online. Como ejemplo ejecutamos el comando Get-Mailbox y veremos el resultado de los usuarios con cuentas de correo en nuestro tenant.
Luego podremos ver las sesiones abiertas contra nuestro tenant ejecutando el comando:
Get-PSSession
Para desconectarnos de nuestro tenant debemos ejecutar el siguiente comando:
Remove-PSSession -Id 1
Siendo Id el numero de la sesión obtenida con el comando Get-PSSession.
Si volvemos a ejecutar Get-PSSession no debemos tener ninguna sesión activa y si mas aun ejecutamos Get-Mailbox obtendremos un error por no reconocer el comando.
Ahora vamos a dar paso a una nueva forma de conectarnos a nuestro tenant mediante Powershell. Microsoft ha lanzado el Exchange Online Powershell V2, también conocido como modulo EXO V2.
Este nuevo modulo utiliza Modern authentication para conectarse, ya no pudiendo utilizar la autenticación básica. A pesar de esto, nuesta configuración en el servicio de WINRM debe quedar aun activo la autenticación básica.
Antes de comenzar con la conexión vamos a ver como instalar el nuevo modulo. Utilizaremos los siguientes comandos:
Install-Module PowershellGet -Force
Install-Module -Name ExchangeOnlineManagement
En caso de estar actualizando:
Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
Update-Module -Name ExchangeOnlineManagement
$UserCredential = Get-Credential
Connect-ExchangeOnline -Credential $UserCredential -ShowProgress $true
Como vemos, tenemos el pase de credenciales en uso, dado que no tenemos el MFA (Multi-factor authentication) activado. En caso de tener MFA activado, el comando Get-Credential no lo podremos utilizar.
Ingreamos nuestras credenciales para iniciar sesión.
Como vemos, nos hemos conectado y ya vemos el mensaje donde nos anuncia los nuevos cmdlets.
Ahora vamos a remover el pase de credenciales quitando el Get-Credential de nuestro script.
Solo vamos a ejecutar el comando que nos conecta con nuestro tenant.
Connect-ExchangeOnline -Credential $UserCredential -ShowProgress $true
Veremos como cambiar la forma de iniciar sesión.
Hasta aquí llega este articulo.
Espero les sea de utilidad.
Saludos.