Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo contiene instrucciones sobre cómo conectarse a PowerShell de Exchange Online mediante el módulo de PowerShell de Exchange Online con o sin autenticación multifactor (MFA).
Sugerencia
Las instrucciones de conexión de este artículo también se aplican al complemento de seguridad integrado para buzones locales.
El módulo Exchange Online PowerShell usa la autenticación moderna para conectarse a Exchange Online PowerShell y a PowerShell de seguridad & cumplimiento. Para obtener más información sobre el módulo de PowerShell de Exchange Online, consulte Acerca del módulo de PowerShell de Exchange Online.
Para conectarse a PowerShell de Exchange Online para la automatización, consulte Autenticación de solo aplicación para scripts desatendidos y Usar identidades administradas de Azure para conectarse a PowerShell de Exchange Online.
Para conectarse a PowerShell de Exchange Online desde C#, consulte Usar C# para conectarse a PowerShell de Exchange Online.
¿Qué necesita saber antes de empezar?
Los requisitos para instalar y utilizar el módulo se describen en Requisitos previos para el módulo de PowerShell de Exchange Online y sistemas operativos compatibles con el módulo de PowerShell de Exchange Online.
Después de conectarse, el control de acceso basado en roles (RBAC) controla los cmdlets y parámetros a los que tiene o no tiene acceso. Para obtener más información, consulte los permisos en Exchange Online.
Para buscar los permisos necesarios para ejecutar cmdlets específicos de Exchange Online, vea Buscar los permisos necesarios para ejecutar cualquier cmdlet de Exchange.
Paso 1: Cargar el módulo de PowerShell de Exchange Online
Nota:
Si el módulo ya está instalado, normalmente puede omitir este paso y ejecutar Connect-ExchangeOnline sin cargar manualmente el módulo primero.
Después de instalar el módulo, abra una ventana de PowerShell y cargue el módulo ejecutando el siguiente comando:
Import-Module ExchangeOnlineManagement
Paso 2: Conectar y autenticar
Nota:
Es probable que se produzca un error en los comandos de conexión si la ruta de perfil de la cuenta que usó para conectarse contiene caracteres especiales de PowerShell (por ejemplo, $). La solución alternativa es conectarse con una cuenta diferente que no tenga caracteres especiales en la ruta de acceso del perfil.
El comando que necesita ejecutar usa la sintaxis siguiente:
Connect-ExchangeOnline [-UserPrincipalName <UPN>] [-ExchangeEnvironmentName <Value>] [-ShowBanner:$false] [-LoadCmdletHelp] [-DelegatedOrganization <String>] [-SkipLoadingFormatData] [-DisableWAM]
Para obtener información detallada acerca de la sintaxis y los parámetros, consulte Connect-ExchangeOnline.
<UPN> es su cuenta en formato de nombre principal de usuario (por ejemplo,
navin@contoso.onmicrosoft.com).Cuando usa el parámetro ExchangeEnvironmentName, no es necesario usar los parámetros ConnectionUri o AzureADAuthorizationEndPointUrl. Los valores comunes para el parámetro ExchangeEnvironmentName se describen en la tabla siguiente:
Entorno Valor Microsoft 365 o Microsoft 365 GCC No aplicable* Microsoft 365 GCC High O365USGovGCCHighMicrosoft 365 DoD O365USGovDoDOffice 365 Germany O365GermanyCloudOffice 365 operado por 21Vianet O365China* El valor
O365Defaultrequerido también es el valor predeterminado, por lo que no es necesario usar el parámetro ExchangeEnvironmentName en entornos Microsoft 365 o GCC de Microsoft 365.En la versión 3.7.0 o posterior, la ayuda de la línea de comandos para los cmdlets de PowerShell de Exchange Online ya no se carga de forma predeterminada. Use el modificador LoadCmdletHelp para que la ayuda para los cmdlets de PowerShell de Exchange Online esté disponible para el cmdlet Get-Help.
El parámetro DelegatedOrganization especifica la organización del cliente que desea administrar como partner autorizado. Para obtener más información, consulte los ejemplos de conexión más adelante en este artículo.
En función de la naturaleza de la organización, es posible que pueda omitir el parámetro UserPrincipalName en el comando de conexión. 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.Use el modificador SkipLoadingFormatData para evitar errores al conectarse a PowerShell de Exchange Online desde un servicio de Windows.
PowerShell 7 requiere la versión 2.0.4 o posterior.
En la versión 3.7.2 o posterior, el modificador DisableWAM está disponible para deshabilitar el Administrador de cuentas web (WAM) si obtiene errores de conexión relacionados con WAM.
Los ejemplos de conexión de las secciones siguientes usan la autenticación moderna y no pueden usar la autenticación básica.
Conéctese a PowerShell de Exchange Online con un mensaje de inicio de sesión interactivo
Los ejemplos siguientes funcionan en Windows PowerShell 5.1 y PowerShell 7 para cuentas con o sin MFA:
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.onmicrosoft.comEste ejemplo se conecta al PowerShell de Exchange Online en una organización de Microsoft GCC High:
Connect-ExchangeOnline -UserPrincipalName laura@blueyonderairlines.us -ExchangeEnvironmentName O365USGovGCCHighEste ejemplo se conecta al PowerShell de Exchange Online en una organización de Microsoft 365 DoD:
Connect-ExchangeOnline -UserPrincipalName julia@adatum.mil -ExchangeEnvironmentName O365USGovDoDEste ejemplo se conecta al PowerShell de Exchange Online en una organización de Office 365 Germany:
Connect-ExchangeOnline -UserPrincipalName lukas@fabrikam.de -ExchangeEnvironmentName O365GermanyCloud
En la ventana de inicio de sesión que se abre, escriba la contraseña y, a continuación, seleccione Iniciar sesión.
Nota:
En PowerShell 7, el inicio de sesión único (SSO) basado en el explorador se usa de forma predeterminada, por lo que el mensaje de inicio de sesión se abre en el explorador web predeterminado en lugar de un cuadro de diálogo independiente.
Solo MFA: se genera y entrega un código de verificación en función de la opción de respuesta configurada para su cuenta (por ejemplo, un mensaje de texto o la aplicación Microsoft Authenticator en su dispositivo).
En la ventana de comprobación que se abre, escriba el código de verificación y, a continuación, seleccione Verificar.
Métodos de conexión exclusivos de PowerShell 7
En PowerShell 7 para las cuentas sin MFA, en este ejemplo se solicitan credenciales en la ventana de PowerShell:
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com -InlineCredentialEn PowerShell 7, para cuentas con o sin MFA, en este ejemplo se usa otro equipo para autenticar y completar la conexión. Normalmente, este método se usa en equipos que no tienen exploradores web (los usuarios no pueden escribir sus credenciales en PowerShell 7):
Ejecute el siguiente comando en el equipo al que desea conectarse:
Connect-ExchangeOnline -DeviceEl comando de conexión espera a la siguiente salida:
Para iniciar sesión, use un explorador web para abrir la página https://microsoft.com/devicelogin y escriba el código <XXXXXXXXX> para autenticarse.
Anote el valor del <código XXXXXXXXX> .
En cualquier otro dispositivo con un explorador web y acceso a Internet, abra https://microsoft.com/devicelogin y escriba el <valor del código XXXXXXXXX> del paso anterior.
Escriba sus credenciales en las páginas resultantes.
En el mensaje de confirmación, seleccione Continuar. El siguiente mensaje debe indicar que se ha realizado correctamente y puede cerrar el explorador o la pestaña.
El comando del paso 1 continúa conectándole a PowerShell de Exchange Online.
Conéctese a PowerShell de Exchange Online sin una solicitud de inicio de sesión (scripts desatendidos)
Para obtener instrucciones completas, consulte Autenticación de solo aplicación para scripts desatendidos en Exchange Online PowerShell y Seguridad & Cumplimiento de PowerShell.
Conectarse a PowerShell de Exchange Online en organizaciones de clientes
Para obtener más información sobre las organizaciones de partners y clientes, consulte los siguientes artículos:
- ¿Qué es el programa Proveedor de soluciones en la nube (CSP)?
- Introducción a los privilegios de administración delegada pormenorizados (GDAP)
Este ejemplo conecta a organizaciones de clientes en los siguientes escenarios:
Conéctese a una organización cliente mediante una cuenta de CSP.
Conéctese a una organización cliente mediante un GDAP.
Conéctese a una organización cliente como invitado.
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com -DelegatedOrganization adatum.onmicrosoft.com
Conectarse a PowerShell de Exchange Online con una identidad administrada
Para obtener más información, vea Uso de identidades administradas de Azure para conectarse a PowerShell de Exchange Online.
Identidad administrada asignada por el sistema:
Connect-ExchangeOnline -ManagedIdentity -Organization "cohovinyard.onmicrosoft.com"Identidad administrada asignada y asignada por el usuario:
Connect-ExchangeOnline -ManagedIdentity -Organization "constoso.onmicrosoft.com" -ManagedIdentityAccountId <ManagedIdentityAccountIdGuid>
Paso 3: Desconéctate cuando hayas terminado
Asegúrese de desconectar la sesión cuando haya terminado. Si cierra la ventana de PowerShell sin desconectar la sesión, podría usar todas las sesiones disponibles y tendría que esperar a que expiren. Para desconectar la sesión, ejecute el siguiente comando:
Disconnect-ExchangeOnline
Para desconectarse silenciosamente sin una solicitud de confirmación, ejecute el siguiente comando:
Disconnect-ExchangeOnline -Confirm:$false
Nota:
Es probable que se produzca un error en el comando de desconexión si la ruta de perfil de la cuenta que usó para conectarse contiene caracteres especiales de PowerShell (por ejemplo, $). La solución alternativa es conectarse con una cuenta diferente que no tenga caracteres especiales en la ruta de acceso del perfil.
¿Cómo sabe si 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, por ejemplo, Get-AcceptedDomain, y ver los resultados.
Si surgen errores, compruebe los siguientes requisitos:
Un problema habitual es una contraseña incorrecta. Vuelva a ejecutar los pasos de conexión y preste especial atención al nombre de usuario y la contraseña que usa.
La cuenta que usa para conectarse debe estar habilitada para el acceso a PowerShell. Para obtener más información, vea Habilitar o deshabilitar el acceso a PowerShell de Exchange Online.
Debe abrir el tráfico del puerto TCP 80 entre su equipo local y Microsoft 365. Probablemente esté abierto, pero es un aspecto que se debe tener en cuenta si la directiva de acceso a Internet de su organización es 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 PowerShell de Exchange Online.
Las conexiones basadas en REST a PowerShell de Exchange Online requieren el módulo PowerShellGet. Por dependencia, el módulo PowerShellGet requiere el módulo PackageManagement. Obtendrá errores si intenta conectarse sin tener ambos módulos instalados. Por ejemplo, es posible que vea el siguiente error:
El término 'Update-ModuleManifest' no se reconoce como el nombre de un cmdlet, una función, un archivo de script o un programa ejecutable. Compruebe la ortografía del nombre o, si se ha incluido una ruta, asegúrese de que la ruta es correcta e inténtelo de nuevo.
Para obtener más información sobre los requisitos de los módulos PowerShellGet y PackageManagement, consulte PowerShellGet para conexiones basadas en REST en Windows.
Después de conectarte, es posible que recibas un error similar al siguiente:
No se pudo cargar el archivo o ensamblado "System.IdentityModel.Tokens.Jwt,Version=<Version>, Culture=neutral, PublicKeyToken=<TokenValue>". No se pudo encontrar o cargar un archivo específico.
Este error se produce cuando el módulo de PowerShell de Exchange Online entra en conflicto con otro módulo importado en el espacio de ejecución. Intenta conectarte en una nueva ventana de Windows PowerShell antes de importar otros módulos.
Apéndice: Comparación de los métodos de conexión antiguos y nuevos
En esta sección se intenta comparar los métodos de conexión anteriores que reemplazó el módulo de PowerShell de Exchange Online. Los procedimientos de autenticación básica y token de OAuth se incluyen solo como referencia histórica y ya no se admiten.
Conectarse sin autenticación multifactor
Módulo de PowerShell de Exchange Online con solicitud interactiva de credenciales:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.comMódulo de PowerShell de Exchange Online sin solicitud de credenciales interactiva:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) Connect-ExchangeOnline -Credential $o365credAutenticación básica:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/ -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession with OAuth token:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?BasicAuthToOAuthConversion=true -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Conectar con la autenticación multifactor
Módulo de PowerShell de Exchange Online con solicitud interactiva de credenciales:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.comAutenticación básica: no disponible.
New-PSSession con token de OAuth: no disponible.
Conectarse a una organización cliente con una cuenta de CSP
Módulo de PowerShell de Exchange Online:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.comAutenticación básica:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession with OAuth token:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/? DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Conectarse a una organización cliente mediante GDAP
Módulo de PowerShell de Exchange Online:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.comAutenticación básica:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession with OAuth token:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Conectarse a una organización cliente como invitado
Módulo de PowerShell de Exchange Online:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.comAutenticación básica:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession with OAuth token:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Conectarse para ejecutar scripts desatendidos
Módulo de PowerShell de Exchange Online:
Huella digital del certificado:
Nota:
El parámetro CertificateThumbprint solo se admite en Microsoft Windows.
Connect-ExchangeOnline -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"Objeto de certificado:
Connect-ExchangeOnline -Certificate <%X509Certificate2Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"Archivo de certificado:
Connect-ExchangeOnline -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (ConvertTo-SecureString -String "<Password>" -AsPlainText -Force) -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"
Para obtener más información, consulte Autenticación de solo aplicación para scripts desatendidos en Exchange Online PowerShell y Seguridad & Cumplimiento de PowerShell.
Autenticación básica:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/ -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $SessionNew-PSSession with OAuth token:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@contoso.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Conectarse mediante una identidad administrada
Módulo de PowerShell de Exchange Online:
Identidad administrada asignada por el sistema:
Connect-ExchangeOnline -ManagedIdentity -Organization "contoso.onmicrosoft.com"Identidad administrada asignada por el usuario:
Connect-ExchangeOnline -ManagedIdentity -Organization "contoso.onmicrosoft.com" -ManagedIdentityAccountId <UserAssignedManagedIdentityPrincipalIdValue>
Para obtener más información, vea Uso de identidades administradas de Azure para conectarse a PowerShell de Exchange Online.
Autenticación básica: no disponible.
New-PSSession con token de OAuth: no disponible.