Acerca del módulo de PowerShell Exchange Online

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.

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).

Para obtener instrucciones de conexión con el módulo, consulte los artículos siguientes:

En el resto de este artículo, se explica cómo funciona el módulo, cómo se instala y se mantiene el módulo, y los cmdlets de Exchange Online optimizados disponibles en el módulo.

Novedades para el módulo EXO V3

La versión 3.0.0 o posterior se conoce como módulo EXO V3. El módulo EXO V3 mejora las capacidades históricas del módulo EXO V2 (versión 2.0.5 y anteriores) con las siguientes características:

  • La autenticación basada en certificados (también conocida como CBA o autenticación solo de aplicación) está disponible para PowerShell de cumplimiento de seguridad & .

  • Los cmdlets respaldados por la API REST están disponibles en Exchange Online PowerShell. Los cmdlets de API REST tienen las siguientes ventajas sobre sus homólogos históricos:

    • Más seguro: los cmdlets de la API REST tienen compatibilidad integrada con la autenticación moderna y no se basan en la sesión remota de PowerShell, por lo que PowerShell en el equipo cliente no necesita autenticación básica en WinRM para Exchange Online PowerShell.
    • Más confiable: los cmdlets de la API REST controlan errores transitorios con reintentos integrados, por lo que se minimizan los errores o retrasos. Por ejemplo:
      • Errores debidos a retrasos en la red.
      • Retrasos debidos a consultas grandes que tardan mucho tiempo en completarse.
    • Mejor rendimiento: la conexión evita configurar un espacio de ejecución de PowerShell en Exchange Online PowerShell.

    Las ventajas de los cmdlets de API REST en Exchange Online PowerShell se describen en la tabla siguiente:

      Cmdlets de PowerShell remotos Cmdlets Get-EXO* Cmdlets de API REST
    Seguridad Menos seguro Altamente seguro Highly secure
    Rendimiento Bajo rendimiento Alto rendimiento Rendimiento medio
    Confiabilidad Menos confiable Altamente confiable Highly reliable
    Funcionalidad Todos los parámetros y propiedades de salida disponibles Parámetros limitados y propiedades de salida disponibles All parameters and output properties available

    Nota:

    Actualmente, la API REST no respalda ningún cmdlet de PowerShell de cumplimiento de seguridad & . Todos los cmdlets de PowerShell de cumplimiento de seguridad & todavía se basan en la sesión remota de PowerShell, por lo que PowerShell en el equipo cliente requiere autenticación básica en WinRM para usar correctamente el cmdlet Connect-IPPSSession .

    • Los cmdlets de api rest de Exchange Online PowerShell tienen los mismos nombres de cmdlet y funcionan igual que sus equivalentes remotos de PowerShell, por lo que no es necesario actualizar ninguno de los scripts.

    • Prácticamente todos los cmdlets de PowerShell remotos disponibles en Exchange Online ahora están respaldados por la API de REST.

  • El modificador UseRPSSession de Connect-ExchangeOnline concede acceso a todos los cmdlets de PowerShell remotos existentes en Exchange Online PowerShell:

  • Algunos cmdlets de la API de REST en Exchange Online PowerShell se han actualizado con el modificador experimentalUseCustomRouting. Este modificador enruta el comando directamente al servidor de buzones de correo necesario y podría mejorar el rendimiento general.

    • Al usar el modificador UseCustomRouting, solo puede usar los siguientes valores para la identidad del buzón:

      • Nombre principal del usuario (UPN)
      • Dirección de correo electrónico
      • GUID del buzón de correo
    • El modificador UseCustomRouting solo está disponible en los siguientes cmdlets de la API de REST en Exchange Online PowerShell:

      • Get-Clutter
      • Get-FocusedInbox
      • Get-InboxRule
      • Get-MailboxAutoReplyConfiguration
      • Get-MailboxCalendarFolder
      • Get-MailboxFolderPermission
      • Get-MailboxFolderStatistics
      • Get-MailboxMessageConfiguration
      • Get-MailboxPermission
      • Get-MailboxRegionalConfiguration
      • Get-MailboxStatistics
      • Get-MobileDeviceStatistics
      • Get-UserPhoto
      • Remove-CalendarEvents
      • Set-Clutter
      • Set-FocusedInbox
      • Set-MailboxRegionalConfiguration
      • Set-UserPhoto

      Use el modificador UseCustomRouting de forma experimental e informe de los problemas que encuentre.

  • Use el cmdlet Get-ConnectionInformation para obtener información sobre las conexiones basadas en REST para Exchange Online PowerShell. Este cmdlet es necesario porque el cmdlet Get-PSSession de Windows PowerShell no devuelve información para las conexiones basadas en REST.

    Los escenarios en los que puede usar Get-ConnectionInformation se describen en la tabla siguiente:

    Escenario Salida esperada
    Ejecute antes de un comando Connect-ExchangeOnline . Devuelve el valor nothing.
    Ejecute después del comando Connect-ExchangeOnline que usa el modificador UseRPSSession . Devuelve nada (use Get-PSSession).
    Ejecute después de un comando Connect-ExchangeOnline basado en REST (sin modificador UseRPSSession ). Devuelve un objeto de información de conexión.
    Ejecute después de varios comandos Connect-ExchangeOnline basados en REST. Devuelve una colección de objetos de información de conexión.
    Ejecute después de varios comandos Connect-ExchangeOnline con y sin el modificador UseRPSSession . Devuelve un objeto de información de conexión para cada sesión basada en REST.
  • Use el modificador SkipLoadingFormatData en el cmdlet Connect-ExchangeOnline en las conexiones basadas en REST (no usó el modificador UseRPSSession ) para evitar la carga de datos de formato y ejecutar comandos Connect-ExchangeOnline con mayor rapidez.

