Symptôme
Suite à la mise en place de la supervision SCOM sur une plateforme Exchange 2010 SP2 RU5v2, des erreurs se produisent toutes les 5 minutes sur les serveurs jouant le rôle CAS.
Ces erreurs ont pour source MSExchange Control Panel et correspondent aux ID 4 et 38. Voici le détail de l’erreur 38 (avec en rouge les éléments intéressants) :
Log Name: Application Source: MSExchange Control Panel Date: 15/01/2013 14:40:05 Event ID: 38 Task Category: General Level: Error Keywords: Classic User: N/A Computer: CAS003.domain.local Description: Current User: 'domain.local/IT/Applications/Exchange/Sepcial Accounts/extest_123sd45c00812' Exchange Control Panel detected an invalid canary from request for URL 'https://mail.domain.local/ECP/RulesEditor/InboxRules.svc/GetList'. Canary in cookie: 'eLKJ8_Sgdekahjnd4825nduehfrkqzeuYDF_ujrDBHjfznakDF46fhbzp' mismatch with canary in header/form: ', in URL '. |
Du côté de IIS, une erreur 500 est déclenchée et visible dans les logs W3C.
Explication
Ces erreurs se produisent à intervalles réguliers (toutes les 5 minutes) lorsque le compte de service utilisé par SCOM (extest_<id>) tente d’exécuter la commande PowerShell Test-EcpConnectivity.
Lorsque l’on effectue des recherches sur ces erreurs ont tombe très rapidement sur une fiche support indiquant qu’il s’agit d’un bug Exchange 2010 résolu dans la mise à jour RU3v3 du SP1 d’Exchange 2010.
Unnecessary events are logged in the Application log when you run the "Test-EcpConnectivity" cmdlet in an Exchange Server 2010 environment
http://support.microsoft.com/kb/2494389/en-us
Néanmoins dans notre cas, l’environnement est déjà mis à jour en version SP2 RU5v2 ce qui rend cette solution caduque.
Après investigation il s’avère que la commande Test-EcpConnectivity ne supporte pas les URL possédant des majuscules.
La solution au problème consiste à modifier les URL internes et externes du service Web ECP (Exchange Control Panel) de manière à remplacer le /ECP par un /ecp.
Ce problème est donc totalement indépendant de la supervision SCOM qui est dans ce cas un simple révélateur du problème (car SCOM exécute régulièrement la cmdlet Test-EcpConnectivity).
Résolution
Dès la correction des URL (via la cmdlet Set-EcpVirtualDirectory), les erreurs ne se produisent plus et il est possible d’exécuter sans erreur la commande Test-EcpConnectivity.
Remarque : La correction prend effet immédiatement. Un petit délai peut être nécessaire dans certains environnements, le temps que la réplication Active Directory ait lieu. Il n’est pas nécessaire de redémarrer IIS.
Cette solution a déjà été testée avec succès sur plusieurs environnement Exchange 2010 SP2.
La problématique
Suite au déploiement d'Exchange 2010 Release Candidate dans un environnement mixte Exchange 2007 / 2010, l'erreur suivante se produit dans la console Exchange Management Console (EMC) d'Exchange 2010 lorsque l'on souhaite configurer les paramètres du serveur d'accès client (CAS) :
Voici l'intitulé exact de l'erreur :
An IIS directory couldn't be created. The error message is Access is denied. HResult = -2147024891 It was running the command 'Get-OwaVirtualDirectory'.
Une fois que l'on clique sur le bouton OK, il est impossible de configurer les services Web Exchange (OWA, ECP, OAB...) car les répertoires virtuels n'apparaissent pas dans la console EMC (cf. capture d'écran ci-dessous).
Le retour de la commande PowerShell Get-OwaVirtualDirectory renvoi également une erreur (cf. capture d'écran ci-dessous).
La résolution
Pour résoudre ce problème, il ne faut pas travailler au niveau du serveur Exchange 2010 ou bien au niveau des options IIS comme on pourrait le penser à première vue mais plutôt aller vérifier le contenu du groupe administrateurs local (ou "Administrators" sur une version US) du serveur Exchange 2007 !
Si le groupe "Exchange Security Groups" n'est pas présent dans le groupe administrateurs local du serveur Exchange 2007 il sufit de l'y rajouter pour résoudre le problème !
Remarque : La modification est quasiment immédiate pour la commande PowerShell Get-OwaVirtualDirectory. Si vous utilisez la console EMC, il peut être nécessaire de la relancer afin de pouvoir lister et configurer les répertoires virtuels.
A titre informatif, le groupe Exchange Trusted Subsystem est créé lors de la phase de préparation de l'annuaire opérée lors du déploiement du SP2 d'Exchange 2007 (pour rappel le déploiement du SP2 d'Exchange 2007 est obligatoire avant de déployer Exchange 2010 dans un environnement Exchange 2007 pré-existant).
Remarque : En principe ce groupe est automatiquement placé dans le groupe "Administrateurs" local de tous les serveurs Exchange 2007 par l'installeur du SP2.
Ce groupe est un groupe universel de sécurité situé dans l'unité d'organisation Microsoft Exchange Security Groups. Il est utilisé par de nombreuses commandes PowerShell ayant besoin d'accéder à des informations situées sur des serveurs distants... comme récupérer la liste des répertoires virtuels (opération notamment effectuée par la commande Get-OwaVirtuelDirectory).
Si vous souhaitez obtenir plus d'informations, n'hésitez pas à consulter ce billet sur le Blog des développeurs Exchange :
http://msexchangeteam.com/archive/2009/08/28/452209.aspx