Acerca do módulo Exchange Online PowerShell

O módulo Exchange Online PowerShell utiliza a autenticação moderna e funciona com ou sem autenticação multifator (MFA) para ligar a todos os ambientes do PowerShell relacionados com o Exchange no Microsoft 365: Exchange Online PowerShell, PowerShell de Conformidade & de Segurança e Proteção do Exchange Online autónomos (EOP) PowerShell.

Para obter instruções de ligação com o módulo, veja 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.

Dica

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

Ligações à API REST no módulo EXO V3

Exchange Online PowerShell e o PowerShell de Conformidade & de Segurança utilizam agora ligações de API REST para todos os cmdlets:

  • Exchange Online PowerShell: módulo EXO V3 v3.0.0 ou posterior.
  • PowerShell de Conformidade do & de Segurança: módulo EXO V3 v3.2.0 ou posterior.

As ligações à API REST requerem os módulos PowerShellGet e PackageManagement. Para obter mais informações, veja PowerShellGet para ligações baseadas em REST no Windows.

Os cmdlets nas ligações da API REST têm as seguintes vantagens em relação aos seus homólogos históricos:

  • Mais seguro: suporte incorporado para autenticação moderna e nenhuma dependência na sessão remota do PowerShell. O PowerShell no computador cliente não precisa de autenticação Básica no WinRM.
  • Mais fiável: as falhas transitórias utilizam repetições incorporadas, pelo que as falhas ou atrasos são minimizados. Por exemplo:
    • Falhas devido a atrasos na rede.
    • Atrasos devido a consultas grandes que demoram muito tempo a concluir.
  • Melhor desempenho: as ligações da API REST evitam a configuração de um espaço de execução do PowerShell.

As vantagens dos cmdlets nas ligações à API REST estão descritas na tabela seguinte:

  Cmdlets do PowerShell remotos Cmdlets Get-EXO* Cmdlets da API REST
Segurança Menos segura Altamente seguro Altamente seguro
Desempenho Baixo desempenho Alto desempenho Desempenho médio
Confiabilidade Menos fiável Altamente fiável Altamente fiá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

Os cmdlets da API REST têm os mesmos nomes de cmdlets e funcionam tal como os equivalentes remotos do PowerShell, pelo que não precisa de atualizar os nomes ou parâmetros dos cmdlets em scripts mais antigos.

Dica

O cmdlet Invoke-Command não funciona nas ligações da API REST. Para obter alternativas, veja Soluções para cenários de Invoke-Command em ligações à API REST.

As ligações de autenticação básica (powerShell remoto) são preteridas no PowerShell Exchange Online PowerShell e no PowerShell de Conformidade do & de Segurança. Para obter mais informações, consulte aqui e aqui.

Alguns cmdlets no Exchange Online PowerShell foram atualizados com o comutador experimental UseCustomRouting nas ligações da API REST. Essa opção roteia o comando diretamente para o servidor de Caixa de Correio necessário e pode melhorar o desempenho geral. Utilize o comutador UseCustomRouting experimentalmente.

  • 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
  • O comutador UseCustomRouting só está disponível nos seguintes cmdlets Exchange Online PowerShell em ligações à API REST:

    • 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
  • Utilize o cmdlet Get-ConnectionInformation para obter informações sobre as ligações da API REST para Exchange Online PowerShell e o PowerShell de Conformidade & de Segurança. Este cmdlet é necessário porque o cmdlet Get-PSSession no Windows PowerShell não devolve informações para ligações à API REST.

    Os cenários em que pode utilizar Get-ConnectionInformation estão descritos na tabela seguinte:

    Cenário Resultado esperado
    Execute após os comandos Connect-ExchangeOnline ou Connect-IPPSSession para ligações à API REST. Devolve um objeto de informações de ligação.
    Execute após vários comandos Connect-ExchangeOnline ou Connect-IPPSSession para ligações à API REST. Devolve uma coleção de objetos de informações de ligação.
  • Utilize o comutador SkipLoadingFormatData no cmdlet Connect-ExchangeOnline para evitar carregar dados de formato e executar comandos do Connect-ExchangeOnline mais rapidamente.

  • Os cmdlets apoiados pela API REST têm um tempo limite de 15 minutos, o que pode afetar as operações em massa. Por exemplo, o seguinte comando Update-DistributionGroupMember para atualizar 10 000 membros de um grupo de distribuição pode exceder o limite de tempo:

    $Members = @("member1","member2",...,"member10000")
    
    Update-DistributionGroupMember -Identity DG01 -Members $Members
    

    Em vez disso, utilize o comando Update-DistributionGroupMember para atualizar menos membros e, em seguida, adicione os restantes membros individualmente com um comando Add-DistributionGroupMember . Por exemplo:

    Update-DistributionGroupMember -Identity DG01 -Members $Members[0..4999]
    
    $Remaining = $Members[-5000..-1]
    
    foreach ($Member in $Remaining)
    
    {
       Add-DistributionGroupMember -Identity DG01 -Member $Member
    }
    

