Sobre o módulo Exchange Online PowerShell

O módulo Exchange Online PowerShell usa autenticação moderna e funciona com MFA (autenticação multifator) para se conectar a todos os ambientes do PowerShell relacionados ao Exchange no Microsoft 365: Exchange Online PowerShell, PowerShell de Conformidade de Segurança & e EOP (Proteção do Exchange Online autônomo) Powershell.

Observação

A versão 2.0.5 e anterior é conhecida como o módulo Exchange Online PowerShell V2 (abreviado como o módulo EXO V2). A versão 3.0.0 e posterior é conhecida como o módulo Exchange Online PowerShell V3 (abreviado como o módulo EXO V3).

Para obter instruções de conexão usando o módulo, consulte os seguintes artigos:

O restante deste artigo explica como o módulo funciona, como instalar e manter o módulo e os cmdlets otimizados do Exchange Online que estão disponíveis no módulo.

Atualizações para a versão 3.0.0 (o módulo EXO V3)

As versões 3.0.0 são a versão GA (Disponibilidade Geral) das versões 2.0.6-PreviewX do módulo e agora é conhecida como o módulo EXO V3. Esta versão aprimora as funcionalidades históricas do módulo EXO V2 (versão 2.0.5 e anterior) com os seguintes recursos:

  • A autenticação baseada em certificado (também conhecida como CBA ou autenticação somente aplicativo) está disponível para o PowerShell de Conformidade de Segurança & .

  • Os cmdlets apoiados pela API REST estão disponíveis no Exchange Online PowerShell. Os cmdlets de API REST têm as seguintes vantagens sobre seus equivalentes históricos:

    • Mais seguros: os cmdlets da API REST têm suporte interno para autenticação moderna e não dependem da sessão remota do PowerShell, portanto, o PowerShell no computador cliente não precisa de autenticação básica no WinRM para Exchange Online PowerShell.
    • Mais confiável: os cmdlets da API REST lidam com falhas transitórias com repetições internas, portanto, falhas ou atrasos são minimizados. Por exemplo:
      • Falhas devido a atrasos na rede.
      • Atrasos devido a consultas grandes que levam muito tempo para serem concluídas.
    • Melhor desempenho: a conexão evita configurar um runspace do PowerShell no Exchange Online PowerShell.

    Os benefícios dos cmdlets de API REST no Exchange Online PowerShell são descritos na tabela a seguir:

      Cmdlets remotos do PowerShell Cmdlets Get-EXO* Cmdlets de API REST
    Segurança Menos seguro Altamente seguro Altamente seguro
    Desempenho Baixo desempenho Alto desempenho Desempenho médio
    Confiabilidade Menos confiável Altamente confiável Altamente confiável
    Funcionalidade Todos os parâmetros e propriedades de saída disponíveis Parâmetros limitados e propriedades de saída disponíveis Todos os parâmetros e propriedades de saída disponíveis

    Observação

    Atualmente, nenhum cmdlets nos cmdlets do PowerShell de Conformidade de Segurança & é apoiado pela API REST. Todos os cmdlets no PowerShell de Conformidade de Segurança & ainda dependem da sessão remota do PowerShell, portanto, o PowerShell no computador cliente requer autenticação básica no WinRM para usar com êxito o cmdlet Connect-IPPSSession .

    • Os cmdlets de API REST no Exchange Online PowerShell têm os mesmos nomes de cmdlet e funcionam como seus equivalentes remotos do PowerShell, portanto, você não precisa atualizar nenhum dos scripts.

    • Praticamente todos os cmdlets remotos do PowerShell no Exchange Online disponíveis agora possuem suporte para API REST.

  • A opção UseRPSSession no Connect-ExchangeOnline concede acesso a todos os cmdlets remotos do PowerShell existentes no Exchange Online PowerShell:

  • Alguns cmdlets da API REST no PowerShell do Exchange Online foram atualizados com a opção experimental UseCustomRouting. Essa opção roteia o comando diretamente para o servidor de Caixa de Correio necessário e pode melhorar o desempenho geral.

    • Ao usar a opção UseCustomRouting, você pode usar apenas os seguintes valores para identidade da caixa de correio:

      • Nome principal do usuário (UPN)
      • Endereço de email
      • GUID da Caixa de Correio
    • A opção UseCustomRouting está disponível apenas nos seguintes cmdlets da API REST no PowerShell do Exchange Online:

      • 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 a opção UseCustomRouting experimentalmente e informe quaisquer problemas que encontrar.

  • Use o cmdlet Get-ConnectionInformation para obter informações sobre conexões baseadas em REST para Exchange Online PowerShell. Esse cmdlet é necessário porque o cmdlet Get-PSSession no Windows PowerShell não retorna informações para conexões baseadas em REST.

    Cenários em que você pode usar Get-ConnectionInformation são descritos na seguinte tabela:

    Cenário Saída esperada
    Execute antes de um comando Connect-ExchangeOnline . Retornará nothing.
    Execute após o comando Connect-ExchangeOnline que usa a opção UseRPSSession . Não retorna nada (use Get-PSSession).
    Execute após um comando Connect-ExchangeOnline baseado em REST (sem opção UseRPSSession ). Retorna um objeto de informações de conexão.
    Execute após vários comandos Connect-ExchangeOnline baseados em REST. Retorna uma coleção de objetos de informações de conexão.
    Execute após vários comandos Connect-ExchangeOnline com e sem a opção UseRPSSession . Retorna um objeto de informações de conexão para cada sessão baseada em REST.
  • Use a opção SkipLoadingFormatData no cmdlet Connect-ExchangeOnline em conexões baseadas em REST (você não usou a opção UseRPSSession ) para evitar carregar dados de formato e executar comandos Connect-ExchangeOnline mais rapidamente.

