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.
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
Tarefa | Comando / Ação | Observações |
---|---|---|
Confirmar proprietários do grupo | Get-UnifiedGroupLinks -Identity "group@dominio.com" -LinkType Owners | Use o resultado para montar a lista de remetentes permitidos. |
Permitir somente os proprietários enviarem | Set-UnifiedGroup -Identity "group@dominio.com" -AcceptMessagesOnlyFromSendersOrMembers userA@...,userB@... | Liste apenas os proprietários (e eventuais exceções). |
Adicionar 1 membro específico como exceção | Acrescente o e‑mail do membro ao parâmetro acima | Ex.: proprietários + membro@dominio.com . |
Bloquear remetentes externos (não autenticados) | Set-UnifiedGroup -Identity "group@dominio.com" -RequireSenderAuthenticationEnabled $true | Use em conjunto com a lista de permitidos. Se precisar liberar um externo específico, mantenha $false e confie na lista de permitidos. |
Remover restrições | Set-UnifiedGroup -Identity "group@dominio.com" -AcceptMessagesOnlyFromSendersOrMembers $null | Restaura o comportamento padrão (aceitar de membros e, conforme política, de externos). |
Conferir a configuração atual | Get-UnifiedGroup "group@dominio.com" | fl DisplayName,PrimarySmtpAddress,AcceptMessagesOnlyFromSendersOrMembers,RequireSenderAuthenticationEnabled | Mostra 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
- Envie um e‑mail de uma conta permitida → a mensagem deve chegar ao grupo.
- Envie de uma conta não permitida → o remetente receberá um NDR (falha de entrega).
- 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
Sintoma | Causa provável | Correção sugerida |
---|---|---|
Erro ao conectar no Exchange Online | MFA exigido, sessão expirada ou módulo ausente | Atualize o módulo (Install-Module/Update-Module ExchangeOnlineManagement ), use Connect-ExchangeOnline e autentique com a conta de administrador. |
Owner não consegue enviar | Proprietário não está na lista AcceptMessagesOnlyFromSendersOrMembers | Reaplique a receita que coleta os proprietários atuais; valide com Get-UnifiedGroupLinks -LinkType Owners . |
Não permitidos ainda conseguem enviar | Endereço alternativo/alias foi permitido sem querer; regra de transporte interferindo | Liste explicitamente apenas e‑mails desejados; audite regras de transporte que possam redirecionar ou alterar remetente. |
Externo conseguiu enviar | -RequireSenderAuthenticationEnabled está $false | Se 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ça | Lista vazia (sem proprietários) aplicada por engano | Defina 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.