Para obter mais informações sobre as novidades no módulo EXO V3, veja a secção Notas de versão mais adiante neste artigo.

Comunicar erros e problemas relativos a Versões de pré-visualização do módulo Exchange Online PowerShell

Dica

Para as versões de Disponibilidade Geral (GA) do módulo, não utilize o seguinte endereço de e-mail para comunicar problemas. As mensagens sobre as versões de DISPONIBILIDADE do módulo não serão respondidas. Em vez disso, abra um pedido de suporte.

Para Versões de pré-visualização do módulo, utilize exocmdletpreview[at]service[dot]microsoft[dot]com para comunicar quaisquer problemas que possa encontrar. Certifique-se de que inclui os ficheiros de registo na sua mensagem de e-mail. Para gerar os ficheiros de registo, substitua <Path> por uma pasta de saída e, em seguida, execute o seguinte comando:

Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path> -LogLevel All

Cmdlets no módulo Exchange Online PowerShell

O módulo EXO contém nove cmdlets Get-EXO* exclusivos otimizados para velocidade em cenários de obtenção de dados em massa (milhares e milhares de objetos) no Exchange Online PowerShell. Os cmdlets melhorados no módulo estão listados na tabela seguinte:

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

Dica

Se abrir várias ligações para Exchange Online PowerShell na mesma janela, os cmdlets Get-EXO* estão sempre associados à última (mais recente) ligação Exchange Online PowerShell. Execute o seguinte comando para localizar a sessão da API REST onde os cmdlets Get-EXO* são executados: Get-ConnectionInformation | Where-Object {$_.ConnectionUsedForInbuiltCmdlets -eq $true}.

Os cmdlets relacionados com a ligação no módulo estão listados na seguinte tabela:

Cmdlet do módulo EXO Cmdlet relacionado mais antigo: Comments
Connect-ExchangeOnline Connect-EXOPSSession na V1 do módulo
ou
New-PSSession
Connect-IPPSSession Connect-IPPSSession na V1 do módulo
Disconnect-ExchangeOnline Remove-PSSession
Get-ConnectionInformation Get-PSSession Disponível na v3.0.0 ou posterior.

Dica

A utilização frequente dos cmdlets Connect-ExchangeOnline e Disconnect-ExchangeOnline numa única sessão ou script do PowerShell pode levar a uma fuga 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.

Os cmdlets diversos Exchange Online que estão no módulo estão listados na seguinte tabela:

Cmdlet Comments
Get-DefaultTenantBriefingConfig Disponível na v3.2.0 ou posterior.
Set-DefaultTenantBriefingConfig Disponível na v3.2.0 ou posterior.
Get-DefaultTenantMyAnalyticsFeatureConfig Disponível na v3.2.0 ou posterior.
Set-DefaultTenantMyAnalyticsFeatureConfig Disponível na v3.2.0 ou posterior.
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.
Get-VivaModuleFeature Disponível na v3.2.0 ou posterior.
Get-VivaModuleFeatureEnablement Disponível na v3.2.0 ou posterior.
Add-VivaModuleFeaturePolicy Disponível na v3.2.0 ou posterior.
Get-VivaModuleFeaturePolicy Disponível na v3.2.0 ou posterior.
Remove-VivaModuleFeaturePolicy Disponível na v3.2.0 ou posterior.
Update-VivaModuleFeaturePolicy Disponível na v3.2.0 ou posterior.