Para obter informações adicionais, consulte a seção Notas de versão mais adiante neste artigo.

Para obter informações sobre como alternar do Exchange Online Módulo remoto do PowerShell (V1) para a versão atual, consulte esta postagem no blog.

Relatar bugs e problemas para o módulo Exchange Online PowerShell

Observação

Para versões ga do módulo, abra um tíquete de suporte para quaisquer problemas que você esteja tendo. Para versões prévias do módulo, use o endereço de email conforme descrito nesta seção. Você também pode usar o endereço de email para comentários e sugestões para versões ga e versão prévia do módulo.

Ao relatar um problema no exocmdletpreview[at]service[dot]microsoft[dot]com, certifique-se de incluir os arquivos de log na sua mensagem de e-mail. Para gerar os arquivos de log, substitua <Caminho para armazenar o arquivo> de log pela pasta de saída desejada e execute o seguinte comando:

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

Observação

O uso frequente dos cmdlets Connect-ExchangeOnline e Disconnect-ExchangeOnline em uma única sessão ou script do PowerShell pode levar a um vazamento de memória. A melhor maneira de evitar esse problema é usar o parâmetro CommandName no cmdlet Connect-ExchangeOnline para limitar os cmdlets usados na sessão.

Cmdlets no módulo Exchange Online PowerShell

Todas as versões do módulo contêm nove cmdlets get-EXO* exclusivos para Exchange Online PowerShell otimizados para velocidade em cenários de recuperação de dados em massa (milhares e milhares de objetos). Os cmdlets remotos do PowerShell relacionados mais antigos ainda estão disponíveis.

Os cmdlets do PowerShell Exchange Online aprimorados que estão disponíveis apenas no módulo estão listados na tabela a seguir:

Cmdlet do módulo EXO Cmdlet relacionado mais antigo:
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

Os cmdlets relacionados à conexão no módulo são listados na seguinte tabela:

Cmdlet do módulo EXO Cmdlet relacionado mais antigo: Comments
Connect-ExchangeOnline Connect-EXOPSSession
ou
New-PSSession
Connect-IPPSSession Connect-IPPSSession
Disconnect-ExchangeOnline Remove-PSSession
Get-ConnectionInformation Get-PSSession Disponível em v2.0.6-Preview7 ou posterior.

Cmdlets de Exchange Online diversos que estão no módulo estão listados na tabela a seguir:

Cmdlet Comentários
Get-MyAnalyticsFeatureConfig Disponível na v2.0.4 ou posterior.
Set-MyAnalyticsFeatureConfig Disponível na v2.0.4 ou posterior.
Get-UserBriefingConfig Substituído por Get-MyAnalyticsFeatureConfig.
Set-UserBriefingConfig Substituído por Set-MyAnalyticsFeatureConfig.
Get-VivaInsightsSettings Disponível na versão v2.0.5-Preview2 ou posterior.
Set-VivaInsightsSettings Disponível na versão v2.0.5-Preview2 ou posterior.

