Como Conectar os Serviços do Exchange Online do Office 365 ao PowerShell

Mais frequentemente do que não, o Microsoft Office 365 e todas as aplicações incluídas são gerenciadas via navegador da web em uma interface gráfica do usuário. Basicamente, você utiliza o Centro de Administração do Office 365 e as interfaces da web do Centro de Administração do Exchange. No entanto, você pode precisar usar a interface de linha de comando (CLI) para realizar ações em massa que se apliquem a centenas de contas de usuário. Além disso, você pode querer usar os cmdlets do Exchange Online, que não estão disponíveis no Centro de Administração.

Muitos administradores usam o PowerShell (fornecido pela Microsoft) para gerenciar o Microsoft Exchange Server na interface de linha de comando. No entanto, esses comandos padrão para ambientes do Exchange Server local não funcionam para o Exchange Online em execução na nuvem Microsoft 365. Para usar o Powershell com o Office 365, você precisa instalar módulos especiais do PowerShell para se conectar ao Office 365. Leia este post para aprender sobre os diferentes métodos para se conectar ao PowerShell do Exchange Online.

Requisitos

Há alguns requisitos que devem ser atendidos para se conectar ao PowerShell do Exchange Online.

  • Você deve usar PowerShell no Windows 7 SP1, ou versões mais recentes de desktops Windows e Windows Server 2008 R2 SP1, ou versões mais recentes de servidores Windows. Esteja ciente de que você precisa instalar o .NET Framework 4.5 ou posterior, além de instalar uma versão atualizada do Windows Management Framework 3.0, 4.0, ou 5.1.
  • Uma conexão com a internet é necessária. A porta TCP 80 deve estar aberta para se conectar da sua máquina local ao host de destino.
  • O acesso ao Exchange Online PowerShell deve estar habilitado para o usuário atual (por padrão, esse acesso está habilitado para administradores).

Você pode habilitar manualmente o acesso para conectar-se ao Exchange Online PowerShell para o usuário específico com o comando:

Set-User -Identity [email protected] -RemotePowerShellEnabled $true

Princípio de Funcionamento

Você pode conectar-se ao Exchange Online PowerShell, mas esse processo é mais complicado do que usar o PowerShell para gerenciar um servidor Exchange local. No entanto, você pode usar o console PowerShell integrado para gerenciar infraestruturas de nuvem remotas. Nesse caso, o console é chamado de PowerShell remoto ou Remoting PowerShell. O processo de iniciar uma sessão de PowerShell remoto para o Office 365 e o Exchange Online é ligeiramente diferente. Você deve baixar e instalar componentes especiais antes de poder abrir uma sessão remota do Office 365. Felizmente, os cmdlets necessários para iniciar um PowerShell remoto do Exchange Online são baixados automaticamente quando você cria uma sessão de PowerShell remoto. Diferentes conjuntos de cmdlets do PowerShell são usados para gerenciar o Microsoft Office 365 e o Microsoft Exchange Online.

A principal razão para conectar-se ao Microsoft Exchange Online no PowerShell envolve o seguinte:

  • Criar uma sessão remota para o Exchange Online no PowerShell aberto em sua máquina local.
  • Fornecer configurações de conexão, passando autenticação.
  • Importar cmdlets do PowerShell que são necessários para gerenciar o Exchange Online remotamente.

No post de blog de hoje, executaremos cmdlets do PowerShell no Windows 10.

Configuração Manual

