Conexión a Exchange Online PowerShell

El módulo Exchange Online PowerShell usa la autenticación moderna y funciona con la autenticación multifactor (MFA) para conectarse a todos los entornos de PowerShell relacionados con Exchange en Microsoft 365: Exchange Online PowerShell, PowerShell de cumplimiento de seguridad & y PowerShell de Exchange Online Protection (EOP) independientes. Para obtener más información sobre el módulo de PowerShell Exchange Online, consulte Acerca de la Exchange Online módulo de PowerShell.

Nota

La versión 2.0.5 y versiones anteriores se conocen como el módulo Exchange Online PowerShell V2 (abreviado como módulo EXO V2). La versión 3.0.0 y posteriores se conocen como el módulo Exchange Online PowerShell V3 (abreviado como módulo EXO V3).

Este artículo contiene instrucciones sobre cómo conectarse a Exchange Online PowerShell mediante el módulo de PowerShell Exchange Online con o sin MFA.

Para conectarse a Exchange Online PowerShell para la automatización, consulte Autenticación de solo aplicación para scripts desatendidos.

Para usar las instrucciones antiguas de conexión a PowerShell remoto, que son menos seguras y que quedarán obsoletas, vea Autenticación básica: conectar a PowerShell de Exchange Online.

Para usar el antiguo módulo remoto de PowerShell de Exchange Online para conectarse a PowerShell de Exchange Online utilizando MFA, vea Módulo V1: conectarse a PowerShell de Exchange Online mediante MFA. Tenga en cuenta que esta versión anterior del módulo se terminará por retirar.

¿Qué necesita saber antes de empezar?

Sugerencia

¿Tiene problemas? Pida ayuda en el foro de Exchange Online.

Conectarse a PowerShell de Exchange Online con autenticación moderna con o sin autenticación multifactor

Estas instrucciones de conexión usan una autenticación moderna y funcionan con o sin autenticación multifactor (MFA).

Para otros métodos de inicio de sesión que están disponibles en PowerShell 7, vea la sección de experiencias de inicio de sesión de PowerShell 7 más adelante en este tema.

  1. Después de instalar el módulo, abra una ventana de PowerShell y cargue el módulo ejecutando el siguiente comando*:

    Import-Module ExchangeOnlineManagement
    

    * En las versiones modernas de PowerShell, normalmente puede omitir este paso y ejecutar Connect-ExchangeOnline sin cargar primero el módulo.

  2. El comando que necesita ejecutar usa la sintaxis siguiente:

    Connect-ExchangeOnline -UserPrincipalName <UPN> [-ShowBanner:$false] [-ExchangeEnvironmentName <Value>] [-DelegatedOrganization <String>] [-PSSessionOption $ProxyOptions] [-UseRPSSession]
    
    • <UPN> es su cuenta en el formato del nombre principal de usuario (por ejemplo, navin@contoso.com).
    • Con el módulo EXO V3 (v3.0.0 o v2.0.6-PreviewX), si no usa el modificador UseRPSSession , tendrá acceso a los cmdlets de la API REST. Para obtener más información, consulte Novedades para la versión 3.0.0 (el módulo EXO V3).
    • Cuando usa el parámetro ExchangeEnvironmentName, no es necesario usar los parámetros ConnectionUri o AzureADAuthorizationEndPointUrl. Para más información, consulte las descripciones de parámetros en Connect-ExchangeOnline.
    • El parámetro DelegatedOrganization especifica la organización del cliente que desea administrar como partner autorizado. Para más información, vea Partners.
    • Si está detrás de un servidor proxy, ejecute este comando primero: $ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>, donde <Value> es IEConfig, WinHttpConfig o AutoDetect. Después, utilice el parámetro PSSessionOption con el valor $ProxyOptions. Para obtener más información, consulte New-PSSessionOption.
    • Dependiendo de la naturaleza de la organización, es posible que pueda omitir el parámetro UserPrincipalName en el paso siguiente. En su lugar, escriba el nombre de usuario y la contraseña o seleccione las credenciales almacenadas después de ejecutar el comando Connect-ExchangeOnline. Si esto no funciona, necesitará usar el parámetro UserPrincipalName.
    • Si no está utilizando MFA, debería poder usar el parámetro Credential en lugar del parámetro UserPrincipalName. En primer lugar, ejecuta el comando $Credential = Get-Credential, escriba su nombre de usuario y contraseña y luego usa el nombre variable para el parámetro Credential (-Credential $Credential). Si esto no funciona, necesitará usar el parámetro UserPrincipalName.

    Este ejemplo se conecta al PowerShell de Exchange Online en una organización de Microsoft 365 o Microsoft 365 GCC:

    Connect-ExchangeOnline -UserPrincipalName navin@contoso.com
    

    Este ejemplo se conecta al PowerShell de Exchange Online en una organización de Office 365 Germany:

    Connect-ExchangeOnline -UserPrincipalName lukas@fabrikam.de -ExchangeEnvironmentName O365GermanyCloud
    

    Este ejemplo se conecta al PowerShell de Exchange Online en una organización de Microsoft GCC High:

    Connect-ExchangeOnline -UserPrincipalName laura@blueyonderairlines.us -ExchangeEnvironmentName O365USGovGCCHigh
    

    Este ejemplo se conecta al PowerShell de Exchange Online en una organización de Microsoft 365 DoD:

    Connect-ExchangeOnline -UserPrincipalName julia@adatum.mil -ExchangeEnvironmentName O365USGovDoD
    

    Este ejemplo se conecta al PowerShell de Exchange Online para administrar otro espacio empresarial:

    Connect-ExchangeOnline -UserPrincipalName navin@contoso.com -DelegatedOrganization adatum.onmicrosoft.com
    
  3. En la ventana de inicio de sesión que se abre, escriba su contraseña y, después, haga clic en Iniciar sesión.

    Escriba su contraseña en la ventana de inicio de sesión de su cuenta.

  4. Solo MFA: Se genera y se entrega un código de verificación basándose en la opción de respuesta de comprobación que se ha configurado para su cuenta (por ejemplo, un mensaje de texto o la aplicación Microsoft Authenticator de su dispositivo).

    En la ventana de comprobación que se abre, escriba el código de comprobación y, después, haga clic en Verificar.

    Escriba su código de verificación en la ventana de inicio de sesión de su cuenta.