Instalar e manter o módulo Exchange Online PowerShell

Baixe o módulo da galeria do PowerShell em https://www.powershellgallery.com/packages/ExchangeOnlineManagement/.

Os procedimentos nesta seção explicam como instalar, atualizar e desinstalar o módulo.

Sistemas operacionais com suporte para o módulo Exchange Online PowerShell

As versões mais recentes do módulo têm suporte oficial no PowerShell 7 no Windows, Linux e MacOS da Apple.

Especificamente, a versão 2.0.4 ou posterior tem suporte no PowerShell 7.0.3 ou posterior.

Para mais informações sobre o Windows PowerShell 7, consulte Anunciando o PowerShell 7.0.

Apple macOS

O módulo tem suporte nas seguintes versões do macOS:

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

Para instruções sobre como instalar o Windows PowerShell 7 no macOS, consulte Instalando o PowerShell no macOS.

Observação

Conforme descrito no artigo de instalação, você precisa instalar o OpenSSL, que é necessário para o WSMan.

Depois de instalar o PowerShell 7 e o OpenSSL, execute as seguintes etapas:

  1. Execute o PowerShell como super usuário: sudo pwsh

  2. Na sessão do super usuário do PowerShell, execute os seguintes comandos:

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    Se solicitado, aceite PSGallery como a origem dos cmdlets.

Agora você pode fazer os pré-requisitos regulares do PowerShell e instalar o módulo Exchange Online PowerShell.

Linux

O módulo tem suporte oficial nas seguintes distribuições do Linux:

  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS

Se você tiver problemas para usar o módulo em outras distribuições do Linux, denuncie quaisquer problemas.

Para instruções sobre como instalar o Windows PowerShell 7 no Linux, consulte Instalando o PowerShell no Linux.

Depois de instalar o PowerShell 7, execute as seguintes etapas:

  1. Execute o PowerShell como super usuário: sudo pwsh

  2. Na sessão do super usuário do PowerShell, execute os seguintes comandos:

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    Se solicitado, aceite PSGallery como a origem dos cmdlets.

Agora você pode fazer os pré-requisitos regulares do PowerShell e instalar o módulo Exchange Online PowerShell.

Observação

Se você se conectar ao Exchange Online PowerShell de uma rede que está por trás de um servidor proxy, o módulo EXO V2 (versão v2.0.5 ou anterior) não funcionará no Linux. Você precisa usar o módulo EXO V3 (v3.0.0 ou v2.0.6-PreviewX) no Linux para se conectar a partir de uma rede que está por trás de um servidor proxy.

Windows

Todas as versões do módulo têm suporte no Windows PowerShell 5.1.

O PowerShell 7 no Windows requer a versão 2.0.4 ou posterior.

A versão 2.0.5 ou posterior do módulo requer que o Microsoft .NET Framework 4.7.1 ou posterior para se conectar. Caso contrário, você receberá um System.Runtime.InteropServices.OSPlatform erro. Esse requisito não deve ser um problema nas versões atuais do Windows. Para obter mais informações sobre versões do Windows que dão suporte ao .NET Framework 4.7.1, confira este artigo.

Windows PowerShell requisitos e suporte ao módulo em versões mais antigas do Windows são descritos na lista a seguir:

  • Windows 8.1 1

  • Windows Server 2012 ou Windows Server 2012 R21

  • Pacote de Serviços do Windows 7 1 (SP1)2,3,4

  • Windows Server 2008 R2 SP1 2,3,4

  • 1 O PowerShell 7 nesta versão do Windows requer o Windows 10 CRT (Universal C Runtime).

  • 2 Esta versão do Windows chegou ao fim do suporte e agora tem suporte apenas em máquinas virtuais do Azure.

  • 3 Esta versão do Windows dá suporte apenas a versões v2.0.3 ou anteriores do módulo.

  • 4 Windows PowerShell 5.1 nesta versão do Windows requer o .NET Framework 4.5 ou posterior e o Windows Management Framework 5.1. Para mais informações, consulte Windows Management Framework 5.1.

Pré-requisitos para o módulo Exchange Online PowerShell

Observação