Para obtener más información, consulte la sección Notas de la versión más adelante en este artículo.

Notificar errores y problemas del módulo de PowerShell Exchange Online

Nota:

En el caso de las versiones de disponibilidad general del módulo, abra una incidencia de soporte técnico para los problemas que tenga. Para las versiones preliminares del módulo, use la dirección de correo electrónico como se describe en esta sección. También puede usar la dirección de correo electrónico para comentarios y sugerencias para las versiones de disponibilidad general y versión preliminar del módulo.

Cuando notofique un problema en exocmdletpreview[at]service[dot]microsoft[dot]com, asegúrese de incluir los archivos de registro en su mensaje de correo electrónico. Para generar los archivos de registro, reemplace <Ruta de acceso para almacenar el archivo> de registro por la carpeta de salida que desee y ejecute el siguiente comando:

Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path to store log file> -LogLevel All

Nota:

El uso frecuente de los cmdlets Connect-ExchangeOnline y Disconnect-ExchangeOnline en una sola sesión o script de PowerShell puede provocar una pérdida de memoria. Lo mejor para evitar este problema es usar el parámetro CommandName en el cmdlet Connect-ExchangeOnline para limitar los cmdlets que se usan en la sesión.

Cmdlets en el módulo de PowerShell Exchange Online

Todas las versiones del módulo contienen nueve cmdlets Get-EXO* exclusivos para Exchange Online PowerShell que están optimizados para la velocidad en escenarios de recuperación masiva de datos (miles y miles de objetos). Los cmdlets de PowerShell remotos relacionados más antiguos siguen estando disponibles.

En la tabla siguiente se muestran los cmdlets de PowerShell mejorados Exchange Online que solo están disponibles en el módulo:

Cmdlet del módulo EXO Cmdlet anterior relacionado
Get-EXOMailbox Get-Mailbox
Get-EXORecipient Get-Recipient
Get-EXOCasMailbox Get-CASMailbox
Get-EXOMailboxPermission Get-MailboxPermission
Get-EXORecipientPermission Get-RecipientPermission
Get-EXOMailboxStatistics Get-MailboxStatistics
Get-EXOMailboxFolderStatistics Get-MailboxFolderStatistics
Get-EXOMailboxFolderPermission Get-MailboxFolderPermission
Get-EXOMobileDeviceStatistics Get-MobileDeviceStatistics

Los cmdlets relacionados con la conexión del módulo se enumeran en la tabla siguiente:

EXO module cmdlet Cmdlet anterior relacionado Comentarios
Connect-ExchangeOnline Connect-EXOPSSession en V1 del módulo
o
New-PSSession
Connect-IPPSSession Connect-IPPSSession en V1 del módulo
Disconnect-ExchangeOnline Remove-PSSession
Get-ConnectionInformation Get-PSSession Disponible en la versión 3.0.0 o posterior.

En la tabla siguiente se muestran varios cmdlets de Exchange Online que se encuentran en el módulo:

Cmdlet Comentarios
Get-MyAnalyticsFeatureConfig Disponible en la versión 2.0.4 o posteriores.
Set-MyAnalyticsFeatureConfig Disponible en la versión 2.0.4 o posteriores.
Get-UserBriefingConfig Reemplazado con Get-MyAnalyticsFeatureConfig
Set-UserBriefingConfig Reemplazado con Set-MyAnalyticsFeatureConfig.
Get-VivaInsightsSettings Disponible en v2.0.5 o posterior.
Set-VivaInsightsSettings Disponible en v2.0.5 o posterior.

