Exchange Online PowerShell es una herramienta de línea de comandos que te permite gestionar tus buzones de correo y usuarios de Exchange Online. Se puede utilizar para realizar una variedad de tareas, como crear y gestionar buzones de correo, configurar reglas de flujo de correo y gestionar permisos de usuario. En esta guía, te mostraremos cómo instalar y conectarte a Exchange Online PowerShell. ¡Si eres un profesional de IT con tareas administrativas de Microsoft 365 en el servicio de Exchange Online, esta guía es para ti!
Cómo instalar y conectarse a Exchange Online PowerShell
Como profesional de IT, es probable que tus tareas administrativas de Microsoft 365 cubran Exchange Online. Aunque la gran mayoría de estas tareas se pueden realizar utilizando el sitio web del Centro de administración de Exchange, ¡existen grandes eficiencias disponibles a través de la línea de comandos, especialmente con scripts!
Prerrequisitos
Puedes conectarte a Exchange Online como cualquier otro servicio de Office 365 utilizando el cmdlet estándar Connect-*. Sin embargo, hay un par de requisitos previos a tener en cuenta al instalar y utilizar Exchange Online PowerShell.
Ha habido varias versiones de estos módulos a lo largo de los años. La versión 2.0.5 y anteriores se conocen como el módulo Exchange Online PowerShell V2 (EXO V2). La versión 3.0.0 y posteriores se conoce como el módulo Exchange Online PowerShell V3 (EXO V3).
Nos centraremos en este módulo más nuevo ya que admite la autenticación multifactor (MFA), incluye mejoras de rendimiento respecto a sus predecesores ¡y también es más seguro! Además, es compatible con las últimas versiones de PowerShell 7.x. Además, una serie de nuevos cmdlets (EXO-*) permiten a los profesionales de TI ser más rápidos y productivos al realizar su trabajo.
Instalando el módulo de PowerShell de Exchange Online con ‘Install-Module’
Como mencioné, me centraré en el último módulo ‘V3’ para el resto de este artículo. Según los pasos que haya completado previamente en un equipo específico, existe la posibilidad de realizar entre 2 y 3 pasos principales. Pasaré por los pasos individualmente para que puedas comenzar de inmediato según tu entorno.
I am working on a Windows 11 22H2 virtual machine (VM) in my Hyper-V lab. This machine is Azure-AD joined to my Microsoft 365 Developer tenant. This will allow me to show you the procedure and also include some basic commands at the end of this article to demonstrate how it operates.
I am using the latest version of PowerShell, version 7.3.4, at the time of writing. This will enable me to install the Exchange Online PowerShell module. All I need is a PowerShell window!
- El primer paso que debemos seguir es establecer nuestra política de ejecución. Necesitamos cambiar la configuración de la política con el cmdlet Set-ExecutionPolicy:
Set-ExecutionPolicy RemoteSigned
- A continuación, ejecuta el comando Get-Module para verificar qué módulos están instalados.
Get-Module

- I have only the base set of modules installed on my computer. So, I need to install the ‘ExchangeOnlineManagement‘ module. Let’s do this with the Install-Module command:
Install-Module -Name ExchangeOnlineManagement

Nota: Como estoy utilizando un ‘repositorio no confiable’, necesito especificar que quiero descargar esto del repositorio ‘PSGallery’. Ingresé ‘A‘ para elegir ‘Sí a todo‘.
Cargando el módulo con ‘Import-Module’
Ahora realizaremos el siguiente paso principal, que es cargar el módulo.
- Podemos importar el módulo usando el comando Import-Module.
- Luego, podemos ejecutar otro comando Get-Module para obtener una confirmación.
Import-Module ExchangeOnlineManagement

¡Ahí vamos, ahora hemos confirmado que el módulo está listo para usar!
Conectándose a su inquilino de Exchange Online con ‘Connect-ExchangeOnline’
El último paso para completar con el fin de obtener acceso a la información de Exchange Online de su inquilino es establecer la conexión utilizando credenciales que permitan dicho acceso. Existen varios niveles de roles en Azure que permiten esto. Para estos fines, utilizaré mi rol de Administrador Global como parte de mi inquilino de Desarrollador. Este rol de cuenta, por cierto, me da acceso completo a Azure AD y a todos los servicios de Microsoft 365 a través de PowerShell.
- Utilicemos el cmdlet Connect-ExchangeOnline a continuación:
Connect-ExchangeOnline -userprincipalname

- Se abrió una ventana de autenticación de navegador pidiéndome mi nombre de usuario y contraseña. Aquí es donde puedo iniciar sesión con mi cuenta de Administrador Global.

