Problématique
Lors de l’installation d’un CU sur un serveur Exchange 2013, l’assistant d’installation vous demande de redémarrer en boucle sans jamais valider le redémarrage.

Solution
Si après un redémarrage le message d’erreur apparaît toujours, vous pouvez aller modifier la clé de registre suivante :
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
Supprimer la valeur de cette clé et relancer l’assistant d’installation.

Problématique
Sur un serveur Exchange 2013, la connexion PowerShell ne s’effectue pas et le portail d’administration affiche une page blanche.


Dans le journal d’événements système un grand nombre d’erreur HttpEvent 15021 est présent.

Ces erreurs peuvent intervenir après le changement d’un certificat sur le serveur Exchange.
Résolution
Le problème vient de la liaison du certificat qui est incorrect sur le port 444. Il faut donc la supprimer et la recréer.
Pour cela, afficher l’ensemble des liaisons SSL avec la commande :
netsh http show sslcert

Récupérer les valeurs du hash et l’application ID de la liaison sur le port 443.
Supprimer la liaison du port 444 avec la commande :
netsh http delete sslcert ipport=0.0.0.0:444

Et recréer une liaison en utilisant le hash et l’application ID du port 443 avec la commande :
netsh http add sslcert ipport=0.0.0.0:444 certhash=XXXXXXX appid=”{XXXXXXXX}”

Dans le journal d’événements deux avertissements HttpEvent 15300 et 15301 apparaissent.

Une fois la modification effectuée, la connexion PowerShell et le portail d'administration sont de nouveau accessibles.
Problème:
Les clients Outlook n'arrivent plus à accéder à la GAL sur Exchange, et donc les utilisateurs sont dans l'incapacité d'ajouter des salles de réunions ou de rechercher contacts qui ne sont pas dans leur cache Outlook. Le client se fige et le message d'erreur suivant apparait après quelques dizaines de secondes:

Troubleshooting:
- Vérification des journaux d'événements .
- Vérification de la réplication AD et Exchange.
- Régénération de l'OAB et MaJ de la GAL.
- Déplacement de la boite mail contenant l'OAB vers un autre serveur.
- Entrée dans le fichier host pour pointer directement sur le serveur hébergeant l'OAB.
- Test d'accès sur l'URL EWS et l'URL OAB.
- Vérification des logs IIS.
Solution:
Des erreurs 401 étaient retournées depuis le serveur dans les logs IIS. Pour résoudre cette erreur il a fallu redémarrer les services IIS, puis les services "RPC Client Access" et "MS Exchange Throttling", puis de nouveau redémarrer les services IIS.
Problème:
Après une installation d'Exchange avec un chemin d'installation différent de celui par défaut, certains compteurs de performance remontent en erreur dans les journaux d'événements.