Instalación y mantenimiento del módulo de PowerShell Exchange Online

Descargue el módulo de la galería de PowerShell en https://www.powershellgallery.com/packages/ExchangeOnlineManagement/.

En los procedimientos de esta sección se explica cómo instalar, actualizar y desinstalar el módulo.

Sistemas operativos compatibles para el módulo de PowerShell Exchange Online

Las versiones más recientes del módulo se admiten oficialmente en PowerShell 7 en Windows, Linux y Apple macOS.

En concreto, la versión 2.0.4 o posterior se admite en PowerShell 7.0.3 o posterior.

Para más información sobre PowerShell 7, consulte el Anuncio de PowerShell 7.0.

Apple macOS

El módulo se admite en las siguientes versiones de macOS:

  • macOS 11 Big Sur o posterior
  • macOS 10.15 Catalina
  • macOS 10.14 Mojave

Para obtener instrucciones sobre cómo instalar PowerShell 7 en macOS, consulte Instalar PowerShell en macOS.

Nota:

Como se describe en el artículo de instalación, debe instalar OpenSSL, que es necesario para WSMan.

Después de instalar PowerShell 7 y OpenSSL, siga estos pasos:

  1. Ejecute PowerShell como superusuario: sudo pwsh

  2. En la sesión de superusuario de PowerShell, ejecute los siguientes comandos:

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    Si se le solicita, acepte PSGallery como origen de los cmdlets.

Ahora puede realizar los requisitos previos normales de PowerShell e instalar el módulo de PowerShell Exchange Online.

Linux

El módulo se admite oficialmente en las siguientes distribuciones de Linux:

  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS

Si tiene problemas para usar el módulo en otras distribuciones de Linux, notifique cualquier problema.

Para obtener instrucciones sobre cómo instalar PowerShell 7 en Linux, consulte Instalar PowerShell en Linux.

Después de instalar PowerShell 7, siga estos pasos:

  1. Ejecute PowerShell como superusuario: sudo pwsh

  2. En la sesión de superusuario de PowerShell, ejecute los siguientes comandos:

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    Si se le solicita, acepte PSGallery como origen de los cmdlets.

Now you can do the regular PowerShell prerequisites and install the Exchange Online PowerShell module.

Nota:

Si se conecta a Exchange Online PowerShell desde una red que está detrás de un servidor proxy, el módulo EXO V2 (versión v2.0.5 o anterior) no funciona en Linux. Debe usar el módulo EXO V3 (v3.0.0 o posterior) en Linux para conectarse desde una red que está detrás de un servidor proxy.

Windows

Todas las versiones del módulo se admiten en Windows PowerShell 5.1.

PowerShell 7 en Windows requiere la versión 2.0.4 o posterior.

La versión 2.0.5 o posterior del módulo requiere la conexión de Microsoft .NET Framework 4.7.1 o posterior. De lo contrario, obtendrá un System.Runtime.InteropServices.OSPlatform error. Este requisito no debe ser un problema en las versiones actuales de Windows. Para obtener más información sobre las versiones de Windows que admiten .NET Framework 4.7.1, consulte este artículo.

Windows PowerShell requisitos y compatibilidad con módulos en versiones anteriores de Windows se describen en la lista siguiente:

  • Windows 8.1 1

  • Windows Server 2012 o Windows Server 2012 R21

  • Windows 7 Service Pack 1 (SP1)2,3,4

  • Windows Server 2008 R2 SP1 2,3,4

  • 1 PowerShell 7 en esta versión de Windows requiere la Windows 10 Universal C Runtime (CRT).

  • 2 Esta versión de Windows ha llegado a su fin de soporte técnico y ahora solo se admite en máquinas virtuales de Azure.

  • 3 Esta versión de Windows solo admite la versión 2.0.3 o versiones anteriores del módulo.

  • 4 Windows PowerShell 5.1 en esta versión de Windows requiere .NET Framework 4.5 o posterior y el Windows Management Framework 5.1. Para más información, consulte Windows Management Framework 5.1.

Requisitos previos para el módulo de PowerShell Exchange Online

Nota:

La configuración descrita en esta sección es necesaria en todas las versiones de PowerShell en todos los sistemas operativos.

Establecer la directiva de ejecución de PowerShell en RemoteSigned