As configurações descritas nesta seção são necessárias em todas as versões do Windows PowerShell em todos os sistemas operacionais.

Defina a política de execução do PowerShell como RemoteSigned

Windows PowerShell precisa ser configurado para executar scripts e, por padrão, não é. Você receberá o seguinte erro ao tentar se conectar:

Não é possível carregar arquivos porque a execução de scripts está desabilitada neste sistema. Forneça um certificado válido para assinar os arquivos.

Para exigir que todos os scripts do PowerShell baixados da Internet sejam assinados por um editor confiável, execute o seguinte comando em uma janela elevada do PowerShell (uma janela do PowerShell que você abre selecionando Executar como administrador):

Set-ExecutionPolicy RemoteSigned

Para obter mais informações sobre as políticas de execução, confira Sobre Políticas de Execução.

Ativar a autenticação básica no WinRM

Observação

Conforme descrito anteriormente neste artigo, o módulo EXO V3 não requer autenticação básica no WinRM para conexões baseadas em REST para Exchange Online PowerShell.

Para conexões remotas do PowerShell, o WinRM precisa permitir a autenticação básica. Não enviamos a combinação de nome de usuário e senha. O cabeçalho de autenticação básica é necessário para enviar o token OAuth da sessão, pois a implementação do WinRM no lado do cliente não dá suporte ao OAuth.

Para verificar se a autenticação básica está habilitada para WinRM, execute o seguinte comando em um Prompt de comando ou Windows PowerShell:

Observação

Os seguintes comandos exigem que o WinRM esteja habilitado. Para habilitar o WinRM, execute o seguinte comando: winrm quickconfig.

winrm get winrm/config/client/auth

Se você não vir o valor Basic = true, precisará executar um dos seguintes comandos para habilitar a autenticação básica para WinRM:

  • Em um Prompt de comando:

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

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

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

Se a autenticação básica para WinRM estiver desabilitada, você receberá um dos seguintes erros ao tentar se conectar:

O cliente WinRM não pode processar a solicitação. No momento, a autenticação básica está desabilitada na configuração do cliente. Altere a configuração do cliente e tente a solicitação novamente.

Falha ao criar Sessão do Powershell usando OAuth.

Dica

Está com problemas? Peça ajuda nos fóruns do Exchange. Visite os fóruns em: Exchange Online ou Proteção do Exchange Online.

Instalar o módulo Exchange Online PowerShell

Para instalar o módulo pela primeira vez, conclua as seguintes etapas:

  1. Instale ou atualize o módulo PowerShellGet conforme descrito em Instalando o PowerShellGet.

  2. Feche e abra novamente a janela do Windows PowerShell.

  3. Agora você pode usar o cmdlet Install-Module para instalar o módulo do Galeria do PowerShell. Normalmente, você deseja a versão pública mais recente do módulo, mas também pode instalar uma versão preview se houver alguma disponível.

    • Para instalar a versão pública mais recente do módulo, execute um dos seguintes comandos:

      • Em uma janela elevada do PowerShell (todos os usuários):

        Install-Module -Name ExchangeOnlineManagement
        
      • Somente para a conta do usuário atual:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • Para ver as versões de visualização disponíveis do módulo, execute o seguinte comando:

      Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
      
    • Para instalar a versão prévia mais recente disponível do módulo, execute um dos seguintes comandos:

      • Em uma janela elevada do PowerShell (todos os usuários):

        Install-Module -Name ExchangeOnlineManagement -AllowPrerelease
        
      • Somente para a conta do usuário atual:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
        
    • Para instalar uma versão prévia específica do módulo, substitua <PreviewVersion> pelo valor necessário e execute um dos seguintes comandos:

      • Em uma janela elevada do PowerShell (todos os usuários):

        Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
        
      • Somente para a conta do usuário atual:

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

    Quando terminar, insira Y para aceitar o contrato de licença.

Para obter informações detalhadas sobre sintaxes e parâmetros, confira Install-Module.

Atualizar o módulo Exchange Online PowerShell