Vamos revisar primeiro o método manual, para entender melhor o princípio de configuração.

  1. Abra o Windows PowerShell. Você pode fazer isso com pelo menos dois métodos.
    1. Clique em Iniciar, digite cmd, clique com o botão direito no item Prompt de Comando e selecione Executar como Administrador no menu de contexto.
    2. Vá para Iniciar > Windows PowerShell. Clique com o botão direito no Windows PowerShell e clique em Executar como Administrador para garantir que você possa executar comandos do PowerShell sem restrições.
  2. Habilite a execução de scripts (é melhor executar este comando no início da preparação do PowerShell para gerenciar o Exchange Online e o Office 365), caso contrário você receberá um erro no futuro ao executar o comando Import-PSSession:

    Import-PSSession : Os arquivos não podem ser carregados, pois a execução de scripts foi desativada neste sistema. Forneça um certificado válido com o qual assinar os arquivos.

  3. Para executar scripts, a política de execução deve ser definida como RemoteSigned.

    Set-ExecutionPolicy RemoteSigned

  4. Pressione Y para confirmar a alteração da política, se solicitado. Você também pode usar o comando Set-ExecutionPolicy Unrestricted para usar a política Unrestricted.

    Por padrão, o modo de política de execução é Restricted.

  5. Execute o comando no PowerShell para obter credenciais e insira seu login/senha de administrador na janela pop-up para acessar o Exchange Online. O usuário deve ter permissões administrativas globais no Office 365.

    $Credential=Get-Credential
    As credenciais inseridas serão salvas na variável e usadas no próximo comando como $Credential.

  6. Você precisa criar uma sessão remota do PowerShell com o cmdlet New-PSSession e executar o seguinte comando:

    $Sessão = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Credencial -Authentication Basic -AllowRedirection

    Observe que neste comando, a URL de destino do servidor Exchange Online em execução na nuvem que deve aceitar a solicitação está definida. Após executar o comando, os servidores em nuvem do Microsoft Office 365 fornecerão acesso ao servidor virtual Exchange Online apropriado associado à sua conta.

  7. Os cmdlets do PowerShell do Exchange Online devem ser importados para a sessão atual com o comando:

    Import-PSSession $Session

  8. Você pode ver a barra de progresso ao receber os comandos.
  9. Após executar com sucesso o comando, você verá a seguinte mensagem.
    Nota:
    Se você usar o MFA para sua conta, os cmdlets padrão explicados acima não funcionarão. Se você deseja se conectar ao Exchange Online no PowerShell usando MFA, execute o seguinte comando:

    Connect-EXOPSSession -UserPrincipalName SEU_UPN

    Onde SEU_UPN (nome do princípio do usuário) é o nome da conta do Office 365 que você está usando. Você pode precisar instalar o Módulo PowerShell Remoto do Exchange Online da Microsoft. Esteja ciente de que ao usar este módulo, a sessão termina após uma hora, o que pode ser inconveniente para a execução de scripts longos. Considere usar endereços IP confiáveis (ou seja, os endereços IP da sua organização) para ignorar o MFA ao se conectar à Exchange Online PowerShell a partir da rede da sua empresa. MFA (Autenticação Multifator) é o método avançado de autenticação que adiciona uma segunda camada de segurança. Após inserir uma senha, o código de confirmação é enviado para o celular do usuário e o usuário deve inserir o código de confirmação para verificar a conta e obter acesso aos serviços em nuvem do Office 365.

  10. Depois de conectado ao Office 365 e Exchange Online, você pode gerenciar seu ambiente de nuvem do Office 365. Vamos verificar se nos conectamos ao Exchange Online corretamente e listar as caixas de correio dos usuários, por exemplo.

    Get-Mailbox

    Você pode listar todos os cmdlets disponíveis para a PowerShell do Exchange Online com o seguinte comando:


    Get-Command -Module tmp*

    Os nomes dos cmdlets da PowerShell do Exchange Online não são convertidos.

  11. Ao encerrar seu trabalho com o Exchange 365, desconecte a sessão. Esta é a prática recomendada.

    Remove-PSSession $Sessão

    Infelizmente, nenhuma mensagem é exibida após executar este comando. Você pode verificar se a sessão está desconectada executando o comando Get-MailBox. Se a sessão estiver desconectada, você receberá o erro explicando que não pode executar cmdlets do Exchange Online após a desconexão.

Por que você deve desconectar a sessão? Bem, simplesmente porque o número de sessões ativas simultâneas que podem ser abertas ao mesmo tempo é limitado a três. Se você abrir três sessões do Exchange Online PowerShell ao mesmo tempo e não desconectar nenhuma delas quando não estiver em uso, você precisará esperar até que uma dessas sessões expire antes de poder se conectar ao Exchange Online PowerShell novamente a partir de um novo console do PowerShell.

Configuração Automatizada

