Gerenciar o Microsoft 365 (anteriormente Office 365) frequentemente requer PowerShell para operações em massa, automação e acesso a configurações não disponíveis no centro de administração. Este guia abrange a forma moderna de conexão usando o módulo ExchangeOnlineManagement, bem como a conexão a outros serviços do Microsoft 365.
Importante: A Microsoft descontinuou a autenticação básica para o Exchange Online em outubro de 2022. O método legado com
New-PSSessionnão funciona mais. Use o método moderno com módulos descrito abaixo.
Pré-requisitos
- Windows PowerShell 5.1 ou PowerShell 7+
- Conta de administrador do Microsoft 365
- Conectividade com a Internet
- Módulo PowerShellGet (incluído no Windows 10/11 e Server 2016+)
Instalação dos módulos necessários
Módulo de gerenciamento do Exchange Online
# Instalar o módulo (executar PowerShell como administrador)
Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber
# Ou atualizar se já estiver instalado
Update-Module -Name ExchangeOnlineManagement
# Verificar a instalação
Get-Module -Name ExchangeOnlineManagement -ListAvailable
Outros módulos úteis do Microsoft 365
# Microsoft Graph (substitui os módulos AzureAD e MSOnline)
Install-Module -Name Microsoft.Graph -Force
# Microsoft Teams
Install-Module -Name MicrosoftTeams -Force
# SharePoint Online
Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force
Conexão ao Exchange Online
Conexão padrão (com suporte MFA)
# Importar módulo
Import-Module ExchangeOnlineManagement
# Conectar — abre uma janela do navegador para autenticação
Connect-ExchangeOnline -UserPrincipalName admin@seudominio.com
Uma janela do navegador se abre para autenticação. Complete sua senha e a verificação MFA.
Conectar sem solicitação de navegador
Para scripts automatizados em ambientes sem navegador disponível:
# Usando autenticação baseada em certificado (recomendado para automação)
Connect-ExchangeOnline -CertificateThumbprint "THUMBPRINT" `
-AppId "APP-ID" `
-Organization "seudominio.onmicrosoft.com"
Conectar a um tenant específico (para parceiros/MSPs)
Connect-ExchangeOnline -UserPrincipalName admin@parceiro.com `
-DelegatedOrganization "tenant-cliente.onmicrosoft.com"
Tarefas de gerenciamento comuns
Uma vez conectado, você pode executar cmdlets do Exchange Online:
Gerenciamento de caixas de correio
# Listar todas as caixas de correio
Get-EXOMailbox -ResultSize Unlimited | Select-Object DisplayName, PrimarySmtpAddress
# Obter uma caixa de correio específica
Get-EXOMailbox -Identity "usuario@seudominio.com" | Format-List
# Obter estatísticas da caixa de correio (tamanho, contagem de itens)
Get-EXOMailboxStatistics -Identity "usuario@seudominio.com" |
Select-Object DisplayName, TotalItemSize, ItemCount
# Configurar propriedades da caixa de correio
Set-Mailbox -Identity "usuario@seudominio.com" -MaxReceiveSize 50MB
Grupos de distribuição
# Listar todos os grupos de distribuição
Get-DistributionGroup -ResultSize Unlimited
# Obter membros de um grupo
Get-DistributionGroupMember -Identity "equipe-vendas@seudominio.com"
# Adicionar um membro
Add-DistributionGroupMember -Identity "equipe-vendas" -Member "novousuario@seudominio.com"
Regras de fluxo de correio (regras de transporte)
# Listar todas as regras de transporte
Get-TransportRule | Select-Object Name, State, Priority
# Desabilitar uma regra
Disable-TransportRule -Identity "Nome da regra"
Conexão a outros serviços do Microsoft 365
Microsoft Graph (usuários, grupos, licenças)
Import-Module Microsoft.Graph
# Conectar com permissões específicas
Connect-MgGraph -Scopes "User.Read.All", "Group.ReadWrite.All"
# Listar todos os usuários
Get-MgUser -All | Select-Object DisplayName, UserPrincipalName, AccountEnabled
# Obter informações de licenças
Get-MgSubscribedSku | Select-Object SkuPartNumber, ConsumedUnits,
@{N='Total';E={$_.PrepaidUnits.Enabled}}
Microsoft Teams
Import-Module MicrosoftTeams
Connect-MicrosoftTeams
# Listar todas as equipes
Get-Team | Select-Object DisplayName, GroupId, Visibility
Desconectar sessões
Sempre desconecte ao finalizar para liberar recursos:
# Desconectar Exchange Online
Disconnect-ExchangeOnline -Confirm:$false
# Desconectar Microsoft Graph
Disconnect-MgGraph
# Desconectar Teams
Disconnect-MicrosoftTeams
Método legado (não funciona mais)
Como referência histórica, este era o método antigo de conexão. Parou de funcionar em outubro de 2022 quando a Microsoft desabilitou a autenticação básica:
# DESCONTINUADO — NÃO USAR
$cred = Get-Credential
$session = New-PSSession -ConfigurationName Microsoft.Exchange `
-ConnectionUri https://ps.outlook.com/powershell/ `
-Credential $cred -Authentication Basic -AllowRedirection
Import-PSSession $session -Prefix o365
Se você ainda tem scripts usando este método, atualize-os para usar Connect-ExchangeOnline.
Solução de problemas
Módulo não encontrado
# Atualizar PowerShellGet primeiro
Install-Module -Name PowerShellGet -Force
# Depois tentar novamente a instalação do ExchangeOnlineManagement
Acesso negado
Certifique-se de que sua conta tenha as funções de administrador necessárias:
- Exchange Administrator para gerenciamento de caixas de correio
- Global Administrator para acesso completo
- Security Administrator para recursos de conformidade
Timeout de conexão atrás de proxy
Connect-ExchangeOnline -UserPrincipalName admin@seudominio.com `
-PSSessionOption (New-PSSessionOption -ProxyAccessType IEConfig)
Resumo
A forma moderna de gerenciar o Microsoft 365 via PowerShell é o módulo ExchangeOnlineManagement com Connect-ExchangeOnline. Suporta MFA, é mantido ativamente pela Microsoft e substitui o método descontinuado de autenticação básica. Para o gerenciamento de usuários e grupos fora do Exchange, use o módulo Microsoft.Graph.