SEFAUtil, gestion des délégations hazardeuse

SEFAUtil, gestion des délégations hazardeuse

5 février 2016 Non Par Stefan Plizga

SEFAUtil, outil du Resource Kit bien connu des administrateurs Lync Server et Skype for Business Server, rend bien des services pour gérer le paramétrage de délégation et de renvoi d’appel pour les utilisateurs activés pour Enterprise Voice.

J’ai rencontré un cas intéressant où la suppression d’un délégué ne fonctionnait pas, en regardant un peu j’ai fini par trouver pourquoi…

Pour commencer, j’exécute SEFAUtil de la manière suivante mais l’assistant admin@domain.com reste un utilisateur délégué :

SEFAUtil Boss@domain.com /server:pool.domain.com /removedelegate:admin@domain.com

Après plusieurs essais, toujours pareil… J’en viens à me demander si SEFAUtil fonctionne, je décide donc de regarder la configuration de l’utilisateur Boss avec DBAnalyze:

DBAnalyze.exe /report:user /user:Boss@domain.com /sqlserver:.\RTCLOCAL

Et je vois bien mon délégué toujours présent :

Delegates: 1
Delegate : Admin@domain.com

J’en viens à me demander si l’outil SEFAUtil fonctionne bien, et comme c’est un exécutable .NET, je peux utiliser Reflector pour lire le code source et creuser un peu, ainsi je tombe sur ça:

Code qui supprime un délégué si l’URI est présente dans la liste des délégués. Et pourtant ça ne fonctionne pas. Ma question est alors: est-ce que la fonction Contains de la propriété delegates est sensible à la casse (case-sensitive en Anglais)? On aurait tendance à dire que oui, mais un test vaut mieux qu’une hypothèse, donc vérification via un petit programme C# : 

Et là surprise, le Contains ne répond pas la même chose si je mets tout en minuscule ou pas ! 

Donc, pour faire fonctionner SEFAUtil et removedelegate, je dois spécifier Admin@domain.com et non pas admin@domain.com puisque l’adresse SIP enregistrée dans les délégué est avec un A majuscule, et là ça marche parfaitement !

Ca vous servira peut-être un jour…

— Stefan