Se o módulo já estiver instalado em seu computador, você poderá usar os procedimentos nesta seção para atualizar o módulo.

  1. Para ver a versão do módulo atualmente instalado e onde ele está instalado, execute o seguinte comando:

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

    Se o módulo estiver instalado em C:\Program Files\WindowsPowerShell\Modules, ele será instalado para todos os usuários. Se o módulo estiver instalado na pasta Documentos, ele será instalado apenas para a conta de usuário atual.

  2. Você pode usar o cmdlet Update-Module para atualizar o módulo do Galeria do PowerShell. Normalmente, você deseja a versão pública mais recente do módulo, mas também pode atualizar para uma versão preview se houver alguma disponível.

    • Para atualizar para a versão pública mais recente do módulo, execute um dos seguintes comandos com base em como você instalou originalmente o módulo (todos os usuários versus somente para a conta de usuário atual):

      • Em uma janela elevada do PowerShell (todos os usuários):

        Update-Module -Name ExchangeOnlineManagement
        
      • Somente para a conta do usuário atual:

        Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • Para atualizar para uma versão de Pré-visualização do módulo, você pode atualizar para a versão de Pré-visualização mais recente disponível ou pode usar o parâmetro RequiredVersion para atualizar para uma versão de Pré-visualização específica.

      • Para ver as versões de visualização disponíveis do módulo, execute o seguinte comando:

        Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
        
      • Para atualizar para a versão prévia mais recente disponível do módulo, execute um dos seguintes comandos:

        • Em uma janela elevada do PowerShell (todos os usuários):

          Update-Module -Name ExchangeOnlineManagement -AllowPrerelease
          
        • Somente para a conta do usuário atual:

          Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
          
      • Para atualizar para uma versão prévia específica do módulo, substitua <PreviewVersion> pelo valor necessário e execute um dos seguintes comandos:

        • Em uma janela elevada do PowerShell (todos os usuários):

          Update-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
          
        • Somente para a conta do usuário atual:

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

    Quando terminar, insira Y para aceitar o contrato de licença.

  3. Para confirmar se a atualização foi bem-sucedida, execute os seguintes comandos para verificar as informações da versão do módulo instalada:

    Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
    

Para obter informações detalhadas sobre sintaxes e parâmetros, confira Update-Module.

Solucionar problemas da instalação do módulo Exchange Online PowerShell

  • Você recebe um dos seguintes erros:

    O módulo especificado 'ExchangeOnlineManagement' com o PowerShellGetFormatVersion '<version>' não tem suporte para a versão atual do PowerShellGet. Obtenha a versão mais recente do módulo PowerShellGet para instalar esse módulo, "ExchangeOnlineManagement".

    AVISO: não é possível baixar do URI 'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409' para ''.

    AVISO: Não é possível baixar a lista de provedores disponíveis. Verifique sua conexão com a internet.

    Atualize a instalação do módulo PowerShellGet para a versão mais recente, conforme descrito em Instalando o PowerShellGet. Certifique-se de fechar e reabrir a janela do Windows PowerShell antes de tentar atualizar o módulo ExchangeOnlineManagement novamente.

  • Em abril de 2020, a Galeria do Windows PowerShell só oferece suporte a conexões usando TLS 1.2 ou posterior. Para obter mais informações, confira Suporte a TLS da galeria do Windows PowerShell.

    Para verificar suas configurações atuais no Microsoft .NET Framework, execute o seguinte comando no Windows PowerShell:

    [Net.ServicePointManager]::SecurityProtocol
    

    Conforme descrito no artigo de Suporte TLS da Galeria do PowerShell, para alterar temporariamente o protocolo de segurança para TLS 1.2 para instalar os módulos PowerShellGet ou ExchangeOnlineManagement, execute o seguinte comando no Windows PowerShell antes de instalar o módulo:

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

    Para habilitar permanentemente a criptografia forte no Microsoft .NET Framework versão 4.x ou posterior, execute um dos seguintes comandos com base na arquitetura do 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 obter mais informações, confira SchUseStrongCrypto.

  • Você recebe o seguinte erro:

    Nenhuma correspondência foi encontrada para os critérios de pesquisa especificados e o nome do módulo 'ExchangeOnlineManagement'. Tente executar Get-PSRepository para ver todos os repositórios de módulos registrados disponíveis.

    O repositório padrão de módulos do PowerShell não está definido como PSGallery. Para corrigir esse erro, execute o seguinte comando:

    Register-PSRepository -Default
    

Desinstalar o módulo Exchange Online PowerShell

Para ver a versão do módulo atualmente instalado e onde ele está instalado, execute o seguinte comando:

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