PowerShell debe estar configurado para ejecutar scripts y, de forma predeterminado, no lo está. Obtendrá el siguiente error al intentar conectar:

No se pueden cargar archivos porque la ejecución de scripts está deshabilitada en este sistema. Proporcione un certificado válido con el cual firmar los archivos.

Para requerir que todos los scripts de PowerShell que se descargue de internet sean de publicadores de confianza, ejecute el siguiente comando en una ventana de PowerShell con permisos elevados (o sea, una ventana de PowerShell que se abre seleccionando Ejecutar como administrador):

Set-ExecutionPolicy RemoteSigned

Para obtener más información sobre las directivas de ejecución, consulte Acerca de las Directivas de ejecución.

Activar la autenticación básica en WinRM

Nota:

Como se describió anteriormente en este artículo, el módulo EXO V3 no requiere autenticación básica en WinRM para las conexiones basadas en REST para Exchange Online PowerShell.

Para las conexiones remotas de PowerShell, WinRM debe permitir la autenticación básica. No enviamos la combinación de nombre de usuario y contraseña. El encabezado de autenticación básica es necesario para enviar el token de OAuth de la sesión, ya que la implementación del lado cliente de WinRM no admite OAuth.

Para comprobar que la autenticación básica está habilitada para WinRM, ejecute el siguiente comando en un símbolo del sistema o en Windows PowerShell:

Nota:

Los siguientes comandos requieren que WinRM esté habilitado. Para habilitar WinRM, ejecute el siguiente comando: winrm quickconfig.

winrm get winrm/config/client/auth

Si no ve el valor Basic = true, debe ejecutar uno de los siguientes comandos para habilitar la autenticación básica para WinRM:

  • En un símbolo del sistema:

    winrm set winrm/config/client/auth @{Basic="true"}
    
  • En Windows PowerShell:

    winrm set winrm/config/client/auth '@{Basic="true"}'
    
  • En Windows PowerShell para modificar el registro:

    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client' -Name 'AllowBasic' -Type DWord -Value '1'
    

Si la autenticación básica para WinRM está deshabilitada, recibirá uno de los siguientes errores cuando intente conectarse:

El cliente WinRM no puede procesar la solicitud. Actualmente, la autenticación básica está deshabilitada en la configuración del cliente. Cambie la configuración del cliente e intente de nuevo la solicitud.

Error al crear la sesión de PowerShell con OAuth.

Sugerencia

¿Problemas? Solicite ayuda en los foros de Exchange. Visite los foros en Exchange Online o Exchange Online Protection.

Instalación del módulo de PowerShell Exchange Online

Para instalar el módulo por primera vez, siga estos pasos:

  1. Instale o actualice el módulo PowerShellGet, como se describe en Instalación de PowerShellGet.

  2. Cierre y vuelva a abrir la ventana de Windows PowerShell.

  3. Ahora puede usar el cmdlet Install-Module para instalar el módulo desde el Galería de PowerShell. Normalmente, querrá la versión pública más reciente del módulo, pero también puede instalar una versión preliminar si hay alguna disponible.

    • Para instalar la última versión pública del módulo, ejecute uno de los siguientes comandos:

      • En una ventana de PowerShell con privilegios elevados (todos los usuarios):

        Install-Module -Name ExchangeOnlineManagement
        
      • Solo para la cuenta de usuario actual:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • Para ver las versiones preliminares disponibles del módulo, ejecute el siguiente comando:

      Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
      
    • Para instalar la versión preliminar más reciente disponible del módulo, ejecute uno de los siguientes comandos:

      • En una ventana de PowerShell con privilegios elevados (todos los usuarios):

        Install-Module -Name ExchangeOnlineManagement -AllowPrerelease
        
      • Solo para la cuenta de usuario actual:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
        
    • Para instalar una versión preliminar específica del módulo, reemplace <PreviewVersion> por el valor necesario y ejecute uno de los siguientes comandos:

      • En una ventana de PowerShell con privilegios elevados (todos los usuarios):

        Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
        
      • Solo para la cuenta de usuario actual:

        Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease -Scope CurrentUser
        

    Cuando haya terminado, escriba Y para aceptar el contrato de licencia.

Para obtener más información acerca de la sintaxis y los parámetros, vea Install-Module.

Actualización del módulo de PowerShell Exchange Online