¡Excelente! Verás un texto amarillo que describe el módulo ‘EXO V3’ y un enlace de documentación para obtener más información.
Ahora tenemos la capacidad de ejecutar cmdlets de PowerShell contra nuestro inquilino de Exchange Online. Revisaré algunos comandos básicos/esenciales con los que puedes comenzar a continuación.
Nota: Siempre teniendo en cuenta la seguridad, es mejor finalizar tu sesión una vez hayas terminado. Puedes desconectar tu sesión ejecutando el siguiente comando antes de cerrar tu shell.
Disconnect-ExchangeOnline
¡Fácil como pastel!
Comandos básicos de PowerShell de Exchange Online
Una vez que estés conectado al módulo de PowerShell de Exchange Online Versión 3 (EXO V3), puedes empezar a ejecutar cmdlets de Exchange Online. Primero, vamos a listar todos los buzones de correo en nuestro inquilino.
Como este es un inquilino de desarrollador, la lista es bastante pequeña. Ten en cuenta que en entornos normales y más grandes, la salida no será tan útil. Hablaré de eso en un momento. Además, tenemos varios artículos de PowerShell en Petri que pueden ayudarte.
En lugar de usar el cmdlet ‘legacy’ Get-Mailbox (programado para ser descontinuado), vamos a mostrarte los comandos más nuevos en EXO V3. Aquí, usaré el comando Get-EXOMailbox y luego ‘pipe’ (|) a la opción ‘ft’ (igual a ‘Format-Table’). Usando la opción ‘Autosize’ también formatea automáticamente los anchos de columna para que coincidan con la ventana de tu consola.
Get-EXOMailbox | ft -Autosize

Por defecto, obtenemos el ‘ExternalDirectoryObjectId’, el ‘UserPrincipalName’ (generalmente la dirección de correo electrónico) y el alias de correo. Vamos a pedirle que nos dé más información.
Get-EXOMailbox | Select DisplayName,PrimarySMTPAddress,Alias

¡Esto nos da información ligeramente más útil, ¿verdad? Ahora, obtengamos algunas estadísticas de tamaño de buzón con el comando Get-EXOMailboxStatistics. Aquí, estoy ejecutando ese primer comando para recopilar todos los buzones, luego pasando eso a ‘Get-EXOMailboxStatistics’ con sus atributos predeterminados, y luego usando ‘ft’ nuevamente para que se vea bonito.
Get-EXOMailbox | Get-EXOMailboxStatistics | ft

Esto nos proporciona una cantidad decente de información sobre el recuento de elementos y el tamaño del buzón de nuestra organización. Hay muchos otros parámetros que puedes usar para obtener atributos específicos de tus cuentas y buzones.
¿Cómo conectarse a Exchange Online a través de PowerShell con MFA?
Afortunadamente, no hay nada especial que necesites hacer para conectarte cuando tu cuenta está protegida con autenticación multifactor (¡mejor que así sea!). Cuando ingreses el comando y estés utilizando PowerShell 7 o superior, verás aparecer la pantalla de autenticación basada en el navegador, como se muestra en mi captura de pantalla de arriba.
Si por casualidad estás utilizando PowerShell 5.1 o inferior, verás que se abre la ventana estándar de autenticación moderna donde ingresarás tu contraseña y completarás tu solicitud de MFA.
¿Puedes conectarte a PowerShell de Exchange Online en un Mac?
Hay varias formas de instalar PowerShell en un Mac, pero la más sencilla es utilizar los enlaces de descarga directa desde el sitio web de Microsoft. A partir de la versión 7.2, PowerShell es compatible con los Mac con Apple Silicon.
Una vez que hayas instalado PowerShell en tu Mac con macOS 11 Big Sur o una versión más reciente, puedes utilizar las mismas instrucciones proporcionadas anteriormente para conectarte a Exchange Online en macOS.
Beneficios adicionales de usar Exchange Online PowerShell
Exchange Online PowerShell es una herramienta valiosa para cualquier profesional de TI/administrador que desee tener más control sobre su entorno de Exchange Online.
Aquí tienes algunos beneficios adicionales de usar Exchange Online PowerShell:
- Se puede utilizar para automatizar procesos con scripts de Powershell, lo que puede ahorrarte tiempo y esfuerzo con scripts.
- Se puede utilizar para solucionar problemas, lo que puede ayudarte a resolver problemas más rápidamente.
- Se puede utilizar para personalizar tu entorno de Exchange Online, lo que puede hacerlo más eficiente y fácil de usar.
Si tienes alguna pregunta o comentario, no dudes en dejar un comentario abajo. ¡Gracias por leer!
Source:
https://petri.com/connect-to-exchange-online-powershell/