Se o módulo estiver instalado em C:\Arquivos de Programas\WindowsPowerShell\Modules, ele será instalado para todos os usuários. Se o módulo estiver instalado na pasta Documentos, ele será instalado apenas para a conta de usuário atual.

Para desinstalar o módulo, execute um dos seguintes comandos com base em como você instalou originalmente o módulo (todos os usuários versus somente para a conta de usuário atual):

  • Em uma janela elevada do PowerShell (todos os usuários):

    Uninstall-Module -Name ExchangeOnlineManagement
    
  • Somente para a conta do usuário atual:

    Uninstall-Module -Name ExchangeOnlineManagement
    

Para obter informações detalhadas sobre sintaxes e parâmetros, confira Uninstall-Module.

Propriedades e conjuntos de propriedades no módulo Exchange Online PowerShell

Os cmdlets tradicionais do Exchange Online retornam todas as propriedades de objeto possíveis na saída, incluindo várias propriedades que geralmente estão em branco ou não são interessantes em muitos cenários. Esse comportamento causa um desempenho degradado (mais computação de servidor e carregamento de rede adicionado). Você raramente (ou nunca) precisará do complemento total de propriedades na saída do cmdlet.

Os cmdlets Get-EXO* no módulo categorizaram as propriedades de saída. Em vez de dar a todas as propriedades a mesma importância e devolvê-las em todos os cenários, categorizamos as propriedades relacionadas específicas em conjuntos de propriedades. Em suma, esses conjuntos de propriedades são classificações de duas ou mais propriedades relacionadas no cmdlet.

Os maiores e mais usados cmdlets Get-EXO* usam conjuntos de propriedades:

Nesses cmdlets, os conjuntos de propriedades são controlados pelos seguintes parâmetros:

Você pode usar os parâmetros PropertySets e Properties em conjunto no mesmo comando.

Também incluímos um conjunto de propriedades mínimo que inclui um conjunto mínimo de propriedades necessárias para a saída do cmdlet (por exemplo, propriedades de identidade). As propriedades nos conjuntos de propriedades mínimas também são descritas em conjuntos de propriedades em cmdlets do módulo Exchange Online PowerShell.

  • Se você não usar os parâmetros PropertySets ou Properties, obterá automaticamente as propriedades no conjunto de propriedades Mínimo.
  • Se você usar os parâmetros PropertySets ou Properties, obterá as propriedades especificadas e as propriedades no conjunto de propriedades Mínimo.

De qualquer forma, a saída do cmdlet conterá muito menos propriedades, e o tempo necessário para retornar esses resultados será muito mais rápido.

Por exemplo, depois de conectar-se ao PowerShell do Exchange Online, o exemplo a seguir retorna apenas as propriedades no conjunto de propriedades mínimo para as dez primeiras caixas de correio.

Get-EXOMailbox -ResultSize 10

Por outro lado, a saída do mesmo comando Get-Mailbox retornaria pelo menos 230 propriedades para cada uma das dez primeiras caixas de correio.

Observação

Embora o parâmetro PropertySets aceite o valor All, não é recomendável usar esse valor para recuperar todas as propriedades, porque ele torna o comando mais lento e reduz a confiabilidade. Use sempre os parâmetros PropertySets e Properties para recuperar o número mínimo de propriedades necessárias para o seu cenário.

Para obter mais informações sobre filtragem no módulo, consulte Filtros no módulo Exchange Online PowerShell.

Notas de versão

A menos que seja observado de outra forma, a versão atual do módulo Exchange Online PowerShell contém todos os recursos das versões anteriores.

Versão atual: Versão 3.0.0 (versões prévias conhecidas como v2.0.6-PreviewX)

  • Recursos já descritos no Atualizações para a versão 3.0.0 (o módulo EXO V3):
    • Autenticação baseada em certificado para o PowerShell de Conformidade de Segurança & (versão 2.0.6-Preview5 ou posterior).
    • O cmdlet Get-ConnectionInformation para conexões baseadas em REST (versão 2.0.6-Preview7 ou posterior).
    • A opção SkipLoadingFormatData no cmdlet Connect-ExchangeOnline para conexões baseadas em REST (versão 2.0.6-Preview8 ou posterior).
  • O parâmetro DelegatedOrganization funciona no cmdlet Connect-IPPSSession desde que você também use o parâmetro AzureADAuthorizationEndpointUri no comando.
  • Determinados cmdlets usados para solicitar confirmação em cenários específicos não o fazem mais. Por padrão, o cmdlet será executado até a conclusão.
  • O formato do erro retornado da execução de cmdlet com falha foi ligeiramente modificado. A exceção agora contém dados adicionais (por exemplo, o tipo de exceção) e o FullyQualifiedErrorId não contém o FailureCategory. O formato do erro está sujeito a modificações adicionais.