Si el módulo ya está instalado en el equipo, puede usar los procedimientos de esta sección para actualizar el módulo.

  1. Para ver la versión del módulo que está instalado actualmente y dónde está instalado, ejecute el siguiente comando:

    Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation
    

    Si el módulo está instalado en C:\Archivos de programa\WindowsPowerShell\Modules, se instala para todos los usuarios. Si el módulo está instalado en la carpeta Documentos, solo se instala para la cuenta de usuario actual.

  2. Puede usar el cmdlet Update-Module para actualizar el módulo desde el Galería de PowerShell. Normalmente, querrá la versión pública más reciente del módulo, pero también puede actualizar a una versión preliminar si hay alguna disponible.

    • Para actualizar a la versión pública más reciente del módulo, ejecute uno de los siguientes comandos en función de cómo instaló originalmente el módulo (todos los usuarios frente a solo para la cuenta de usuario actual):

      • En una ventana de PowerShell con privilegios elevados (todos los usuarios):

        Update-Module -Name ExchangeOnlineManagement
        
      • Solo para la cuenta de usuario actual:

        Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • Para actualizar a una versión preliminar del módulo, puede actualizar a la versión preliminar más reciente disponible o puede usar el parámetro RequiredVersion para actualizar a una versión preliminar específica.

      • To see the available Preview versions of the module, run the following command:

        Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
        
      • Para actualizar a la versión preliminar más reciente disponible del módulo, ejecute uno de los siguientes comandos:

        • En una ventana de PowerShell con privilegios elevados (todos los usuarios):

          Update-Module -Name ExchangeOnlineManagement -AllowPrerelease
          
        • Solo para la cuenta de usuario actual:

          Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
          
      • Para actualizar a una versión preliminar específica del módulo, reemplace <PreviewVersion> por el valor necesario y ejecute uno de los siguientes comandos:

        • En una ventana de PowerShell con privilegios elevados (todos los usuarios):

          Update-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
          
        • Solo para la cuenta de usuario actual:

          Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -RequiredVersion <PreviewVersion> -AllowPrerelease
          

    Cuando haya terminado, escriba Y para aceptar el contrato de licencia.

  3. Para confirmar que la actualización se realizó correctamente, ejecute los siguientes comandos para comprobar la información de la versión del módulo instalado:

    Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
    

Para obtener más información acerca de la sintaxis y los parámetros, vea Update-Module.

Solución de problemas de instalación del módulo de PowerShell Exchange Online

  • Recibe uno de los siguientes errores:

    La versión actual de PowerShellGet no admite el módulo "ExchangeOnlineManagement" especificado con PowerShellGetFormatVersion "version>"<. Obtenga la última versión del módulo PowerShellGet para instalar este módulo "ExchangeOnlineManagement".

    ADVERTENCIA: No se puede descargar del URI 'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409' a ''.

    ADVERTENCIA: No se puede descargar la lista de proveedores disponibles. Compruebe su conexión a Internet.

    Actualice la instalación del módulo PowerShellGet a la última versión, tal y como se describe en instalación de PowerShellGet. Asegúrese de cerrar y volver a abrir la ventana de PowerShell antes de intentar actualizar el módulo ExchangeOnlineManagement de nuevo.

  • A partir de abril de 2020, la galería de PowerShell solo admite conexiones con TLS 1.2 o posterior. Para más información consulte la Soporte de galería de PowerShell.

    Para comprobar la configuración actual en Microsoft .NET Framework, ejecute el siguiente comando en Windows PowerShell:

    [Net.ServicePointManager]::SecurityProtocol
    

    Como se describe en el artículo de soporte de TLS de la galería de PowerShell, para cambiar temporalmente el protocolo de seguridad TLS 1.2 para instalar los módulos PowerShellGet o ExchangeOnlineManagement, ejecute el siguiente comando en Windows PowerShell antes de instalar el módulo:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 
    

    Para habilitar permanentemente la criptografía segura en Microsoft .NET Framework versión 4.x o posterior, ejecute uno de los siguientes comandos en función de la arquitectura de Windows:

    • x64:

      Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
      
    • x86

      Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
      

    Para más información, vea SchUseStrongCrypto.

  • Recibe el siguiente error:

    No se encontró ninguna coincidencia para los criterios de búsqueda especificados y el nombre del módulo 'ExchangeOnlineManagement'. Intente ejecutar Get-PSRepository para ver todos los repositorios de módulos registrados disponibles.

    El repositorio predeterminado para módulos de PowerShell no está establecido en PSGallery. Para corregir este error, ejecute el siguiente comando:

    Register-PSRepository -Default
    

Desinstalación del módulo de PowerShell Exchange Online

Para ver la versión del módulo que está instalado actualmente y dónde está instalado, ejecute el siguiente comando:

Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation

Si el módulo está instalado en C:\Archivos de programa\WindowsPowerShell\Modules, se instaló para todos los usuarios. Si el módulo está instalado en la carpeta Documentos, solo se instaló para la cuenta de usuario actual.

Para desinstalar el módulo, ejecute uno de los siguientes comandos en función de cómo instaló originalmente el módulo (todos los usuarios frente a solo para la cuenta de usuario actual):

  • En una ventana de PowerShell con privilegios elevados (todos los usuarios):

    Uninstall-Module -Name ExchangeOnlineManagement
    
  • Solo para la cuenta de usuario actual:

    Uninstall-Module -Name ExchangeOnlineManagement
    

Para obtener más información acerca de la sintaxis y los parámetros, vea Uninstall-Module.

Propiedades y conjuntos de propiedades en el módulo de PowerShell de Exchange Online

Los cmdlets de Exchange Online tradicionales entregan todas las posibles propiedades de objeto en sus resultados, incluidas muchas propiedades que suelen estar en blanco o que ni siquiera son necesarias en muchos escenarios. Este comportamiento causa la degradación del rendimiento (se ha agregado más procesamiento de servidor y carga de red). Rara vez (si nunca) necesita el complemento completo de propiedades en la salida del cmdlet.

Los cmdlets Get-EXO* del módulo han clasificado las propiedades de salida. En lugar de asignarle a todas las propiedades igual importancia y entregarlas en todos los escenarios, hemos categorizado propiedades relacionadas específicas en conjuntos de propiedades. En pocas palabras, estos conjuntos de propiedades son depósitos de dos o más propiedades relacionadas del cmdlet.

Los cmdlets Get-EXO* más grandes y usados usan conjuntos de propiedades:

En esos cmdlets, los conjuntos de propiedades se controlan mediante los parámetros siguientes:

Puede usar el PropertySets y propiedades parámetros conjuntamente en el mismo comando.

También hemos incluido un conjunto de propiedades mínima que incluye un conjunto mínimo de propiedades necesarias para el resultado del cmdlet (por ejemplo, propiedades de identidad). Las propiedades de los conjuntos de propiedades Minimum también se describen en Conjuntos de propiedades en Exchange Online cmdlets de módulo de PowerShell.

  • Si no usa los parámetros PropertySets o Properties, obtendrá automáticamente las propiedades en el conjunto de propiedades mínimo.
  • Si usa los parámetros PropertySets o Properties, obtendrá las propiedades especificadas y las propiedades del conjunto de propiedades mínimo.

En ambos casos, el resultado del cmdlet contendrá muchas menos propiedades, y el tiempo que se tarda en entregar esos resultados será mucho menor.

Por ejemplo, después de conectarse a Exchange Online PowerShell, el siguiente ejemplo devuelve solo las propiedades en el conjunto de propiedades mínimas para los primeros diez buzones.

Get-EXOMailbox -ResultSize 10

Por el contrario, el resultado del mismo comando Get-Mailbox devolver, al menos, 230 propiedades para cada uno de los primeros diez buzones.

Nota:

Aunque el parámetro PropertySets acepta el valor All, recomendamos encarecidamente usar este valor para recuperar todas las propiedades, ya que ralentiza el comando y reduce la confiabilidad. Utilice siempre los parámetros PropertySets y Properties para recuperar el número mínimo de propiedades.

Para obtener más información sobre el filtrado en el módulo, vea Filtros en el módulo de PowerShell Exchange Online.

Notas de la versión

A menos que se indique lo contrario, la versión actual del módulo de PowerShell Exchange Online contiene todas las características de versiones anteriores.

Versión actual: versión 3.1.0

  • Parámetro AccessToken disponible en Connect-ExchangeOnline.
  • Correcciones de errores en Connect-ExchangeOnline y Get-ConnectionInformation.
  • Corrección de errores en Connect-IPPSSession para conectarse a PowerShell de cumplimiento de seguridad & mediante CertificateThumbprint.

Versiones anteriores

