Restringir remetentes em Grupos do Microsoft 365: apenas proprietários via PowerShell

Quer impedir que membros enviem e‑mails para um Grupo do Microsoft 365 e permitir apenas os proprietários? Veja um passo a passo prático com PowerShell do Exchange Online, incluindo scripts prontos, dicas de verificação, automação em massa e solução de problemas.

Índice

Visão geral do cenário

Em muitos ambientes, grupos “@<tenant>.onmicrosoft.com” são usados como pontos de contato internos (por exemplo, para apps, integrações, anúncios restritos ou caixas de correio centrais). Nesses casos, faz sentido limitar quem pode enviar para o endereço do grupo, reduzindo ruído e riscos. O Exchange Online oferece uma configuração nativa para isso: o parâmetro AcceptMessagesOnlyFromSendersOrMembers em Set-UnifiedGroup.

Neste guia você vai:

  • Restringir o envio ao grupo somente aos proprietários;
  • Adicionar exceções (um ou outro remetente adicional);
  • Bloquear totalmente remetentes externos, se desejar;
  • Validar e auditar a configuração;
  • Automatizar em massa para vários grupos;
  • Resolver erros comuns de conexão e permissão.

Quando usar esta configuração

  • O grupo serve a processos internos e não deve aceitar mensagens de todos os colaboradores.
  • Você quer que somente os proprietários publiquem (ex.: comunicados oficiais).
  • É necessário impedir mensagens de sistemas externos ou de remetentes não autenticados.
  • O Centro de Administração não oferece o nível de granularidade desejado; você precisa do PowerShell para controle total.

Pré‑requisitos, permissões e observações

  • Função necessária: Global Admin ou Exchange Admin.
  • A alteração é feita via PowerShell do Exchange Online.
  • A propagação pode demorar alguns minutos até refletir em todos os servidores.
  • A interface gráfica do Exchange Admin Center ainda não expõe esta opção com a mesma granularidade do PowerShell.
  • Funciona para Grupos do Microsoft 365 (também chamados de Unified Groups).

Passo a passo rápido

Este é o caminho mais direto para permitir que apenas os proprietários enviem mensagens ao grupo:

# (Ignore as duas primeiras linhas se já tiver o módulo instalado)
Set-ExecutionPolicy RemoteSigned          # Permitir scripts confiáveis (executar como Administrador)
Install-Module ExchangeOnlineManagement   # Instalar o módulo Exchange Online
Import-Module ExchangeOnlineManagement    # Carregar o módulo

Connect-ExchangeOnline                    # Iniciar sessão (Global Admin/Exchange Admin)

Restringir quem pode enviar ao grupo
Set-UnifiedGroup -Identity "group@dominio.com" `
  -AcceptMessagesOnlyFromSendersOrMembers userA@dominio.com,userB@dominio.com

Como usar: liste no parâmetro -AcceptMessagesOnlyFromSendersOrMembers somente os endereços dos proprietários do grupo (e de mais alguém que precise enviar). Para remover a restrição no futuro:

Set-UnifiedGroup -Identity "group@dominio.com" `
  -AcceptMessagesOnlyFromSendersOrMembers $null

Entendendo a lógica de entrega

Quando você define AcceptMessagesOnlyFromSendersOrMembers:

  • O grupo passa a aceitar mensagens somente dos endereços listados (ou membros/grupos listados).
  • Todos os demais remetentes internos ou externos são rejeitados com NDR (falha de entrega).
  • Para controlar remetentes externos de forma ampla, use também RequireSenderAuthenticationEnabled (veja abaixo).

Tabela de referência rápida