Versões anteriores

Versão 2.0.5

  • Novos cmdlets Get-OwnerlessGroupPolicy e Set-OwnerlessGroupPolicy para gerenciar grupos Microsoft 365 sem proprietários.

    Observação

    Embora os cmdlets estejam disponíveis no módulo, o recurso está disponível apenas para membros de uma Visualização Privada.

  • Novos cmdlets Get-VivaInsightsSettings e Set-VivaInsightsSettings para controlar o acesso do usuário aos recursos de Headspace nos Insights do Microsoft Viva.

Versão 2.0.4

  • O PowerShell 7 tem suporte oficial no MacOS do Windows, Linux e Apple, conforme descrito na seção Pré-requisitos para a seção Exchange Online módulo do PowerShell neste artigo.

  • O módulo no PowerShell 7 dá suporte ao SSO (logon único) baseado no navegador e a outros métodos de entrada. Para obter mais informações, confira Métodos de conexão exclusivos do PowerShell 7.

  • Os cmdlets Get-UserAnalyticsConfig e Set-UserAnalyticsConfig foram substituídos pelos Get-MyAnalyticsConfig e Set-MyAnalyticsConfig. Além disso, você pode configurar o acesso no nível do recurso. Para saber mais, consulte Configurar MyAnalytics.

  • Política em tempo real e aplicação de segurança em todas as autenticações baseadas no usuário. A CAE (Avaliação de Acesso Contínuo) foi habilitada no módulo. Leia mais sobre CAE aqui.

  • As propriedades LastUserActionTime e LastInteractionTime agora estão disponíveis na saída do cmdlet Get-EXOMailboxStatistics.

  • O processo de login interativo agora usa um método mais seguro para buscar tokens de acesso usando URLs de resposta seguros.

Versão 2.0.3

  • Disponibilidade geral da CBA (autenticação baseada em certificado), que permite o uso de autenticação moderna em cenários de script autônomo ou de automação em segundo plano. Os locais de armazenamento de certificado disponíveis são:
  • Conecte-se ao PowerShell Exchange Online e ao PowerShell de Conformidade de Segurança & simultaneamente em uma única janela do PowerShell.
  • O novo parâmetro CommandName permite especificar e restringir os cmdlets do Exchange Online PowerShell importados em uma sessão. Essa opção reduz o espaço de memória para aplicativos Windows PowerShell de uso alto.
  • Get-EXOMailboxFolderPermission agora dá suporte a ExternalDirectoryObjectID no parâmetro Identidade.
  • A latência otimizada da primeira chamada de cmdlet v2. Os resultados do laboratório mostram a latência da primeira chamada reduzida de 8 segundos para aproximadamente 1 segundo. Os resultados reais dependerão do tamanho do resultado do cmdlet e do ambiente do locatário.

Versão 1.0.1

  • Versão de Disponibilidade Geral (GA) do módulo EXO V2. Ele é estável e está pronto para ser usado em ambientes de produção.
  • O cmdlet Get-ExoMobileDeviceStatistics agora dá suporte ao parâmetro Identidade.
  • Confiabilidade aprimorada da sessão de reconexão automática em alguns casos em que um script era executado por aproximadamente 50 minutos e acionava um erro de "cmdlet não encontrado" devido a um bug na lógica de reconexão automática.
  • Corrigidos problemas de tipo de dados de dois atributos "Usuário" e "MailboxFolderUser" comumente usados para facilitar a migração de scripts.
  • Suporte aprimorado para filtros, pois agora dá suporte a mais quatro operadores: EndsWith, Contains, Not e NotLike. Verifique Filtros no módulo Exchange Online PowerShell em busca de atributos que não têm suporte em filtros.