Solution:
Reconstruire les compteurs de performance à l'aide du script suivant:
Add-Pssnapin Microsoft.Exchange.Management.PowerShell.Setup
$Fichiers =get-childitem "E:\Exchange Server\Setup\Perf\" *.xml |where-object {!($_.psiscontainer)}
foreach ($fichier in $fichiers) {
Remove-perfcounters -Definitionfilename $file.fullname
}
foreach ($fichier in $fichiers) {
New-perfcounters -Definitionfilename $file.fullname
}
Problème:
Impossible de requêter les membres d'un groupe dynamique Exchange ayant un paramètre de filtrage sur le champ "CountryOrRegion".
L'erreur spécifiée est générique et indique que le filtre OPATH ou LDAP est invalide:
"La chaîne de filtre de prévisualisation du destinataire $VotreFiltre n'est ni un filtre OPath valide ni un filtre LDAP valide. Utilisez le paramètre -RecipientPreviewFilter avec une chaîne de filtre OPath valide ou une chaîne de filtre LDAP valide."
Cause:
Une des raisons possible à ce message d'erreur est que la valeur du champ CountryOrRegion ait été déclarée depuis une console Powershell en français (ou toute langue autre que l'anglais). En effet la console powershell interprète et traduit directement la valeur spécifiée pour l'attribut CountryOrRegion.
Par exemple, si vous spécifiez la valeur "CountryOrRegion -eq Germany" ou "CountryOrRegion -eq DE" et que votre console powershell est en français, la valeur retenue et transmise dans le filtre OPATH sera "CountryOrRegion -eq Allemagne".
Ceci est problématique car les serveurs Exchange installés en anglais seront incapables de traduire cette valeur et vous ne pourrez pas interagir avec cette liste de distribution dynamique pour la partie modification et récupération des membres, la liste en elle-même devrait normalement être fonctionnelle.
Autre raison possible, la valeur n'est pas renseignée correctement.
Les valeurs doivent correspondre à la norme ISO 3166-1 de l'appellation des pays.
https://fr.wikipedia.org/wiki/ISO_3166-1
Solution:
Actuellement, ce problème est considéré comme un fonctionnement standard du produit, pour corriger les listes de distributions dynamiques en erreur, il vous faudra les recréer depuis une console en anglais.
Contexte
Sur un serveur Exchange 2013 (CU8), le service Microsoft Exchange Search Host Controller ne démarre pas et dans le journal d’évènements l’erreur suivante est présente :
Source : Application Error
Evènement : 1000
Nom de l’application défaillante hostcontrollerservice.exe

Solution
Le problème semble provenir d’une corruption des fichiers du dossier <X:>\Program Files\Microsoft\Exchange Server \V15\Bin\Search\Ceres\HostController\Data.
Il existe un script Exchange qui reconstruit ce dossier. Pour ce faire, renommez l’ancien dossier Data en DataOld.

Puis lancez les commandes suivantes dans une console PowerShell Exchange :
- cd X:\Program Files\Microsoft\Exchange Server \V15\Bin\Search\Ceres\Installer
- .\installconfig.ps1 –action –i –dataFolder X:\Program Files\Microsoft\Exchange Server \V15\Bin\Search\Ceres\HostController\Data
La commande renvoi un Successfully configured Search Foundation for Exchange.

Le service a normalement démarré automatiquement.

Contexte
Sur un serveur Exchange 2013 CU6, le service Microsoft Exchange Replication ne démarre pas et dans le journal d’évènements l’erreur suivante est présente :
Source : MSExchangeRepl
Event ID : 4401
Microsoft Exchange Server Locator Service failed to find active server for database <MailboxDatabase GUID>. Error: An Active Manager operation failed. Error: Invalid Active Manager configuration. Error: Active Manager hasn't completed configuration initialization.
De plus la commande Get-MailboxDatabaseCopyStatus renvoie toutes les bases en ServiceDown.

Solution
Ce problème provient d’anciennes entrées corrompues dans le journal d’évènements (dans le crimson channel log plus précisément).
L’installation du CU7 d’Exchange 2013 résout ce problème. Cependant si vous souhaitez résoudre le problème sans passer le CU7, suivez la procédure ci-dessous.
Depuis un invite de commande (en administrateur) lancez la commande suivante :
Wevtutil.exe cl “Microsft-Exchange-MailboxDatabaseFailureItems/Operational”

Le service redémarre automatiquement et les réplications entre les MailboxDatabases reprennent normalement.

Contexte
Depuis un serveur Exchange 2013, l’état du LowLogVolumeSpaceMonitor est en Unhealthy lors de l’exécution de la commande suivante :
Get-ServerHealth – Identity EXCHANGESERVER | ?{$_.AlertValue –eq "Unhealthy" }

Explications
Par défaut dans Exchange 2013 (CU6 ou plus récent), la valeur d'alerte pour le stockage des banques est paramétrée à 180 Go. Ce qui signifie qu'il faut au minimum 180 Go d'espace libre par banque.
Solution
Il est cependant possible de paramétrer cette valeur manuellement. Pour cela, ajouter la clé suivante au registre Windows :
Nom : SpaceMonitorLowSpaceThresholdInMB
Chemin : HKEY_LOCAL_MACHINE\Software\Microsoft\ExchangeServer\v15\Replay\Parameters
Type : DWORD
Valeur : L'espace libre voulu en Mo. Par exemple 50000 pour 50 Go.