Instalar e manter o módulo Exchange Online PowerShell

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

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

Sistemas operativos suportados para o módulo Exchange Online PowerShell

As versões mais recentes do módulo são oficialmente suportadas no PowerShell 7 no Windows, Linux e Apple macOS.

Especificamente, a versão 2.0.4 ou posterior é suportada 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 é suportado 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.

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, pode efetuar os pré-requisitos normais do PowerShell e instalar o módulo Exchange Online PowerShell.

Linux

O módulo é oficialmente suportado nas seguintes distribuições do Linux:

  • Ubuntu 24.04 LTS
  • Ubuntu 20.04 LTS
  • Ubuntu 18.04 LTS

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, pode efetuar os pré-requisitos normais do PowerShell e instalar o módulo Exchange Online PowerShell.

Observação

Se ligar ao Exchange Online PowerShell a partir de uma rede protegida por um servidor proxy, o módulo EXO V2 (versão v2.0.5 ou anterior) não funciona no Linux. Tem de utilizar o módulo EXO V3 (v3.0.0 ou posterior) no Linux para se ligar a partir de uma rede protegida por um servidor proxy.

Windows

Todas as versões do módulo são suportadas no Windows PowerShell 5.1.

O PowerShell 7 no Windows necessita da 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.2 ou posterior se ligue. Caso contrário, obtém um System.Runtime.InteropServices.OSPlatform erro. Este requisito não deve ser um problema nas versões atuais do Windows. Para obter mais informações sobre as versões do Windows que suportam o .NET Framework 4.7.2, consulte este artigo.

Windows PowerShell requisitos e suporte de módulos em versões mais antigas do Windows estão descritos na seguinte lista:

  • Windows 8.1¹

  • Windows Server 2012 ou Windows Server 2012 R2¹

  • Windows 7 Service Pack 1 (SP1)² ³ ⁴

  • Windows Server 2008 R2 SP1² ³ ⁴

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

  • O suporte ² para esta versão do Windows terminou e é agora suportado apenas em máquinas virtuais do Azure.

  • ³ Esta versão do Windows suporta apenas versões v2.0.3 ou anteriores do módulo.

  • ⁴ 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 do módulo Exchange Online PowerShell

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

Dica

As definições nesta secção aplicam-se a todas as versões do PowerShell em todos os sistemas operativos.

Windows PowerShell precisa ser configurado para executar scripts e, por padrão, não é. Ao tentar se conectar, você obtém o seguinte erro:

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

Importante

As ligações à API REST não requerem autenticação Básica no WinRM, conforme descrito nesta secção. Conforme descrito anteriormente neste artigo, o acesso de autenticação básica (PowerShell remoto) ao PowerShell Exchange Online e ao PowerShell de Conformidade & de Segurança são preteridos. As informações nesta secção são mantidas para fins históricos.

Para ligações remotas do PowerShell que não utilizam a API REST (que agora são impossíveis), o WinRM tem de permitir a autenticação Básica. Não enviamos a combinação de nome de utilizador e palavra-passe. O cabeçalho de autenticação Básico é necessário para enviar o token OAuth da sessão, porque a implementação do lado do cliente do WinRM não suporta 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 ativar 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 do WinRM estiver desativada, receberá um dos seguintes erros ao tentar ligar-se através de uma ligação de autenticação Básica (PowerShell remoto):

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.

PowerShellGet para ligações à API REST no Windows

As ligações à API REST no Windows requerem o módulo PowerShellGet e, por dependência, o módulo PackageManagement. A consideração para estes módulos é mais para o PowerShell 5.1 do que para o PowerShell 7, mas todas as versões do PowerShell beneficiam de ter as versões mais recentes dos módulos instaladas. Para obter instruções de instalação e atualização, consulte Instalar o PowerShellGet no Windows.

Dica

As versões beta dos módulos PackageManagement ou PowerShellGet podem causar problemas de ligação. Se tiver problemas de ligação, verifique se não tem versões Beta dos módulos instaladas ao executar o seguinte comando: Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions.