Versão 0.4578.0

  • Adicionado suporte para configurar o Email de Resumo da sua organização no nível do usuário com os cmdlets Set-UserBriefingConfig e Get-UserBriefingConfig.
  • Suporte à limpeza de sessão usando o cmdlet Disconnect-ExchangeOnline. Este cmdlet é o equivalente à V2 de Get-PSSession | Remove-PSSession. Além de limpar o objeto de sessão e os arquivos locais, ele também remove o token de acesso do cache, que é usado para autenticação nos cmdlets V2.
  • Agora você pode usar FolderId como um parâmetro de identidade em Get-EXOMailboxFolderPermission. Você pode obter o valor FolderId usando Get-MailboxFolder. Por exemplo: Get-MailboxFolderPermission -Identity <UPN>:<Folder-Path>Get-MailboxFolderPermission -Identity <UPN>:\<Folder-Id>
  • Confiabilidade aprimorada de EXOMailboxStatisticspois determinados erros de roteamento de solicitação que levaram a falha foram resolvidas.
  • Uso otimizado da memória quando uma sessão é criada, usando novamente qualquer módulo existente com uma nova sessão em vez de criar um novo toda vez que a sessão é importada.

Versão 0.4368.1

  • Adicionado suporte para cmdlets do PowerShell de Conformidade de Segurança & usando o cmdlet Connect-IPPSSession .
  • Ocultar o banner de anúncio está disponível usando a opção ShowBanner (-ShowBanner:$false).
  • Terminar a execução do cmdlet na exceção do cliente.
  • O PowerShell remoto continha vários tipos de dados complexos, que não eram propositadamente compatíveis com cmdlets EXO para melhorar o desempenho. As diferenças em tipos de dados não complexos entre os cmdlets remotos do PowerShell e os cmdlets V2 foram resolvidos para permitir a migração contínua dos scripts de gerenciamento.

Versão 0.3582.0

  • Suporte para prefixo durante a criação de sessão.
    • Você pode criar apenas uma sessão por vez que contenha cmdlets prefixados.
    • Observe que os cmdlets EXO V2 não serão prefixados já que já têm o prefixo EXO. Portanto, não use EXO como um prefixo.
  • Use cmdlets EXO V2 mesmo se a autenticação básica do WinRM estiver desabilitada na máquina do cliente. Observe que os cmdlets remotos do PowerShell requerem a autenticação básica do WinRM e não estarão disponíveis se ela estiver desabilitada.
  • O parâmetro de identidade para cmdlets V2 suporta Nome e Alias. Observe que usar Alias ou Nome reduz o desempenho dos cmdlets V2, portanto, não recomendamos usá-los.
  • Problema corrigido em que o tipo de dados dos atributos retornados pelo cmdlet V2 era diferente dos cmdlets remotos do PowerShell. Ainda temos poucos atributos que têm tipos de dados diferentes e planejamos tratá-los nos próximos meses.
  • Bug corrigido: sessões frequentes reconectam o problema quando o Connect-ExchangeOnline foi invocado com credenciais ou UserPrincipalName

Versão 0.3555.1

  • Correção de um bug em que os cmdlets canalizados falhavam devido a um problema de autenticação:

    Não é possível invocar o pipeline porque o runspace não está no estado Aberto. O estado atual do runspace é "Fechado".

Versão 0.3527.4

  • Conteúdo Get-Help atualizado.
  • Correção de um problema em Get-Help em que o parâmetro Online estava redirecionando para uma página inexistente com o código de erro 400.

Versão 0.3527.3

  • Adicionado suporte para gerenciar o Exchange para um locatário diferente usando o fluxo de delegação.
  • Funciona em conjunto com outros módulos do PowerShell em uma janela do PS.
  • Suporte adicional para os parâmetros de posição.
  • O campo data e hora agora tem suporte para a localidade do cliente.
  • Correção de bugs: PSCredential vazio quando transmitido durante o Connect-ExchangeOnline.
  • Correção de bugs: um erro de módulo de cliente quando o filtro continha $null.
  • As sessões criadas internamente no módulo EXO V2 agora têm nomes (padrão de nomenclatura: ExchangeOnlineInternalSession_% SomeNumber%).
  • Correção de bugs: os cmdlets remotos do PowerShell falham de forma sincronizada devido à diferença de tempo entre a validade do token e a PSSession ficando ociosa.
  • Atualização de segurança importante.
  • Correção de bugs e melhorias.