Pour que la modification soit prise en compte il est nécessaire de redémarrer le service Microsoft Exchange DAG Management.

Contexte
Lors d’une migration d’Exchange 2007 vers Exchange 2013 CU6 (dernière version en date) certains problèmes sont rencontrés lors de la coexistence entre les deux systèmes.
Problématique
Les problèmes rencontrés sont les suivants :
- Problèmes de cohabitation sur le protocole ActiveSync
- Bascule des bases de données Exchange de façon aléatoire
Ces deux problèmes sont résolus par deux hotfix que Microsoft délivre seulement sur demande au support :
Cependant le passage de ces correctifs peut engendrer deux nouveaux problèmes :
- Impossibilité d’accéder à l’OWA
- Impossibilité d’écrire un mail dans OWA
Solution
Pour résoudre ces problèmes il faut se connecter sur le serveur Exchange puis identifiez les deux dossiers suivants :
- Microsoft\Exchange Server\V15\ClientAccess\Owa\prem\15.0.995.31
- Microsoft\Exchange Server\V15\ClientAccess\Owa\prem\15.0.995.29
Le contenu des dossiers doit être identique. Sauvegardez le contenu du dossier 15.0.995.31 puis copiez les éléments du dossier 15.0.995.29 vers le dossier 15.0.995.31.
N.B : Le CU7 d’Exchange 2013, disponible très prochainement, devrait intégrer les deux correctifs (KB2997847 et KB2997203).
Contexte
Dans un environnement de production avec Exchange, il peut arriver que l’ensemble des boites aux lettres utilisateurs ne soient pas bien réparties sur l’ensemble des bases. Afin d’éviter tout déséquilibre, il convient de rééquilibrer les bases. Mais ce travaille peut s’avérer fastidieux et long suivant votre organisation.
Je vais donc partager ici la solution mise en œuvre chez un client pour corriger cela très simplement.
Solution
Voici comment le script fonctionne pour répartir les BAL sur l’ensemble des bases :
- Récupération de toutes les BAL stockées sur les bases à répartir
- Calcul du nombre moyen de BAL par base
- Classement des bases suivant le nombre de BAL actuel
- Répartition des BAL suivant cette règle : Si le nombre de BAL dans une base est supérieur à la moyenne calculée, alors déplacement des BAL dans une base sous allouée, jusqu’à obtenir l’équilibre dans cette base. Cette règle est appliquée pour chaque base au dessus de la moyenne.
- A la fin du script, un fichier script PowerShell est généré avec les commandes New-MoveRequest qui vont bien.
- Il ne reste plus qu’a lancer ce script pour obtenir un équilibrage parfait.
Script
Le script ci dessous utilise le fichier “Source-DBBalanceScript.txt” qui doit être disponible dans le même dossier que le script. Voici le contenu de ce fichier :
Identity
EXCH-MBX-DAG1-DB01
EXCH-MBX-DAG1-DB02
EXCH-MBX-DAG1-DB03
EXCH-MBX-DAG1-DB04
A vous de mettre dans ce fichier les bases que vous voulez équilibrer. Les bases qui ne sont pas mises dans ce fichier, ne seront pas traités. Idéal si vous avez une ou deux bases de tests qui ne doivent pas être utiliser en production.
Conclusion
Avec ce script, l’ensemble de vos bases sont correctement réparties afin de corriger les dérives.
Attention, ce script ne prend en compte que le nombre de BAL par base Exchange. La volumétrie des BAL n’entre pas en compte dans le calcul de l’équilibrage. Il s’agit là d’un équilibrage sur le nombre de BAL et pas sur le volume.