PI Services

Le blog des collaborateurs de PI Services

Exchange 2003 - Obtenir des statistiques ActiveSync à l’aide des cmdlets PowerShell d’Exchange 2010

Contexte et problématique

Exchange Server 2007 et Exchange 2010 intègrent des commandes PowerShell permettant d’obtenir rapidement des statistiques d’utilisation autour d’ActiveSync.

Ca n’est malheureusement pas le cas d’Exchange Server 2003 qui n’apporte que peu d’outils pour répondre à ce besoin (l’outil MobileAdmin permet de visualiser les périphériques ActiveSync associés à un utilisateur mais il n’est pas conçu pour effectuer des extractions en masse).

Avec Exchange 2007 / 2010, les commandes suivantes sont disponibles :

  • Get-ActiveSyncDevice
  • Get-ActiveSyncDeviceStatistics
  • Export-ActiveSyncLog

Les deux premières commandes récupèrent de manière dynamique les informations sur les partenariats ActiveSync à partir de l’annuaire ActiveDirectory alors que la commande Export-ActiveSyncLog récupère des résultats sur les accès en analysant les logs IIS.

Remarque : La suite de billet est axée sur l’usage de la commande Export-ActiveSyncLog. Pour obtenir plus d’informations sur l’usage de la commande Get-ActiveSyncDeviceStatistics, vous pouvez consulter les deux liens suivants :

Méthode proposée

Même si la commande Export-ActiveSyncLog intégrée à Exchange Server 2010 a été conçue pour fonctionner avec des logs IIS version 7.0 (Windows Server 2008 SP2) et version 7.5 (Windows Server 2008 R2), celle-ci fonctionne également avec les logs de IIS 6.0 (Windows Server 2003).

En effet, par défaut le format de log utilisé est le format W3C qui est un format standard et identiques entre IIS 6.0 et 7.0 / 7.5 (à une colonne près !).

L’avantage de cette méthode est qu’elle ne nécessite pas le déploiement de serveurs Exchange 2010 sur l’environnement de production pour fonctionner !

En effet il est tout à fait possible d’extraire les fichiers de logs présents sur les serveurs Exchange 2003 de production pour aller ensuite les analyser avec la commande PowerShell sur un serveur Exchange 2010 de test / maquettage ou bien sur un environnement de pré-production.

Sur un environnement comportant des serveurs frontaux et dorsaux la méthodologie à suivre est la suivante :

1-) Récupération de l’ensemble des fichiers de logs IIS présent dans les répertoires “C:\Windows\System32\LogFiles” de chacun des serveurs frontaux
2-) Copie de ces fichiers dans un partage réseau ou sur un clé USB
3-) Analyse de ces fichiers avec la commande Export-ActiveSyncLog sur un serveur Exchange 2010 de test

Fonctionnement de la commande Export-ActiveSyncLog

La commande Export-ActiveSyncLog prend en entrée un ou plusieurs fichiers de logs et génère automatiquement un ensemble de fichiers CSV contenant des statistiques sur les utilisateurs connectés à ActiveSync, le type de Pocket PC, le volume de connexion sur chaque tranche horaire de la semaine, etc.

Voici la liste des fichiers CSV générés en sortie par la commande :

image

Les deux tableaux ci-dessous sont des exemples de fichiers CSV générés sur un environnement de maquette à partir de logs IIS Exchange 2003 :

image

Dans le CSV « Users », nous obtenons la liste des utilisateurs ayant utilisé un ou plusieurs périphériques ActiveSync ainsi que le type de périphérique et le nombre de connexions reçues.

image

Dans le CSV « UserAgent », nous obtenons des détails sur les versions de téléphones utilisées (iPhone3C1 par exemple) ainsi que le nombre d’unités référencé pour chaque version.

Afin d’analyser en une seule fois l’ensemble des logs présent dans un répertoire, une commande proche de celle-ci doit être saisie :

Dir C:\TEMP\PROD\*.log | Export-ActiveSyncLog –OutputPath C:\TEMP\CSV –StartDate:”2011/05/01” –EndDate:”2011/05/31

Les paramètres “StartDate” et “EndDate” permettent de limiter les résultats sur une période de temps données.

Cela est très pratique car l’objectif est ici d’obtenir des statistiques “terrain” pour savoir quels types de périphériques sont actuellement en usage dans la société. Dans la majorité des cas la génération de statistiques sur une période de 15 jours à 2 mois sera largement suffisante (on peut en effet considérer qu’un périphérique disposant d’un partenariat ActiveSync et qui ne s’est pas connecté depuis plus de 2 mois n’est plus en cours d’utilisation).

Exchange 2007 – Attribut “Recipient Type Details” après une migration depuis Exchange 2003 vers Exchange 2007

Après une migration de boites aux lettres depuis une organisation Exchange 2003 vers une organisation Exchange 2007, il peut arriver que l’attribut “Recipient Type Details” ne soit pas défini en tant que “User Mailbox

Voici différent cas rencontrés :

Legacy Mailbox

Ceci est typiquement le type de boite aux lettres créé avec les outils Exchange 2003. Ce type de boite aux lettres fonctionne sous Exchange 2007 mais afin d’éviter la perte de certaines fonctionnalités d'Exchange 2007, il est préférable de la convertir.

Pour cela, une simple commande Powershell suffit :

Set-Mailbox –Identity “UserAlias” –ApplyMandatoryProperties

 

Linked Mailbox

Ceci indique que la boite aux lettre disposait d’un compte externe associé (autre que le compte SELF) avant la migration.

Pour résoudre le problème, il faut modifier les attributs de l’utilisateur en question (avec ADSIEdit) et modifier la valeur de l’attribut msExchRecipientTypeDetails de la valeur 2 à la valeur 1.

http://technet.microsoft.com/en-us/library/cc164371.aspx

Shared Mailbox

Ceci indique que le compte SELF est configuré en tant que compte externe associé sur la boite aux lettres.

Après la migration de la boite aux lettres, supprimer l’association du compte SELF en tant que compte externe associé. Ceci modifiera l’attribut msExchMasterAccountSid et lui donnera la valeur <Not Set>. Ensuite, lancer la commande Powershell suivante :

Set-Mailbox xxx –Type:Regular

 

http://technet.microsoft.com/en-us/library/bb201749.aspx