TarefaComando / AçãoObservações
Confirmar proprietários do grupoGet-UnifiedGroupLinks -Identity "group@dominio.com" -LinkType OwnersUse o resultado para montar a lista de remetentes permitidos.
Permitir somente os proprietários enviaremSet-UnifiedGroup -Identity "group@dominio.com" -AcceptMessagesOnlyFromSendersOrMembers userA@...,userB@...Liste apenas os proprietários (e eventuais exceções).
Adicionar 1 membro específico como exceçãoAcrescente o e‑mail do membro ao parâmetro acimaEx.: proprietários + membro@dominio.com.
Bloquear remetentes externos (não autenticados)Set-UnifiedGroup -Identity "group@dominio.com" -RequireSenderAuthenticationEnabled $trueUse em conjunto com a lista de permitidos. Se precisar liberar um externo específico, mantenha $false e confie na lista de permitidos.
Remover restriçõesSet-UnifiedGroup -Identity "group@dominio.com" -AcceptMessagesOnlyFromSendersOrMembers $nullRestaura o comportamento padrão (aceitar de membros e, conforme política, de externos).
Conferir a configuração atualGet-UnifiedGroup "group@dominio.com" | fl DisplayName,PrimarySmtpAddress,AcceptMessagesOnlyFromSendersOrMembers,RequireSenderAuthenticationEnabledMostra quem está permitido e se externos são bloqueados.

Receita prática: somente proprietários podem enviar

Se quiser capturar automaticamente os e‑mails dos proprietários atuais e aplicá-los como lista de permitidos:

$group = "group@dominio.com"

1) Obter proprietários do grupo
$owners = Get-UnifiedGroupLinks -Identity $group -LinkType Owners |
  ForEach-Object { $_.PrimarySmtpAddress } |
  Where-Object { $_ } |
  Select-Object -Unique

if (-not $owners -or $owners.Count -eq 0) {
  Write-Warning "Nenhum proprietário encontrado para $group. Revise os owners antes de aplicar a restrição."
} else {
  # 2) Aplicar a lista de owners como remetentes permitidos
  Set-UnifiedGroup -Identity $group -AcceptMessagesOnlyFromSendersOrMembers $owners

  # 3) (Opcional) Bloquear todos os externos não autenticados
  # Set-UnifiedGroup -Identity $group -RequireSenderAuthenticationEnabled $true

  # 4) Validar
  Get-UnifiedGroup $group | fl DisplayName,AcceptMessagesOnlyFromSendersOrMembers,RequireSenderAuthenticationEnabled
}

Boa prática: sempre valide se o grupo tem pelo menos um proprietário antes de aplicar a restrição. Caso contrário, ninguém conseguirá enviar.

Variantes úteis

Proprietários + exceção pontual

$group = "group@dominio.com"
$owners = Get-UnifiedGroupLinks -Identity $group -LinkType Owners | ForEach-Object { $_.PrimarySmtpAddress }
$extras = @("usuario.especial@dominio.com")
$allowed = $owners + $extras | Where-Object { $_ } | Select-Object -Unique
Set-UnifiedGroup -Identity $group -AcceptMessagesOnlyFromSendersOrMembers $allowed

Apenas um remetente de serviço

Quando o grupo é caixa de entrada de um sistema (chamados, alertas, etc.):