Agora que você conhece o princípio de como se conectar ao Exchange Online PowerShell manualmente, você pode usar o método automatizado. A vantagem desse método é o menor número de comandos que você deve inserir.

  1. Baixe o script no site da Microsoft. O nome do arquivo do script é ConnectExchangeOnlinePowerShell.ps1 neste caso.
  2. Vá para o diretório onde o script está localizado; em nosso exemplo, o script é salvo em C:\temp_win\.
  3. Antes de executar o script, edite a política de execução do script (de forma semelhante ao que é mostrado no primeiro método), caso contrário, você receberá o erro:

    O arquivo C:\temp_win\ConnectExchangeOnlinePowerShell.ps1 não está assinado digitalmente. Você não pode executar este script no sistema atual.

    Você pode aplicar a política de execução Ignorar para evitar esse problema:


    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

  4. Digite Y para confirmar a alteração da política de execução.
  5. Depois disso, você pode executar o script. Se você não usa MFA, execute o script sem argumentos adicionais:

    .\ConnectExchangeOnlinePowerShell.ps1

    Se MFA (Autenticação Multifator) é usado no seu ambiente do Office 365, tente o comando:


    .\ConnectExchangeOnlinePowerShell.ps1 -MFA

  6. Agora que você se conectou com sucesso ao Exchange Online, você pode gerenciar suas contas de usuário, suas caixas de correio, etc. Por exemplo, você pode listar as caixas de correio dos seus usuários:

    Get-Mailbox

    Este script pode ser usado para agendar e automatizar tarefas. Por exemplo, você pode se conectar ao Exchange Online sem inserir credenciais na janela interativa como mostrado acima. Você pode inserir seu login e senha na linha de comando como opções de comando ao executar o script:


    ./ConnectExchangeOnlinePowerShell.ps1 -UserName admin@your_domain.com -Password sua_senha

    Tenha em mente que inserir senhas como texto simples na linha de comando pode não ser seguro.

  7. Ao terminar de trabalhar com o Exchange Online no PowerShell, não se esqueça de encerrar a sessão:

    ./ConnectExchangeOnlinePowerShell.ps1 -Disconnect

Método Alternativo

Vamos considerar mais um método que pode ser usado para conectar ao Exchange Online no PowerShell. Este método pode ser considerado uma modificação do primeiro método.

  1. Crie um novo perfil para o PowerShell com a função:

    New-item -type file -force $profile

  2. Edite o arquivo de configuração do perfil no editor de texto para adicionar a função intitulada Connect-EXOnline:

    notepad $profile

  3. Adicione o seguinte conteúdo ao arquivo de configuração do perfil do PowerShell e altere [email protected] para o nome da sua conta, depois salve o arquivo de texto.

    Function Connect-EXOnline
    {
    $credentials = Get-Credential -Credential [email protected]
    Write-Output “Obtendo os cmdlets do Exchange Online”
    $Session = New-PSSession -ConnectionUri https://outlook.office365.com/powershell-liveid/ `
    -ConfigurationName Microsoft.Exchange -Credential $credentials `
    -Authentication Basic -AllowRedirection
    Import-PSSession $Session
    }

  4. Feche a janela do PowerShell atual e abra uma nova janela do PowerShell como Administrador. Execute o comando para se conectar ao PowerShell do Exchange Online:

    Connect-ExOnline
    Digite sua senha na janela pop-up.

  5. Quando tiver terminado de trabalhar com o PowerShell do Exchange Online, encerre a sessão com o comando:

    Get-PSSession | Remove-PSSession

Conclusão

O Exchange Online PowerShell é uma ótima alternativa à interface web do Exchange Admin Center. Com o PowerShell do Office 365 e o PowerShell do Exchange Online, você pode realizar operações em massa e ações com vários objetos usando um único comando ou script. A postagem de blog de hoje cobriu como se conectar ao PowerShell do Exchange Online usando três métodos, um dos quais é automatizado. O princípio de funcionamento de cada método é semelhante e consiste em três etapas principais: criar uma sessão remota do PowerShell, autenticar e importar os cmdlets do PowerShell do Exchange Online.

Uma recomendação importante é desconectar a sessão remota do PowerShell quando você terminar de trabalhar com o PowerShell do Exchange Online para evitar uma situação em que todas as sessões estejam ocupadas e abrir uma nova sessão remota do PowerShell do Exchange Online não seja possível. Ter o Exchange Server na nuvem é uma solução confiável, mas mesmo nesse caso, é recomendável fazer um backup do seu servidor Exchange para proteger seus dados contra exclusões acidentais e outros desastres.

Source:
https://www.nakivo.com/blog/how-to-connect-office-365-exchange-online-powershell/