Se não tiver o PowerShellGet instalado quando tentar criar uma ligação à API REST, receberá o seguinte erro quando tentar ligar:

Não é possível localizar um cmdlet Update-Manifest

Instalar o módulo Exchange Online PowerShell

Para instalar o módulo pela primeira vez, conclua os seguintes passos:

  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, pode utilizar o cmdlet Install-Module para instalar o módulo a partir do Galeria do PowerShell. Normalmente, quer a versão pública mais recente do módulo, mas também pode instalar uma versão de Pré-visualização, se estiver 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 Pré-visualização disponíveis do módulo, execute o seguinte comando:

      Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
      
    • Para instalar a versão de Pré-visualização mais recente 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 de Pré-visualização 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 no seu computador, pode utilizar os procedimentos nesta secção para atualizar o módulo.

  1. Para ver a versão do módulo que está atualmente instalada e onde 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, este será instalado para todos os utilizadores. Se o módulo estiver instalado na pasta Documentos, este é instalado apenas para a conta de utilizador atual.

  2. Pode utilizar o cmdlet Update-Module para atualizar o módulo a partir do Galeria do PowerShell. Normalmente, quer a versão pública mais recente do módulo, mas também pode atualizar para uma versão de Pré-visualização, caso existam.

    • Para atualizar para a versão pública mais recente do módulo, execute um dos seguintes comandos com base na forma como instalou originalmente o módulo (todos os utilizadores vs. apenas para a conta de utilizador 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 Pré-visualização disponíveis do módulo, execute o seguinte comando:

        Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
        
      • Para atualizar para a versão de Pré-visualização mais recente 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 de Pré-visualização 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.

Resolver problemas de instalação do módulo Exchange Online PowerShell

  • Você recebe um dos seguintes erros:

    O módulo especificado "ExchangeOnlineManagement" com a "<versão>" do PowerShellGetFormatVersion não é suportado pela 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 transferir a partir do URI ;https://go.microsoft.com/fwlink/?LinkID=627338& clcid=0x409" a "".

    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.

  • 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 predefinido para módulos do PowerShell não está definido como PSGallery. Para corrigir esse erro, execute o seguinte comando:

    Register-PSRepository -Default
    
  • 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.

Desinstalar o módulo Exchange Online PowerShell

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

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

Se o módulo estiver instalado em C:\Programas\WindowsPowerShell\Modules, este foi instalado para todos os utilizadores. Se o módulo estiver instalado na pasta Documentos, este foi instalado apenas para a conta de utilizador atual.

Para desinstalar o módulo, execute o seguinte comando num dos seguintes ambientes com base na forma como instalou originalmente o módulo (todos os utilizadores vs. apenas para a conta de utilizador atual):

  • Numa janela elevada do PowerShell (todos os utilizadores).

  • Numa janela normal do PowerShell (apenas para a conta de utilizador 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 de Exchange Online tradicionais devolvem todas as propriedades de objeto possíveis, incluindo muitas propriedades em branco ou desinteressante. 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 atribuirmos igual importância a todas as propriedades e de as devolvermos em todos os cenários, categorizámos propriedades relacionadas específicas em conjuntos de propriedades. Estes conjuntos de propriedades são registos de duas ou mais propriedades relacionadas no cmdlet.

Os cmdlets Get-EXO* mais utilizados e mais utilizados utilizam 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 simples de propriedades necessárias para a saída do cmdlet (por exemplo, propriedades de identidade). As propriedades nos conjuntos de propriedades Mínimos também estão descritas em Conjuntos de propriedades no Exchange Online cmdlets do módulo do 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 contém muito menos propriedades e os resultados são devolvidos muito mais rapidamente.

Por exemplo, depois de ligar ao Exchange Online PowerShell, o exemplo seguinte devolve apenas as propriedades no conjunto de propriedades Mínimo para as primeiras 10 caixas de correio.

Get-EXOMailbox -ResultSize 10

Por outro lado, a saída do mesmo comando Get-Mailbox devolveria, pelo menos, 230 propriedades para cada uma das primeiras 10 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 a filtragem no módulo, veja Filtros no módulo Exchange Online PowerShell.

Notas de versão

Salvo indicação em contrário, a versão atual do módulo Exchange Online PowerShell contém todas as funcionalidades das versões anteriores.

Versão atual

Versão 3.6.0

  • Get-VivaModuleFeature devolve agora informações sobre os tipos de identidades para os quais a funcionalidade suporta a criação de políticas (por exemplo, utilizadores, grupos ou todo o inquilino).
  • Os cmdlets para Viva gestão de acesso a funcionalidades processam agora os desafios de afirmação de avaliação de acesso contínuo (CAE).
  • Foi adicionada uma correção para o problema de compatibilidade com o módulo Microsoft.Graph.

Versões anteriores

Versão 3.5.1

  • Correções de erros em Get-EXOMailboxPermission e Get-EXOMailbox.
  • O módulo foi atualizado para ser executado no .NET 8, substituindo a versão anterior com base no .NET 6.
  • Melhorias em Add-VivaModuleFeaturePolicy.

Versão 3.5.0

  • Novo cmdlet Get-VivaFeatureCategory .
  • Foi adicionado suporte para operações de política ao nível da categoria no Viva Gestão de Acesso a Funcionalidades (VFAM).
  • Nova propriedade IsFeatureEnabledByDefault na saída de Get-VivaModuleFeaturePolicy. O valor desta propriedade mostra o estado de ativação predefinido para os utilizadores no inquilino quando não foram criadas políticas de inquilino ou utilizador/grupo.

Versão 3.4.0

  • Correções de erros em Connect-ExchangeOnline, Get-EXORecipientPermission e Get-EXOMailboxFolderPermission.
  • O parâmetro SigningCertificate no Connect-ExchangeOnline suporta agora o Modo de Idioma Restrito (CLM).

Versão 3.3.0

  • Parâmetro SkipLoadingCmdletHelp no Connect-ExchangeOnline para suportar a ignorar o carregamento de ficheiros de ajuda do cmdlet.
  • A variável EXO_LastExecutionStatus global está disponível para marcar a status do último cmdlet que foi executado.
  • Correções de erros em Connect-ExchangeOnline e Connect-IPPSSession.
  • O parâmetro IsUserControlEnabled em Add-VivaModuleFeaturePolicy e Update-VivaModuleFeaturePolicy para suportar a ativação de controlos de utilizador por política para funcionalidades integradas para Viva gestão de acesso a funcionalidades.

Versão 3.2.0

  • Novos cmdlets:
    • Get-DefaultTenantBriefingConfig e Set-DefaultTenantBriefingConfig.
    • Get-DefaultTenantMyAnalyticsFeatureConfig e Set-DefaultTenantMyAnalyticsFeatureConfig.
    • Get-VivaModuleFeature, Get-VivaModuleFeatureEnablement, Add-VivaModuleFeaturePolicy, Get-VivaModuleFeaturePolicy, Remove-VivaModuleFeaturePolicy e Update-VivaModuleFeaturePolicy.
  • Suporte de ligação da API REST para o PowerShell de Conformidade & de Segurança.
  • Parâmetro ConnectionId em Get-ConnectionInformation e Disconnect-ExchangeOnline:
    • Obtenha informações de ligação para ligações à API REST específicas.
    • Desativação seletiva para ligações à API REST.
  • O parâmetro SigningCertificate no Connect-ExchangeOnline permite-lhe assinar os ficheiros de formato (*. Format.ps1xml) ou ficheiros de módulo de script (.psm1) no módulo temporário que o Connect-ExchangeOnline cria com um certificado de cliente para utilizar em todas as políticas de execução do PowerShell.
  • Correções de erros no Connect-ExchangeOnline.

Versão 3.1.0

  • Parâmetro AccessToken disponível no Connect-ExchangeOnline.
  • Correções de erros em Connect-ExchangeOnline e Get-ConnectionInformation.
  • Correção de erros em Connect-IPPSSession para ligar ao PowerShell de Conformidade do & de Segurança com CertificateThumbprint.

Versão 3.0.0 (Versões de pré-visualização conhecidas como v2.0.6-PreviewX)

  • Funcionalidades já descritas nas ligações da API REST na secção módulo EXO V3 :
    • Autenticação baseada em certificados para o PowerShell de Conformidade do & de Segurança (versão 2.0.6-Preview5 ou posterior).
    • O cmdlet Get-ConnectionInformation para ligações baseadas em REST (versão 2.0.6-Preview7 ou posterior).
    • O comutador SkipLoadingFormatData no cmdlet Connect-ExchangeOnline para ligações baseadas em REST (versão 2.0.6-Preview8 ou posterior).
  • O parâmetro DelegatedOrganization funciona no cmdlet Connect-IPPSSession , desde que também utilize o parâmetro AzureADAuthorizationEndpointUri no comando .
  • Determinados cmdlets que costumavam pedir confirmação em cenários específicos já não o fazem. Por predefinição, o cmdlet é executado até à conclusão.
  • O formato do erro devolvido pela execução do cmdlet com falha é ligeiramente modificado. A exceção contém agora mais dados (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ão 2.0.5

  • Novos cmdlets Get-OwnerlessGroupPolicy e Set-OwnerlessGroupPolicy para gerir grupos do Microsoft 365 sem proprietário.

    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 dos utilizadores às funcionalidades do Headspace no Viva Insights.

Versão 2.0.4

  • O PowerShell 7 é oficialmente suportado no Windows, Linux e macOS da Apple, conforme descrito na secção Pré-requisitos do módulo Exchange Online PowerShell neste artigo.

  • O módulo no PowerShell 7 suporta o início de sessão único (SSO) baseado no browser e outros métodos de início de sessão. Para obter mais informações, veja Métodos de ligação exclusivos do PowerShell 7.

  • Os cmdlets Get-UserAnalyticsConfig e Set-UserAnalyticsConfig foram substituídos pelos cmdlets Get-MyAnalyticsConfig e Set-MyAnalyticsConfig. Além disso, pode configurar o acesso ao nível da funcionalidade. 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 Avaliação de Acesso Contínuo (CAE) está ativada 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 do Exchange Online e ao PowerShell de Segurança e Conformidade 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 dependem do tamanho do resultado do cmdlet e do ambiente do inquilino.

Versão 1.0.1

  • Versão de Disponibilidade Geral (GA) do módulo EXO V2. Está estável e pronto para ser utilizado 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 os Filtros no módulo Exchange Online PowerShell para obter os atributos que não são suportados nos 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>
  • Maior fiabilidade de Get-EXOMailboxStatistics, uma vez que determinados erros de encaminhamento de pedidos que levaram a falhas foram resolvidos.
  • Utilização otimizada da memória quando uma sessão é criada através da reutilização de qualquer módulo existente com uma nova sessão em vez de criar uma nova sempre que uma sessão é importada.

Versão 0.4368.1

  • Adicionado suporte para cmdlets do PowerShell de Segurança e Conformidade 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 intencionalmente não eram suportados nos 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 da sessão:
    • Só pode criar uma sessão de cada vez que contenha cmdlets com prefixo.
    • Os cmdlets EXO V2 não têm prefixo porque já têm o prefixo EXO, pelo que não utilize EXO como prefixo.
  • Use cmdlets EXO V2 mesmo se a autenticação básica do WinRM estiver desabilitada na máquina do cliente. As ligações remotas do PowerShell requerem Autenticação Básica do WinRM e os cmdlets remotos do PowerShell não estão disponíveis se a Autenticação Básica estiver desativada no WinRM.
  • O parâmetro de identidade para cmdlets V2 suporta agora o Nome e o Alias. A utilização de Alias ou Nome reduz o desempenho dos cmdlets V2, pelo que não recomendamos que os utilize.
  • 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 com tipos de dados diferentes e planeamos processá-los nos próximos meses.
  • Erro corrigido: problema frequente de restabelecimento de ligação de sessões quando 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.
  • Foi corrigido um problema em Get-Help em que o parâmetro Online estava a redirecionar 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 numa única janela do PowerShell.
  • 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 erros: os cmdlets remotos do PowerShell falham intermitentemente devido à hora em que a diferença entre a expiração do token e a Sessão fica inativa.
  • Atualização de segurança importante.
  • Correção de bugs e melhorias.