Dans le système de messagerie Microsoft Exchange (depuis Exchange 2007 SP1 jusqu’à aujourd’hui), il est possible de lancer des commandes Powershell permettant d’obtenir des statistiques sur les synchronisations avec des appareils mobiles (Windows Mobiles, Iphone, Etc. …), avec la commande “Get-ActiveSyncDeviceStatistics”.
Aujourd’hui, la liste de téléphones, PDAs Phone, Smartphones, Tablettes graphiques, et autres permettant de synchroniser sa ou ses boite(s) aux lettres ne cesse d’augmenter.
Une des particularités des appareils concerne les différents modèles et le fameux IOS avec ses mises à jour successives. Du coup, lors de l’exécution de cette fameuse commande, les résultats peuvent apparaitre avec une liste non exhaustive d’appareils alors que l’utilisateur final n’en possède qu’un seul, le tout lié à ses différentes mises à jour successives.
Dans cet exemple, on peut voir que cet utilisateur possède :
- 1 IPhone 3GS
- 3 IPhones de base, donc version 2
- 1 HTC
Alors qu’il utilise un IPhone 3GS…..
Il est alors possible coder un script Powershell avec un tableau de comparaison prenant en compte les modèles d’appareils ainsi que les différentes versions de Firmwares.
Exemple :
Dans ce script, la commande “$devices = Get-ActiveSyncDeviceStatistics -Mailbox $mailbox.samaccountname | Select-Object DeviceType,DevicePolicyApplied, LastSuccessSync,DeviceUserAgent” va être complémentée par le tableau suivant :
switch ($device.DeviceUserAgent)
{
"Apple-iPhone/701.341" {$DeviceUserAgent = "iPhone"}
"Apple-iPhone/703.144" {$DeviceUserAgent = "iPhone"}
"Apple-iPad/702.367" {$DeviceUserAgent = "iPad"}
"Apple-iPod2C1/801.293" {$DeviceUserAgent = "iPod"}
"Apple-iPod3C1/801.293" {$DeviceUserAgent = "iPod"}
"Apple-iPhone1C2/801.293" {$DeviceUserAgent = "iPhone 3G"}
"Apple-iPhone2C1/801.293" {$DeviceUserAgent = "iPhone 3GS"}
"Apple-iPhone3C1/801.293" {$DeviceUserAgent = "iPhone 4"}
"Apple-iPhone/508.11" {$DeviceUserAgent = "iPhone"}
"Apple-iPhone/701.400" {$DeviceUserAgent = "iPhone"}
"Apple-iPhone/704.11" {$DeviceUserAgent = "iPhone"}
"Apple-iPhone/705.18" {$DeviceUserAgent = "iPhone"}
"Apple-iPod2C1/801.306" {$DeviceUserAgent = "iPod"}
"Apple-iPod3C1/801.306" {$DeviceUserAgent = "iPod"}
"Apple-iPhone1C2/801.306" {$DeviceUserAgent = "iPhone 3G"}
"Apple-iPhone2C1/801.306" {$DeviceUserAgent = "iPhone 3GS"}
"Apple-iPhone2C1/801.400" {$DeviceUserAgent = "iPhone 3GS"}
"Apple-iPhone3C1/801.306" {$DeviceUserAgent = "iPhone 4"}
default {$DeviceUserAgent = $device.DeviceUserAgent}
}
où les différents modèles sont accompagnés des différentes versions d’IOS. En parallèle, ce tableau sert aussi d’extracteur de modèle en fonction des différentes versions d’agent qui ne sont pas vraiment lisibles. Par contre, ce tableau demandera d’être complémenté au fil de l’eau selon les différentes évolutions publiées par Apple.
De même, un IPhone “Jailbreaké” (la signification littérale vient de l'anglais et veut dire "Sortir de Prison", cela consiste simplement à modifier le système de l'iPhone afin de le rendre plus accessible et d'en retirer certaines limitations...) vous remontera de fausse informations… ici un IPhone 3G “ouvert” interprété comme un IPhone2…
Du coup, on peut rapidement s’y perdre !!!
Dans le script en exemple, des restrictions dans les dates de synchronisation ont été implémentées afin de ne prendre en compte que le dernier mois ou les 30 derniers jours. Ce qui permettra de filtrer les retours et d’être un peu plus pertinent sur ces statistiques !
N'hésitez pas à laisser un commentaire si ce tips vous a été utile ou bien si vous avez des éléments à ajouter !…