Como conectar os serviços Online do Exchange 365 ao PowerShell

Mais frequentemente do que não, o Microsoft Office 365 e todas as aplicações incluídas são geridas através de um navegador web numa interface gráfica de utilizador. Basicamente, utiliza-se o Centro de Administração do Office 365 e as interfaces web do Centro de Administração do Exchange. No entanto, pode ser necessário utilizar a interface de linha de comandos (CLI) para realizar ações em massa que se apliquem a centenas de contas de utilizador. Além disso, pode querer utilizar os cmdlets do Exchange Online, que não estão disponíveis no Centro de Administração.

Muitos administradores utilizam o PowerShell (fornecido pela Microsoft) para gerir o Microsoft Exchange Server na interface de linha de comandos. No entanto, estes comandos padrão para ambientes de Servidor Exchange locais não funcionam para o Exchange Online em execução na nuvem Microsoft 365. Para utilizar o PowerShell com o Office 365, é necessário instalar módulos especiais do PowerShell para se conectar ao Office 365. Leia este artigo para aprender sobre os diferentes métodos para se conectar ao PowerShell do Exchange Online.

Requisitos

Existem alguns requisitos que devem ser cumpridos para se conectar ao PowerShell do Exchange Online.

  • Deve-se usar o PowerShell no Windows 7 SP1, ou versões mais recentes do Windows para desktop e no Windows Server 2008 R2 SP1, ou versões mais recentes do Windows Server. Esteja ciente de que é necessário 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.
  • É necessária uma conexão à internet. A porta TCP 80 deve estar aberta para conectar-se da sua máquina local ao host de destino.
  • O acesso ao Exchange Online PowerShell deve ser habilitado para o usuário atual (por padrão, esse acesso é habilitado para administradores).

Você pode habilitar manualmente o acesso para se conectar 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 se conectar 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 Remoção do PowerShell. O processo de iniciar uma sessão do 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 do PowerShell remoto. Conjuntos diferentes de cmdlets do PowerShell são usados para gerenciar o Microsoft Office 365 e o Microsoft Exchange Online.

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

  • Criando uma sessão remota para o Exchange Online no PowerShell aberto em sua máquina local.
  • Fornecendo configurações de conexão, passando autenticação.
  • Importando 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 o método manual primeiro, 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 porque a execução de scripts foi desativada neste sistema. Forneca 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 da política de execução é Restricted.

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

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

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

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

    Observe que neste comando, é definida a URL de destino do servidor do Exchange Online em nuvem que deve aceitar a solicitação. 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 enquanto recebe os comandos.
  9. Depois de 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 conectar o 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 executar scripts longos. Considere usar Endereços IP Confiáveis (ou seja, os endereços IP de sua organização) para ignorar o MFA ao se conectar da rede de sua empresa para o PowerShell do Exchange Online. 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 de nuvem do Office 365.

  10. Depois de conectar-se ao Office 365 e ao 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 o PowerShell do Exchange Online com o seguinte comando:


    Get-Command -Module tmp*

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

  11. Quando terminar o trabalho com o Exchange 365, desconecte a sessão. Esta é a prática recomendada.

    Remove-PSSession $Session

    Infelizmente, não são exibidas mensagens após a execução deste 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ê sabe 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 de 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 o 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 conforme 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@seu_domínio.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 se conectar ao PowerShell do Exchange Online. 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 e, em seguida, salve o arquivo de texto.

    Função Conectar-EXOnline
    {
    $credenciais = Get-Credential -Credencial [email protected]
    Write-Output “Obtendo os cmdlets do Exchange Online”
    $Sessão = Nova-Sessão -UriConexão https://outlook.office365.com/powershell-liveid/ `
    -NomeConfiguração Microsoft.Exchange -Credencial $credenciais `
    -Autenticação Básica -PermitirRedirecionamento
    Importar-SessãoPSS $Sessão
    }

  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 terminar de trabalhar com o PowerShell do Exchange Online, encerre a sessão com o comando:

    Get-PSSession | Remove-PSSession

Conclusão

O PowerShell do Exchange Online é uma boa alternativa à interface web do Centro de Administração do Exchange. 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 do blog de hoje cobriu como conectar-se 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 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/