Versión 3.0.0 (versiones preliminares conocidas como v2.0.6-PreviewX)

  • Características ya descritas en la sección Novedades para el módulo EXO V3):
    • Autenticación basada en certificados para PowerShell de cumplimiento de seguridad & (versión 2.0.6-Preview5 o posterior).
    • Cmdlet Get-ConnectionInformation para conexiones basadas en REST (versión 2.0.6-Preview7 o posterior).
    • El modificador SkipLoadingFormatData del cmdlet Connect-ExchangeOnline para conexiones basadas en REST (versión 2.0.6-Preview8 o posterior).
  • El parámetro DelegatedOrganization funciona en el cmdlet Connect-IPPSSession siempre y cuando también use el parámetro AzureADAuthorizationEndpointUri en el comando.
  • Algunos cmdlets que solían solicitar confirmación en escenarios específicos ya no lo hacen. De forma predeterminada, el cmdlet se ejecutará hasta la finalización.
  • El formato del error devuelto por la ejecución del cmdlet con errores se ha modificado ligeramente. La excepción ahora contiene datos adicionales (por ejemplo, el tipo de excepción) y FullyQualifiedErrorId no contiene .FailureCategory El formato del error está sujeto a modificaciones adicionales.

Versión 2.0.5

  • Nuevos cmdlet Get-OwnerlessGroupPolicy y Set-OwnerlessGroupPolicy para administrar los grupos de Microsoft 365 sin ningún propietario.

    Nota:

    Aunque los cmdlets están disponibles en el módulo, esta característica solo está disponible para los miembros de una versión preliminar privada.

  • Nuevos cmdlets Get-VivaInsightsSettings y Set-VivaInsightsSettings para controlar el acceso de los usuarios a las características del Headspace en Ideas Viva.

Versión 2.0.4

  • PowerShell 7 se admite oficialmente en Windows, Linux y Apple macOS, como se describe en la sección Requisitos previos para el módulo Exchange Online PowerShell de este artículo.

  • El módulo de PowerShell 7 admite el inicio de sesión único (SSO) basado en explorador y otros métodos de inicio de sesión. Para obtener más información, vea Métodos de conexión exclusivos de PowerShell 7.

  • Los cmdlets Get-UserAnalyticsConfig y Set-UserAnalyticsConfig han sido reemplazados por los cmdlets Get-MyAnalyticsConfig y Set-MyAnalyticsConfig. Además, puede configurar el acceso en el nivel de características. Para más información, consulte Configuración de MyAnalytics.

  • Directiva en tiempo real y cumplimiento de seguridad en toda la autenticación basada en usuarios. La evaluación continua de acceso (CAE) se ha habilitado en el módulo. Obtenga más información acerca de CAE aquí.

  • Las propiedades LastUserActionTime y LastInteractionTime están ahora disponibles en el resultado del cmdlet Get-EXOMailboxStatistics.

  • Ahora, el proceso interactivo de inicio de sesión usa un método más seguro para capturar tokens de acceso mediante URL de respuesta segura.

Versión 2.0.3

  • Disponibilidad general de la autenticación basada en el certificado (CBA), la cual permite usar la autenticación moderna en escenarios de scripting sin supervisión o automatización en segundo plano. Las ubicaciones de almacenamiento de los certificados disponibles son:
  • Conéctese a Exchange Online PowerShell y PowerShell de cumplimiento de seguridad & simultáneamente en una sola ventana de PowerShell.
  • El nuevo parámetro CommandName le permite especificar y restringir los cmdlets de PowerShell de Exchange Online que se importan en una sesión. Esta opción reduce la superficie de memoria para las aplicaciones de uso intensivo de PowerShell.
  • Get-EXOMailboxFolderPermission ahora admite ExternalDirectoryObjectID en el parámetro de identidad.
  • Latencia optimizada de la primera llamada de cmdlet V2. Los resultados de la práctica muestran una reducción de la latencia de la primera llamada de entre 8 segundos hasta aproximadamente 1 segundo. Los resultados reales dependerán del tamaño resultante del cmdlet y del entorno del espacio empresarial.

Versión 1.0.1

  • Versión de disponibilidad general (GA) del módulo EXO V2. Es estable y está listo para su uso en entornos de producción.
  • El cmdlet Get-EXOMobileDeviceStatistics ahora admite el parámetro Identidad.
  • Se mejoró la confiabilidad de la reconexión automática de la sesión en algunos casos en los que se ejecutó un script durante ~ 50 minutos y se generó un error de "cmdlet no encontrado" debido a un error en la lógica de reconexión automática.
  • Se corrigieron problemas de tipo de datos de los dos atributos comúnmente utilizados "User" y "MailboxFolderUser" para facilitar la migración de scripts.
  • Se mejoró el soporte para filtros y ahora admite otros cuatro operadores: EndsWith, Contains, Not y NotLike. Compruebe filtros en el módulo de PowerShell de Exchange Online para obtener atributos que no se admiten en los filtros.

