PI Services

Le blog des collaborateurs de PI Services

Identifier la version du client qui se connecte a une boite mail Exchange 2003

 

Bien que ce sujet puisse sembler dépassé, il peut en réalité encore servir aujourd’hui précisément dans le cadre d’une migration Exchange 2003 vers Exchange 2010 (par exemple pour ne migrer que les utilisateurs disposant d’une version d’Outlook supérieure ou égale à la 2007).

Il n’est pas possible de retrouver cette information directement à l’aide d’un cmdlet Powershell pré-existant, mais une requête WMI (classe Exchange_Logon du namespace root\MicrosoftExchangev2) exécutée via Powershell le permet :

Get-wmiobject -class Exchange_Logon -Namespace ROOT\MicrosoftExchangev2 -ComputerName ServerA -filter "LoggedOnUserAccount != 'NT AUTHORITY\\SYSTEM'" | select-object MailboxDisplayName,ClientVersion

La commande précédente permet donc de lister la version du client utilisée par chaque utilisateur pour se connecter.
On remarque qu’elle est nécessairement ciblée sur un serveur Exchange 2003 spécifique (-ComputerName ServerA).


Cependant, dans le cas où Exchange est configuré en cluster, il faut obligatoirement interroger le noeud actif pour obtenir cette information.
Il peut donc s’avérer utile de retrouver quel est le nœud actif d’un cluster à l’aide d’un script, encore une fois via WMI et Powershell (classe mscluster_nodetoactivegroup du namespace root\mscluster) puisque là non plus, Powershell ne permet pas nativement de retrouver cette information :

Get-WmiObject –ComputerName NomVirtuelduCluster –Namespace\root\mscluster –class mscluster_nodetoactivegroup  | select groupcomponent,partcomponent

image

Afin de ne conserver de ce résultat que la partie qui nous intéresse, à savoir le nom du noeud actif à proprement parler, on utilise la commande suivante :

$activenode = (( Get-WmiObject -ComputerName $myLegacyExchangeCluster -Namespace root\mscluster -Class mscluster_nodetoactivegroup -ErrorAction SilentlyContinue | Where-Object { $_.PartComponent -like "*Exchange Group*" } ).GroupComponent ).Split('"')[1]

Il ne reste alors plus qu’à réintégrer cette valeur à la première commande via le paramètre  –ComputerName $activenode afin d’obtenir un fonctionnement automatisé.

Ajouter un commentaire

Loading