Dans Exchange Server 2016, le paramètre régional EN‑150 peut faire échouer Search‑AdminAuditLog et provoquer des quarantaines de boîtes. Ce guide fournit un plan opérationnel pour restaurer l’audit et éliminer les quarantaines, sans dégrader l’expérience utilisateur.
Problème posé
Dans un environnement Exchange Server 2016 (4 serveurs, > 5 000 boîtes), la recherche d’audit d’administration (Search‑AdminAuditLog) ne renvoie aucun résultat dès qu’on ajoute des paramètres. Le contournement consistant à basculer les paramètres régionaux en EN‑150 (“English Europe”) rétablit l’audit mais déclenche quasi immédiatement la quarantaine automatique de nombreuses boîtes partageant cette culture. La suppression d’EN‑150 stoppe la quarantaine mais brise à nouveau l’audit. L’enjeu est de concilier un audit fonctionnel avec zéro boîte en quarantaine.
Résumé exécutif (Exchange 2016 / EN‑150 / Audit)
- Origine : bug de parsing lié aux cultures « non standard » (
en‑150) qui perturbeSearch‑AdminAuditLog. - Effet secondaire : le Store Integrity Checker peut interpréter certaines boîtes EN‑150 comme incohérentes et les placer en quarantaine.
- Remédiation pérenne : déployer CU23 + SU ≥ mars 2022, remplacer EN‑150 par une culture supportée (en‑GB ou en‑US), réaligner la culture système des serveurs, lever proprement les quarantaines, et basculer la collecte vers
New‑AdminAuditLogSearchou le Centre de conformité.
Analyse technique rapide
| Volet | Explications clés |
|---|---|
| Échec d’audit | Bug connu : certaines cultures « non standard » empêchent Exchange de parser la requête et d’interroger l’AdminAuditLog. |
| Quarantaine | Le Store Integrity Checker place en quarantaine les boîtes dont la culture (MailboxCulture / RegionalConfiguration) n’est pas reconnue. EN‑150 (“English Europe”) peut être interprété comme anomalie. |
| Boucle | Après dé‑quarantaine, tant que la culture reste invalide ou non supportée, la boîte risque la re‑quarantaine au prochain contrôle d’intégrité. |
Pourquoi EN‑150 pose problème dans Exchange 2016 ?
EN‑150 est une étiquette BCP 47 historique (« English — Europe ») : elle existe, mais n’est pas prise en charge uniformément par toutes les couches d’Exchange 2016. Certaines combinaisons de culture/date/heure entraînent des divergences de formatage qui perturbent la construction et l’évaluation des requêtes d’audit. À l’inverse, des cultures supportées nativement (par ex. en‑GB ou en‑US) ne déclenchent ni l’échec d’audit ni la mise en quarantaine.
Plan d’action recommandé
- Mettre à niveau vers CU23 et au minimum le Security Update (SU) de mars 2022 sur tous les rôles Exchange (Mailbox, Edge).
- Inventorier les boîtes et remplacer EN‑150 par
en‑GBouen‑US(avec formats date/heure homogènes). - Aligner la culture système des serveurs Exchange et redémarrer proprement pour que le service Information Store prenne les nouveaux paramètres.
- Lever les quarantaines et purger les marqueurs de quarantaine.
- Pérenniser l’audit via
New‑AdminAuditLogSearchou le Centre de conformité, et surveiller préventivement la santé du Store.
Étapes détaillées
Vérifier le niveau de mise à jour d’Exchange 2016
Depuis la Exchange Management Shell, contrôlez la version effective :
Get-ExchangeServer | ft Name, Edition, AdminDisplayVersion
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\Setup' `
| fl *Build*, *Version*
La correction durable du parsing des cultures est incluse à partir de CU23 + SU de mars 2022 (ou ultérieure). Assurez‑vous que tous les serveurs d’un même site sont homogènes avant de poursuivre.
Inventorier les boîtes affectées par EN‑150
Liste des boîtes EN‑150 (avec export CSV pour audit) :
$affected = Get-Mailbox -ResultSize Unlimited |
Where-Object { $_.MailboxCulture -eq 'en-150' -or
(Get-MailboxRegionalConfiguration -Identity $_.Identity).Language -eq 'en-150' }
$affected | Select-Object DisplayName,PrimarySmtpAddress,OrganizationalUnit,MailboxCulture |
Export-Csv '.\mailboxes_en150.csv' -NoTypeInformation -Encoding UTF8
$affected | ft DisplayName, PrimarySmtpAddress, MailboxCulture
Remplacer EN‑150 par une culture prise en charge
Pour un environnement « euro », en‑GB apporte une convention jj/MM/aaaa robuste. Exemple de correction en masse (avec dry‑run) :
# DRY-RUN : vérifier les modifications sans appliquer
$affected | ForEach-Object {
"Would set {0} to en-GB" -f $_.PrimarySmtpAddress
}
# Application : culture, formats date/heure, fuseau
$affected | Set-MailboxRegionalConfiguration ` -Language en-GB -Locale en-GB -DateFormat 'dd/MM/yyyy'`
-TimeFormat 'HH:mm' -TimeZone 'W. Europe Standard Time'
Variante en‑US si nécessaire :
Get-Mailbox -ResultSize Unlimited |
? { $_.MailboxCulture -eq 'en-150' } |
Set-MailboxRegionalConfiguration -Language en-US -Locale en-US `
-DateFormat 'MM/dd/yyyy' -TimeFormat 'hh:mm tt' -TimeZone 'Pacific Standard Time'
Bonnes pratiques :
- Inclure les boîtes partagées, de ressources et d’arbitration dans l’inventaire.
- Uniformiser les formats date/heure pour éviter des divergences d’affichage entre Outlook et OWA.
- Documenter la culture cible par unité d’organisation (OU) pour faciliter l’onboarding futur.
Aligner la culture des serveurs Exchange
Un socle serveur cohérent réduit les faux positifs d’intégrité.
# Exécuter en PowerShell élevé sur chaque serveur Exchange
Set-WinSystemLocale en-US
Set-WinUserLanguageList en-US -Force
Set-Culture en-US
# Redémarrage nécessaire pour MSExchangeIS
À l’issue du redémarrage, validez que MSExchangeIS démarre sans anomalie et que les journaux Application ne remontent plus d’erreurs de régionalisation.
Sortir les boîtes de la quarantaine store
Détecter les boîtes en quarantaine :
# Tous les DBs
Get-MailboxDatabase | ForEach-Object {
Get-MailboxStatistics -Database $_.Name |
Where-Object { $_.IsQuarantined -eq $true } |
Select-Object DisplayName,MailboxGuid,Database,LastLogonTime
}
Lever la quarantaine une fois la culture corrigée :
# Au cas par cas
Disable-MailboxQuarantine -Identity "Nom Affiché"
# Vérification
Get-MailboxStatistics -Identity "Nom Affiché" | fl IsQuarantined, Quarantine*
Si la boîte rebascule en quarantaine : purgez le marqueur résiduel puis recyclez MSExchangeIS en fenêtre de maintenance contrôlée. Évitez de redémarrer en heures ouvrées.
Assurer la collecte d’audit sans dépendre de Search‑AdminAuditLog
La cmdlet New‑AdminAuditLogSearch offre une collecte asynchrone et fiable et envoie un rapport par mail. Exemple :
New-AdminAuditLogSearch `
-Name "Audit_SetMailbox_Weekly" `
-Cmdlets Set-Mailbox `
-StartDate "2024-12-01" -EndDate "2024-12-10" `
-StatusMailRecipients admin@contoso.com
Complétez par une supervision via le Centre de conformité (Purview) pour disposer d’un journal d’audit consolidé et requêtable.
Contrôles post‑remédiation
- Audit :
Search‑AdminAuditLogrenvoie des résultats dès qu’un filtre est ajouté (cmdlet, paramètres, dates). - Quarantaine :
IsQuarantined=$falsepour toutes les boîtes précédemment touchées. - Culture :
Get-MailboxRegionalConfiguration=en‑GBouen‑US, formats conformes, fuseau correct. - Serveurs : journaux Application dépourvus d’erreurs de régionalisation/parsing sur MSExchangeIS, MSExchange ADAccess, MSExchange Management.
Script d’automatisation « détecter‑corriger‑valider »
param(
[ValidateSet('en-GB','en-US')] [string]$TargetCulture = 'en-GB',
[string]$DateFormat = 'dd/MM/yyyy',
[string]$TimeFormat = 'HH:mm',
[string]$TimeZone = 'W. Europe Standard Time'
)
$report = @()
$mbx = Get-Mailbox -ResultSize Unlimited |
Where-Object {
$*.RecipientTypeDetails -in @('UserMailbox','SharedMailbox','RoomMailbox','EquipmentMailbox') -and
($*.MailboxCulture -eq 'en-150' -or
(Get-MailboxRegionalConfiguration -Identity $_.Identity).Language -eq 'en-150')
}
foreach ($m in $mbx) {
$before = Get-MailboxRegionalConfiguration -Identity $m.Identity
try {
Set-MailboxRegionalConfiguration -Identity $m.Identity ` -Language $TargetCulture -Locale $TargetCulture`
-DateFormat $DateFormat -TimeFormat $TimeFormat -TimeZone $TimeZone -ErrorAction Stop
```
$after = Get-MailboxRegionalConfiguration -Identity $m.Identity
$report += [pscustomobject]@{
Mailbox = $m.PrimarySmtpAddress
Status = 'Updated'
From = $before.Language
To = $after.Language
}
```
}
catch {
$report += [pscustomobject]@{
Mailbox = $m.PrimarySmtpAddress
Status = 'Error: ' + $_.Exception.Message
From = $before.Language
To = $TargetCulture
}
}
}
$report | Tee-Object -FilePath ".\en150_remediation_$(Get-Date -f yyyyMMdd_HHmm).csv" | ft -AutoSize
Prévention et surveillance continue
- Onboarding : geler la culture cible par défaut (par ex.
en‑GB) dans les scripts de création de comptes. - Garde‑fous : refuser
en‑150en entrée via vérification .NET ([cultureinfo]::GetCultureInfo()) dans vos workflows. - Sentinelle de quarantaine : job planifié quotidien :
Get-MailboxDatabase | % { Get-MailboxStatistics -Database $_.Name | ? IsQuarantined | Select DisplayName, Database, MailboxGuid } | Export-Csv .\quarantine_watch.csv -NoTypeInformation - Santé Store : surveiller la composante « Store » :
Get-ServerHealth -Identity <ServerName> | ? { $_.Component -eq 'Store' } | ft Name, State - Audit résilient : planifier une recherche hebdomadaire
New‑AdminAuditLogSearchpar famille de cmdlets sensibles (Set‑Mailbox,Add‑ADPermission, etc.).
Tableau d’aide à la décision
| Situation | Action | Contrôle | Impact / Risques |
|---|---|---|---|
| Audit vide dès qu’un filtre est ajouté | Vérifier version (≥ CU23 + SU 03/2022), éliminer EN‑150 | Search‑AdminAuditLog retourne des entrées | Faible ; opération en ligne |
| Boîtes en quarantaine | Corriger culture, Disable-MailboxQuarantine | IsQuarantined = $false | Risque de re‑quarantaine si culture non corrigée |
| Parc hétérogène | Aligner culture serveur (en‑US conseillé) | Journaux Application propres | Reboot requis (planifier) |
| Besoin d’audit fiable | Passer à New‑AdminAuditLogSearch / Purview | Rapports réguliers par email | Néant |
FAQ (retours d’expérience)
Changer la culture va‑t‑il perturber les utilisateurs ?
Non pour Outlook ; l’affichage s’aligne sur le nouveau format date/heure et la langue de l’interface reste conditionnée par la configuration Office. Sur OWA, une reconnexion peut être nécessaire pour refléter la mise à jour.
Quelle culture choisir entre en‑GB et en‑US ?
Prenez celle qui correspond à votre conformité et à vos conventions de reporting. en‑GB est souvent préférable en Europe (format jj/MM/aaaa).
Dois‑je corriger aussi les boîtes systèmes ?
Oui, incluez Shared, Room, Equipment et les boîtes d’arbitration. La cohérence globale abaisse le risque de quarantaines « diffuses ».
Et si je ne peux pas redémarrer les serveurs rapidement ?
Priorisez la correction côté boîtes aux lettres (Set‑MailboxRegionalConfiguration) et la bascule de collecte via New‑AdminAuditLogSearch. Programmez ensuite l’alignement serveur lors d’une fenêtre approuvée.
Pourquoi ne pas rester sur EN‑150 si l’audit remarche ?
Parce que vous déclenchez un autre problème (quarantaine). La stratégie gagnante est d’éliminer EN‑150 et de disposer d’un Exchange à jour.
Check‑list « Change Management »
- ✅ Sauvegarde récente (bases et configuration) vérifiée.
- ✅ Homologation CU/SU en pré‑prod (tests d’audit, de flux mail, d’OWA).
- ✅ Export des boîtes
EN‑150et plan de correction validé. - ✅ Fenêtre de maintenance approuvée pour le redémarrage des serveurs.
- ✅ Scénarios de retour arrière (restauration culture précédente si besoin).
- ✅ Supervision post‑changement (audit, quarantaine, journaux).
Pièges courants et comment les éviter
- Corriger la culture sans uniformiser les formats : assurez des formats date/heure cohérents, sinon de nouvelles divergences d’affichage peuvent apparaître.
- Lever la quarantaine avant correction : la boîte risque d’y retourner automatiquement. Modifiez d’abord la culture, puis dé‑quarantinez.
- Oublier des boîtes « techniques » : n’excluez pas les boîtes partagées ou de ressources de l’inventaire.
- Serveurs hétérogènes : mélange de cultures côté OS = comportements imprévisibles. Alignez tout le parc.
Solution donnée dans l’échange d’origine
La seule réponse initiale a été de rediriger vers le forum spécialisé Microsoft Q&A pour un support Exchange dédié. Le présent article synthétise une solution opérable sans dépendre d’un renvoi externe.
Informations complémentaires utiles
- ▶️
EN‑150est une balise BCP 47 valide mais historique ; Exchange 2016 n’en reconnait pas toutes les variantes, d’où le bug de parsing. - ▶️ La fin du support étendu d’Exchange 2016 intervient en octobre 2025. Anticipez une montée de version (Exchange 2019 ou M365) pour sécuriser durablement audit et conformité.
- ▶️ Conserver un paramètre régional homogène (serveur ↔ boîte) réduit considérablement les faux positifs de corruption/quarantaine.
Annexes : commandes utiles
Validation rapide côté audit
# Attendu : des entrées s'affichent
Search-AdminAuditLog -Cmdlets Set-Mailbox -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date)
# Alternative résiliente
New-AdminAuditLogSearch -Name 'Audit_Weekly' -Cmdlets Set-Mailbox ` -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date)`
-StatusMailRecipients [admin@contoso.com](mailto:admin@contoso.com)
Inventaire complet des cultures
Get-Mailbox -ResultSize Unlimited |
Select-Object DisplayName, PrimarySmtpAddress,
@{n='Language';e={(Get-MailboxRegionalConfiguration -Identity $_.Identity).Language}},
@{n='DateFormat';e={(Get-MailboxRegionalConfiguration -Identity $_.Identity).DateFormat}},
@{n='TimeFormat';e={(Get-MailboxRegionalConfiguration -Identity $_.Identity).TimeFormat}},
@{n='TimeZone';e={(Get-MailboxRegionalConfiguration -Identity $_.Identity).TimeZone}} |
Export-Csv .\mailbox_cultures_full.csv -NoTypeInformation
Suivi santé Store
Get-ServerHealth -Identity <ServerName> | ? Component -eq 'Store' | ft Name,State,AlertValue
Conclusion
Le duo Exchange 2016 + EN‑150 peut piéger l’audit d’administration et pousser le Store à quarantainer des boîtes. La combinaison gagnante est claire : CU23 + SU ≥ 03/2022 sur tout le parc, remplacement d’EN‑150 par une culture officiellement supportée, alignement des serveurs, dé‑quarantaine maîtrisée et collecte d’audit via des mécanismes robustes. En procédant ainsi, vous restaurez simultanément la conformité et la stabilité opérationnelle, tout en préparant sereinement la transition vers une plateforme plus récente.