Para obtener información detallada acerca de la sintaxis y los parámetros, consulte Connect-ExchangeOnline.

Nota

Asegúrese de desconectar la sesión remota de PowerShell cuando haya terminado. Si cierra la ventana de PowerShell sin desconectar la sesión, podría agotar todas las sesiones de PowerShell remotas que tenga disponibles y deberá esperar a que las sesiones expiren. Ejecute el siguiente comando para desconectar la sesión de PowerShell remota.

Disconnect-ExchangeOnline

Experiencias de inicio de sesión en PowerShell 7

En esta sección se describen las experiencias de inicio de sesión que están disponibles en la versión 2.0.4 o posterior del módulo en PowerShell 7.

Para obtener más información sobre los sistemas operativos compatibles con el módulo de PowerShell 7, consulte Sistemas operativos compatibles para el módulo de PowerShell Exchange Online.

Para obtener información detallada acerca de la sintaxis y los parámetros, consulte Connect-ExchangeOnline.

Scripting interactivo con inicio de sesión único basado en el explorador

El inicio de sesión único (SSO) basado en el explorador es el método de inicio de sesión predeterminado de PowerShell 7. El comando Connect-ExchangeOnline abre la página de inicio de sesión de Azure AD en el explorador predeterminado. Después de escribir las credenciales, los cmdlets de Exchange Online anteriores y Exchange Online cmdlets de módulo de PowerShell están disponibles en la sesión de PowerShell resultante.

Si usa el parámetro UserPrincipalName en el comando, se usa el valor UPN en la página de inicio de sesión del explorador.

Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com

Inicio de sesión basado en dispositivos

Use el inicio de sesión basado en el dispositivo cuando no haya ningún explorador disponible (y, por lo tanto, no pueda ver la página de inicio de sesión):

Connect-ExchangeOnline -Device

El comando devuelve una dirección URL y un código único vinculado a la sesión. Tendrá que abrir la dirección URL en un explorador de cualquier equipo y escribir el código único. Después de completar el inicio de sesión en el explorador web, la sesión de la ventana de PowerShell 7 se autentica mediante el flujo normal de autenticación de Azure AD y los cmdlets de Exchange Online se importan después de unos segundos.

Credenciales en línea

Puede escribir sus credenciales directamente en la ventana de PowerShell sin necesidad de ir al explorador para el SSO.

Nota

Este método no funciona con cuentas que usan la autenticación multifactor.

Este método es una mejora del parámetro Credential, ya que no necesita almacenar las credenciales localmente en un script y puede introducir las credenciales directamente en una sesión interactiva de PowerShell.

Connect-ExchangeOnline -InlineCredential

¿Cómo sabe que se ha conectado correctamente?

Si no se muestra ningún error, la conexión se habrá establecido correctamente. Una prueba rápida consiste en ejecutar un cmdlet de PowerShell de Exchange Online como, por ejemplo, Get-Mailbox, y ver los resultados.

Si surgen errores, compruebe los siguientes requisitos:

  • Un problema habitual es una contraseña incorrecta. Vuelva a realizar los tres pasos y preste especial atención al nombre de usuario y contraseña que use.

  • Para evitar que se produzcan ataques por denegación de servicio (DoS), solo se pueden tener abiertas cinco conexiones de PowerShell remotas a Exchange Online.

  • La cuenta que use para conectarse debe estar habilitada para PowerShell remoto. Para más información consulte Activar o desactivar el acceso a Exchange Online PowerShell.

  • El tráfico del puerto TCP 80 necesita estar abierto entre el equipo local y Microsoft 365. Probablemente está abierto, pero es algo que debe tener en cuenta si su organización tiene una directiva de acceso a Internet restrictiva.

  • Si su organización usa la autenticación federada, y el proveedor de identidades (IDP) o el servicio de token de seguridad (STS) no están disponibles públicamente, no podrá usar una cuenta federada para conectarse a Exchange Online PowerShell. En su lugar, cree y use una cuenta no federada en Microsoft 365 para conectarse a Exchange Online PowerShell.