Set-UnifiedGroup -Identity "group@dominio.com" `
  -AcceptMessagesOnlyFromSendersOrMembers "servico@dominio.com"

Bloqueio total de externos

Para garantir que somente remetentes autenticados do seu tenant consigam enviar (além da lista permitida):

Set-UnifiedGroup -Identity "group@dominio.com" -RequireSenderAuthenticationEnabled $true

Dica: se você precisa autorizar um endereço externo específico, deixe -RequireSenderAuthenticationEnabled $false e confie exclusivamente na lista de permitidos (que incluirá o e‑mail externo).

Validação e testes

  1. Envie um e‑mail de uma conta permitida → a mensagem deve chegar ao grupo.
  2. Envie de uma conta não permitida → o remetente receberá um NDR (falha de entrega).
  3. Use o comando de auditoria abaixo para ver a configuração efetiva:
Get-UnifiedGroup "group@dominio.com" |
  Format-List DisplayName,PrimarySmtpAddress,AcceptMessagesOnlyFromSendersOrMembers,RequireSenderAuthenticationEnabled

Automação em massa

Quer aplicar a política em todos os grupos do domínio @<tenant>.onmicrosoft.com de uma vez? Use o script abaixo. Ele ignora grupos sem proprietários e registra o que foi feito.

# Parâmetros
$domainFilter = "@contoso.onmicrosoft.com"   # ajuste para o seu tenant
$log = @()

Conectar (se necessário)
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline

Selecionar todos os grupos do domínio alvo
$groups = Get-UnifiedGroup -ResultSize Unlimited | Where-Object {
  $_.PrimarySmtpAddress -like "*$domainFilter"
}

foreach ($g in $groups) {
  try {
    $owners = Get-UnifiedGroupLinks -Identity $g.PrimarySmtpAddress -LinkType Owners |
      ForEach-Object { $_.PrimarySmtpAddress } |
      Where-Object { $_ } |
      Select-Object -Unique

    if (-not $owners -or $owners.Count -eq 0) {
      $log += [pscustomobject]@{
        Group = $g.PrimarySmtpAddress
        Action = "Skipped"
        Detail = "Sem proprietários; revisão necessária"
      }
      continue
    }

    Set-UnifiedGroup -Identity $g.PrimarySmtpAddress -AcceptMessagesOnlyFromSendersOrMembers $owners

    # (Opcional) padronize o bloqueio de externos:
    # Set-UnifiedGroup -Identity $g.PrimarySmtpAddress -RequireSenderAuthenticationEnabled $true

    $log += [pscustomobject]@{
      Group = $g.PrimarySmtpAddress
      Action = "Applied"
      Detail = ("Allowed: " + ($owners -join ", "))
    }
  }
  catch {
    $log += [pscustomobject]@{
      Group = $g.PrimarySmtpAddress
      Action = "Error"
      Detail = $_.Exception.Message
    }
  }
}

Saída consolidada
$log | Format-Table -AutoSize
Export-CSV para registro, se quiser:
$log | Export-Csv .\restricao-grupos.csv -NoTypeInformation -Encoding UTF8

Boas práticas operacionais

  • Mantenha proprietários atualizados: promova substitutos quando alguém sai da equipe.
  • Separe grupos “abertos” e “restritos”: padronize uma convenção de nomenclatura (-locked, -onlyowners etc.).
  • Documente exceções: registre qualquer endereço extra permitido e a justificativa.
  • Audite periodicamente: rode Get-UnifiedGroup e compare com sua baseline.
  • Evite listas gigantes: quando muitos remetentes precisam enviar, considere outro mecanismo (ex.: fila, formulário, moderação* ou lista de distribuição específica).

* Observação: a moderação clássica de mensagens é um recurso diferente, mais comum em listas de distribuição tradicionais. Para Grupos do Microsoft 365, a abordagem de allowlist com AcceptMessagesOnlyFromSendersOrMembers costuma ser a mais simples.

Diferenças e limites importantes

  • Teams vs e‑mail: esta configuração controla o e‑mail do grupo (caixa do grupo). Ela não altera permissões de postagem em canais do Teams.
  • Delegações “Send As/Send on behalf”: um usuário com permissão de envio “como” o grupo não ignora automaticamente a restrição; o que vale é o remetente avaliado pelo Exchange. Mantenha a allowlist consistente com as delegações que você de fato quer permitir.
  • Convidados (B2B): endereços de convidados ainda são, na prática, endereços “externos” quando enviam por e‑mail. Se precisar liberá‑los, inclua o endereço na lista permitida e avalie se -RequireSenderAuthenticationEnabled deve ficar em $false.
  • Aliases e identidade: use -Identity com o Primary SMTP do grupo para evitar ambiguidades (ex.: group@dominio.com).

Solução de problemas

SintomaCausa provávelCorreção sugerida
Erro ao conectar no Exchange OnlineMFA exigido, sessão expirada ou módulo ausenteAtualize o módulo (Install-Module/Update-Module ExchangeOnlineManagement), use Connect-ExchangeOnline e autentique com a conta de administrador.
Owner não consegue enviarProprietário não está na lista AcceptMessagesOnlyFromSendersOrMembersReaplique a receita que coleta os proprietários atuais; valide com Get-UnifiedGroupLinks -LinkType Owners.
Não permitidos ainda conseguem enviarEndereço alternativo/alias foi permitido sem querer; regra de transporte interferindoListe explicitamente apenas e‑mails desejados; audite regras de transporte que possam redirecionar ou alterar remetente.
Externo conseguiu enviar-RequireSenderAuthenticationEnabled está $falseSe quiser bloquear todos os externos, aplique $true. Para liberar só alguns externos, mantenha $false e controle pela allowlist.
Ninguém envia após a mudançaLista vazia (sem proprietários) aplicada por enganoDefina ao menos um e‑mail permitido ou volte ao padrão com -AcceptMessagesOnlyFromSendersOrMembers $null.

Checklist de implementação

  • Confirme proprietários atuais do grupo.
  • Decida se haverá exceções além dos proprietários.
  • Defina a política para externos (-RequireSenderAuthenticationEnabled).
  • Aplicar configuração via PowerShell.
  • Validar entrega com testes reais (permitido e não permitido).
  • Documentar e registrar a alteração (inclusive o script/CSV de log, se usado).

Exemplos completos e comentados

Exemplo A — Somente proprietários

# Conectar
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline

Definir alvo

\$group = "[anuncios@contoso.onmicrosoft.com](mailto:anuncios@contoso.onmicrosoft.com)"

Coletar owners

\$owners = Get-UnifiedGroupLinks -Identity \$group -LinkType Owners |
ForEach-Object { \$.PrimarySmtpAddress } | Where-Object { \$ } | Select-Object -Unique

Aplicar

Set-UnifiedGroup -Identity \$group -AcceptMessagesOnlyFromSendersOrMembers \$owners

(Opcional) Bloquear todos os externos

Set-UnifiedGroup -Identity \$group -RequireSenderAuthenticationEnabled \$true

Conferir

Get-UnifiedGroup \$group | fl DisplayName,AcceptMessagesOnlyFromSendersOrMembers,RequireSenderAuthenticationEnabled 

Exemplo B — Proprietários + equipe de Comunicação

$group = "anuncios@contoso.onmicrosoft.com"
$owners = Get-UnifiedGroupLinks -Identity $group -LinkType Owners | ForEach-Object { $_.PrimarySmtpAddress }
$comms  = @("comunicacao@contoso.com")
Set-UnifiedGroup -Identity $group -AcceptMessagesOnlyFromSendersOrMembers ($owners + $comms | Select-Object -Unique)

Exemplo C — Remover a restrição (rollback)

Set-UnifiedGroup -Identity "anuncios@contoso.onmicrosoft.com" -AcceptMessagesOnlyFromSendersOrMembers $null

Perguntas frequentes

Isso altera permissões de leitura do grupo? Não. A configuração controla apenas quem pode enviar e‑mails para o endereço do grupo.

O que acontece com a mensagem bloqueada? O remetente recebe uma notificação de não entrega (NDR) informando que não tem permissão para enviar ao destinatário.

Funciona com aliases do grupo? Sim, mas recomenda-se sempre apontar -Identity para o Primary SMTP do grupo para evitar ambiguidades.

Quero permitir um parceiro externo específico. Inclua o e‑mail do parceiro em -AcceptMessagesOnlyFromSendersOrMembers e não habilite -RequireSenderAuthenticationEnabled $true. Assim apenas aquele externo será aceito.

Posso aplicar a dezenas de grupos rápido? Sim. Use o script de automação em massa mostrado acima e gere um CSV de auditoria.

Resumo

Para restringir o envio a um Grupo do Microsoft 365, o método mais direto é usar Set-UnifiedGroup -AcceptMessagesOnlyFromSendersOrMembers. Alimente esse parâmetro com os proprietários do grupo (e eventuais exceções), opcionalmente bloqueie todos os externos com -RequireSenderAuthenticationEnabled $true, valide e registre. Com os exemplos e scripts deste artigo, você padroniza a política em minutos, com controle e rastreabilidade.

Índice