Versión 0.4578.0

  • Se agregó compatibilidad para configurar el correo electrónico de informe para su organización en el nivel de usuario con los cdmlets Set-UserBriefingConfig y Get-UserBriefingConfig.
  • Admite la limpieza de la sesión con el cmdlet Disconnect-ExchangeOnline. Este cmdlet es el equivalente V2 de Get-PSSession | Remove-PSSession. Además de limpiar el objeto de sesión y los archivos locales, también elimina el token de acceso de la memoria caché, que se usa para autenticarse en los cmdlets V2.
  • Ahora puede usar FolderId como parámetro de identidad en Get-EXOMailboxFolderPermission. Puede obtener el valor FolderId con Get-MailboxFolder. Por ejemplo: Get-MailboxFolderPermission -Identity <UPN>:<Folder-Path>Get-MailboxFolderPermission -Identity <UPN>:\<Folder-Id>
  • Confiabilidad mejorada de Get-EXOMailboxStatistics ya que se resolvieron ciertos errores de enrutamiento de solicitud que ocasionaban fallas.
  • Uso de memoria optimizado cuando se crea una sesión reutilizando cualquier módulo existente con una nueva sesión en lugar de crear una nueva cada vez que se importa la sesión.

Versión 0.4368.1

  • Se ha agregado compatibilidad con los cmdlets de PowerShell de cumplimiento de seguridad & mediante el cmdlet Connect-IPPSSession .
  • Ocultar la pancarta de anuncio está disponible con el conmutador de ShowBanner (-ShowBanner:$false).
  • Se finalizó la ejecución del cmdlet en la excepción de cliente.
  • PowerShell remoto contenía varios tipos de datos complejos que no se admitían intencionalmente en los cmdlets EXO para mejorar el rendimiento. Se han resuelto las diferencias en los tipos de datos no complejos entre los cmdlets de PowerShell remoto y los cmdlets v2 para permitir la migración sin problemas de scripts de administración.

Versión 0.3582.0

  • Compatibilidad con el prefijo durante la creación de sesión.
    • Solo puede crear una sesión a la vez que contenga cmdlets prefijos.
    • Tenga en cuenta que los cmdlets EXO V2 no se prefijan porque ya tienen el prefijo EXO, por lo que no debe usar EXO como prefijo.
  • Use los cmdlets EXO V2 incluso si la autenticación básica de WinRM está deshabilitada en el equipo cliente. Tenga en cuenta que los cmdlets de PowerShell remoto requieren la autenticación básica de WinRM y no estarán disponibles si está deshabilitada.
  • El parámetro identidad para los cmdlets V2 ahora también es compatible con el nombre y alias. Tenga en cuenta que usar el alias o nombre reduce el rendimiento de los cmdlets V2, por lo que no se recomienda usarlos.
  • Se corrigió un problema en el que el tipo de datos de los atributos entregado por el cmdlet V2 era diferente de los cmdlets de PowerShell remoto. Seguimos teniendo algunos pocos atributos que tienen diferentes tipos de datos y planeamos controlarlos en los próximos meses.
  • Error corregido: problema de reconexión de sesiones frecuentes cuando se ha invocado Connect-ExchangeOnline con Credentials o UserPrincipalName.

Versión 0.3555.1

  • Se corrigió un error de fallo en los cmdlets por canalizaciones con el siguiente error por un problema de autenticación:

    No se puede invocar la canalización porque el espacio de ejecución no se encuentra en estado abierto. El estado actual del espacio de ejecución es "cerrado".

Versión 0.3527.4

  • Contenido de Get-Help actualizado.
  • Se ha corregido un problema en Get-Help por el que el parámetro Online redirigía a una página inexistente con el código de error 400.

Versión 0.3527.3

  • Se agregó compatibilidad para administrar Exchange en un espacio empresarial distinto mediante el flujo de delegación.
  • Funciona conjuntamente con otros módulos de PowerShell en una única ventana de PS.
  • Compatibilidad agregada para los parámetros de posición.
  • El campo de fecha y hora ahora es compatible con la configuración regional del cliente.
  • Corrección de errores: PSCredential vacío cuando se ha pasado durante Connect-ExchangeOnline.
  • Corrección de errores: error en el módulo cliente cuando el filtro contenía $null.
  • Las sesiones creadas internamente al módulo EXO V2 ahora tienen nombres (patrón de nomenclatura: ExchangeOnlineInternalSession_% SomeNumber%).
  • Corrección de errores: los cmdlets de PowerShell remoto generan errores ocasionales por la diferencia entre la caducidad del token y la inactividad de PSSession.
  • Actualización de seguridad importante.
  • Correcciones de errores y mejoras.