¿Cómo conectarse a Exchange Online usando PowerShell?

Requisito: instale el módulo Exchange Online PowerShell y conéctese a Exchange Online mediante PowerShell.

PowerShell es la principal herramienta de administración para administrar productos en la nube como Exchange Online en el paquete Microsoft 365. ¡El módulo Exchange Online PowerShell hace que la vida del administrador sea mucho más fácil! Los cmdlets disponibles en el módulo Exchange Online le permiten crear/administrar/recuperar objetos, configurar ajustes que no están disponibles en el centro de administración de Exchange, manipular objetos, generar informes, etc. Este artículo le mostrará cómo instalar el módulo Exchange Online y conectarse al entorno de Exchange Online desde PowerShell. También lo guiaremos a través de algunos aspectos básicos del uso de PowerShell con Exchange Online. ¡Empecemos!

Asegúrese de tener la política de ejecución predeterminada establecida en «RemoteSigned» antes de ejecutar los scripts de PowerShell. Uso: Set-ExecutionPolicy RemoteSigned

Conexión a Exchange Online desde PowerShell: descripción general

Exchange Online es un servicio de correo electrónico basado en la nube que forma parte de Microsoft Office 365. La conexión a Exchange Online mediante PowerShell le permite administrar su entorno de Exchange Online mediante una única interfaz coherente. Para conectarse a Exchange Online usando PowerShell:

  • Primero, debe instalar el módulo Exchange Online PowerShell con Install-Module ExchangeOnlineManagement.
  • Una vez instalado el módulo, puede conectarse a Exchange Online mediante el cmdlet Connect-ExchangeOnline. Este cmdlet le solicitará sus credenciales de administrador de Microsoft 365 Exchange.
  • Una vez que se ingresan las credenciales, se le conectará al entorno de Exchange Online. Desde allí, puede usar cualquiera de los cmdlets que están disponibles en el módulo de PowerShell de Exchange Online para administrar la configuración y los objetos de Exchange Online, como buzones, calendarios y contactos.
  • ¿Cómo instalar el módulo PowerShell de Exchange Online?

    Primero, necesitamos el módulo Exchange Online PowerShell que comprende todos los cmdlets para administrar Exchange. Instalemos el módulo Exchange Online V2 PowerShell. ¡Pero vale la pena verificar si el módulo Exchange Online ya está instalado en su máquina cliente!

    Get-Module -ListAvailable -Name ExchangeOnlineManagement 

    Este cmdlet le proporciona información sobre si el módulo Exchange Online PowerShell ya está instalado o no. Para instalar el módulo PowerShell para Exchange Online, abra Windows PowerShell con la opción «Ejecutar como administrador» y luego ingrese este comando:

    Install-Module -Name ExchangeOnlineManagement -Force 

    Actualizar el módulo de PowerShell de Exchange Online

    Para actualizar el módulo Exchange Online existente, utilice:

    Update-Module ExchangeOnlineManagement 

    Conéctese a Exchange Online desde PowerShell

    Ahora, tenemos el módulo instalado. El siguiente paso es conectarse a su Microsoft 365 Exchange Online con el cmdlet Connect-ExchangeOnline:

    #Connect to Exchange Online Connect-ExchangeOnline 

    Este cmdlet trae la ventana emergente de autenticación moderna para obtener las credenciales (que es autenticación multifactor, ¡consciente de MFA!) y establece la conectividad con Exchange Online.

    Puede usar el interruptor «ShowBanner» para suprimir el banner que muestra los nuevos cmdlets disponibles en el módulo Exchange Online V2 (¡ShowProgress:€false no tiene efectos a partir de ahora, por cierto!). Además, puede proporcionar el nombre de usuario y la contraseña con el parámetro «Credencial».

    #Connect to Exchange Online Connect-ExchangeOnline -Credential €Credential -ShowBanner:€False  #You can also connect by a particular user #Connect-ExchangeOnline -UserPrincipalName [email protected] 

    Una vez que se haya conectado con éxito a Exchange Online, puede comenzar a ejecutar cmdlets para Exchange Online.

    Desconecte la sesión de Exchange Online PowerShell

    Una vez que haya terminado con sus scripts de PowerShell, debe desconectar la sesión, en lugar de simplemente cerrar la ventana de PowerShell o PowerShell ISE. De esta forma, podemos desconectar correctamente las sesiones y evitar esperar a que la sesión caduque en un cierre de ventana accidental.

    #Disconnect Exchange Online Disconnect-ExchangeOnline -Confirm:€False 

    Aquí hay un script de ejemplo para obtener todos los buzones de Exchange Online:

    #Import PowerShell module for Exchange Online Import-Module ExchangeOnlineManagement  #Connect to Exchange Online Connect-ExchangeOnline -Credential (Get-Credential) -ShowBanner:€False  #Get All Mailboxes Get-EXOMailbox | Format-table UserPrincipalName,DisplayName  #Disconnect Exchange Online Disconnect-ExchangeOnline -Confirm:€False 

    Obtener todos los cmdlets de Exchange Online

    Para obtener una lista de todos los cmdlets de PowerShell de Exchange Online disponibles, utilice:

    Get-command -Module ExchangeOnlineManagement 

    La forma clásica de «PSSession» para conectarse a Exchange Online

    Aunque está obsoleto, aquí se explica cómo conectarse a Exchange Online mediante una sesión remota de PowerShell. Este método no necesita ningún módulo, por cierto. Este script tiene cuatro pasos:

  • Obtenga credenciales para conectarse a Exchange Online
  • Crear una nueva sesión de Microsoft 365 PowerShell
  • Importar la nueva sesión de Exchange Online PowerShell
  • Ejecute los cmdlets de PowerShell para Exchange Online
  • Quitar la sesión
  • Para conectarse a Exchange Online en Office 365, abra una consola de PowerShell y ejecute los siguientes comandos:

    #Get Credentials to connect €Cred = Get-Credential  #Establish Exchange session  €Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ `     -Credential €Cred -Authentication Basic -AllowRedirection  #Import the session Import-PSSession €Session -DisableNameChecking | Out-Null  #Execute cmdlets for Exchange Server Get-Mailbox   #Remove the session Remove-PSSession €Session 

    Esto se conecta a Exchange Online mediante PowerShell remoto.