PI Services

Le blog des collaborateurs de PI Services

Exchange2010 – Erreur lors de l’installation du rôle Hub Transport

Symptôme

Lors d’un déploiement d’Exchange Server 2010 SP2 avec RU4v2 (rollup stocké dans le sous-dossier Updates des sources Exchange), j’ai rencontré l’erreur suivante durant l’installation du rôle Hub :

Service “MSExchange Transport” failed to reach status “Running” on this server.

image

Voici le détail de l’erreur dans le journal Application :

Event ID : 1002
Source : MSExchangeSetup
Task Category : Microsoft Exchange Setup
Level : Error
Error :
The following error was generated when "$error.Clear(); if ($RoleStartTransportService) { start-SetupService -ServiceName MSExchangeTransport }" was run: "Service 'MSExchangeTransport' failed to start. Check the event log for possible reasons for the service start failure.".
Service 'MSExchangeTransport' failed to start. Check the event log for possible reasons for the service start failure.

 

Cette erreur à l’installation peut être considéré comme un “classique” d’Exchange 2010 lorsqu’une mauvaise configuration IPv6 est positionnée sur le serveur (cf. ce billet réalisé peu après la sortie d’Exchange 2010 : http://blog.piservices.fr/post/Exchange2010-Erreur-lors-de-linstallation-du-role-de-transport-Hub.aspx).

Néanmoins dans ce cas précis l’erreur n’était pas liée à la configuration IPv6 (interface réseau et clé de registre DisableComponents correctement configurés).

Après investigation l’erreur d’installation s’accompagnait de plusieurs évènements autour du service AD Topology dont le suivant :

Event ID: 2080
Source: MSExchange ADAccess
Task Category:
Topology
Level:
Information
Error:
Process MSEXCHANGEADTOPOLOGYSERVICE.EXE (PID=2386). Exchange Active Directory Provider has discovered the following servers with the following characteristics:
(Server name | Roles | Enabled | Reachability | Synchronized | GC capable | PDC | SACL right | Critical Data | Netlogon | OS Version)
In-site:
dc01.domain.lan CDG 1 7 7 1 0 0 1 7 1
dc02.domain.lan CDG 1 7 7 1 0 0 1 7 1
dc03.domain.lan CDG 1 7 7 1 0 0 1 7 1
Out-of-site:
dc05.domain.lan CDG 1 7 7 1 0 0 1 7 1
dc06.domain.lan CDG 1 7 7 1 0 0 1 7 1

Explication

Après investigation il s’avère que le problème d’installation est dû à un droit manquant sur la stratégie de groupe Default Domain Controllers Policy  pour le groupe Exchange Servers.

Pour rappel le groupe Exchange Servers est créé lors de la phase de préparation de l’annuaire Active Directory pour Exchange 2010 (ou Exchange 2007) et plus exactement via la commande setup.com /PrepareAD.

Lors de la phase de préparation des domaines via la commande setup.com /PrepareDomain la GPO Default Domain Controllers Policy de chaque domaine est modifiée de manière à donner le droit Manage auditing et security log au groupe Exchange Servers.

Dans le cas rencontré ici ce droit était manquant (d’où la présence d’un zéro dans la colonne SACL right lors de la détection des contrôleurs de domaine par le service de détection de la topologie Active Directory).

Résolution

Pour résoudre le problème rencontré la stratégie de groupe GPO Default Domain Controllers Policy est éditée via la console Group Policy Management Editor. Le droit manquant est situé dans l’emplacement suivant :

Computer Configuration / Policies / Windows Settings / Security Settings / Local Policies / user Rights Assignments

image

Il faut modifier le paramètre Manage auditing and security log et y ajouter le groupe nommé “Domaine racine \ Exchange Servers”.

image

Une fois la modification de stratégie de groupe prise en compte (comptez quelques minutes), l’instalation du rôle Hub Transport peut être relancée et cette fois-ci se déroule sans encombres.

Pour aller plus loin, vous pouvez consulter les articles suivants :

http://blogs.technet.com/b/richardroddy/archive/2010/06/16/msexchange-adaccess-dsaccess-errors-and-the-manage-auditing-and-security-right.aspx

http://jasonshave.blogspot.fr/2010/04/dscenosuitablecdc-error-with-exchange.html

http://blog.mattsampson.net/index.php/exchange-hogging-dc-s-and?blog=1

Exchange2010 – Erreur ActiveSync 1053 “Access is denied” suite à la migration d’une boîte aux lettres

Symptôme

Suite à la migration d’une boîte aux lettres Exchange Server 2003 SP2 vers un DAG Exchange 2010 SP1 RU6 (en environnement intra-organisationnel),  l’utilisateur ne peut plus synchroniser ses emails via ActiveSync et l’erreur suivante se produit régulièrement dans le journal Application du serveur CAS :

clip_image001

Voici le détail de l’erreur rencontrée :

Log Name: Application
Source: MSExchange ActiveSync
Date: 20/02/2012 10:00:46
Event ID: 1053
Task Category: Configuration
Level: Error
Keywords: Classic
User: N/A
Computer: CAS.domain.local
Description:

Exchange ActiveSync doesn't have sufficient permissions to create the "CN=Firstname.Lastname,OU=FR,OU=AllUsers,DC=domain,DC=local" container under Active Directory user "Active Directory operation failed on DC01.domain.local. This error is not retriable. Additional information: Access is denied.

Active directory response: 00000005: SecErr: DSID-031521D0, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0

Make sure the user has inherited permission granted to domain\Exchange Servers to allow List, Create child, Delete child of object type "msExchangeActiveSyncDevices" and doesn't have any deny permissions that block such operations.

 

De plus l’utilisateur ne peut pas voir son téléphone lorsqu’il accède à l’interface ECP (Exchange Control Panel) dans le menu Phone, puis Mobile Phone.

Explication

Avec Exchange Server 2003 les partenariats ActiveSync sont stockés dans un dossier caché au sein de la boîte aux lettres de l’utilisateur.

Ce dossier se nomme Microsoft-Server-ActiveSync et est visualisable à l’aide d’un outil tel que MFCMAPI (http://mfcmapi.codeplex.com/).

image

Avec Exchange Server 2010 les partenariats ActiveSync sont stockés directement dans l’annuaire Active Directory sous la forme d’un objet de type msexchangeActiveSyncDevice.

Lors de la migration de la boîte aux lettres vers Exchange Server 2010 le serveur Exchange possédant le rôle CAS doit donc créer un conteneur nommé CN=ExchangeActiveSyncDevices dans le compte utilisateur. Le serveur CAS créé ensuite un objet de type msexchangeActiveSyncDevice dans ce conteneur pour chaque partenariat ActiveSync établit.

Voici un exemple d’objet msexchangeActiveSyncDevice généré dans un environnement Exchange Server 2010 :

clip_image002

Dans notre exemple l’héritage des autorisations étaient désactivé sur le compte utilisateur. Cela a empêché la descente des ACL nécessaires au bon fonctionnement d’Exchange et donc a provoqué le message d’erreur 1053 Access is Denied sur le serveur CAS.

Cette désactivation était engendrée dans notre cas à cause de l’appartenance du compte utilisateur au groupe “Server Operators” qui est l’un des groupes protégé par le mécanisme AdminSDHolder.

Pour mémoire ce mécanisme a pour but de contrôler les ACL appliquées sur les objets (comptes utilisateurs, comptes ordinateurs…) membres des groupes protégés.

La liste des groupes protégés par le mécanisme AdminSDHolder dans les différentes versions de Windows (de Windows 2000 Server à Windows Server 2008 R2) est disponible sur le site de Microsoft à l’adresse suivante :

http://technet.microsoft.com/en-us/query/ee361593

Remarque : Dans notre cas le téléphone touché était un Sony Ericsson sous Symbian avec l’application RoadSync. Cependant ce problème étant dû à une configuration au niveau du compte Active Directory tout autre téléphone pourrait en être victime.

Résolution

Pour résoudre ce problème il faut se connecter à l’ADUC (Console “Utilisateurs et ordinateurs Active Directory”), puis dans les propriétés de l’utilisateur concerné choisir “Security”, “Advanced” puis cocher la case “Include inheritable permissions from this object’s parent”.

s-mail-01p - Connexion Bureau à distance

Suite à cette manipulation la synchronisation “initiale” (comprendre celle engendrant la génération des objets dans l’annuaire Active Directory) du téléphone fonctionnera ainsi que toutes les synchronisations ultérieures.

Une fois la première synchronisation effectuée l’utilisateur pourra visualiser et gérer ses partenariats ActiveSync dans l’interface ECP (la capture d’écran ci-dessous est un exemple).

image

Remarque : Il est intéressant de noter que le mécanisme AdminSDHolder remodifiera automatiquement les ACL (et donc re-désactivera l’héritage des autorisations) dans un délai d’une heure maximum (en effet le processus s’exécute toutes les 60 minutes par défaut).

Exchange 2010 – Erreur Get-OwaVirtualDirectory

Symptômes

Lors de l’exécution de la commande Get-OwaVirtualDirectory l’erreur “800706baapparait :

error_get-ovd

Et ce malgré la bonne configuration des Client Access Servers et le lancement du service IIS sur ces derniers.

On remarque également que désactiver le pare-feu sur les serveurs CAS résout le problème rencontré.

Cause

Cette erreur est causée par le blocage du pare-feu Windows.

Résolution

Afin de résoudre cette erreur tout en gardant le pare-feu actifs il faut créer une nouvelle règle au niveau pare-feu :

  1. Selectionner “new inbound rule
  2. Choisir comme type "custom"
  3. Choisir "All Programs"
  4. Protocol type: "TCP",  Local port: "Dynamic RPC",  Remote ports: "All ports"
  5. Adresses IP : “Any to Any
  6. Action : “Allow connection
  7. Profil : "Domain"
  8. Nom : "Dynamic TCP incoming" (le nom n’importe pas).

 

Cette règle doit être créée sur le pare-feu de tous les serveurs CAS.

A noter que Rollup Update 6 ne résout pas ce problème.

Exchange2010 – Préparation de l’annuaire pour Exchange Server 2010 SP2

La préparation de l’annuaire Active Directory pour le déploiement du service pack 2 d’Exchange Server 2010 est tout à fait classique.

Mise à jour du schéma Active Directory

Dans un premier il faut déployer les extensions de schéma Echange Server 2010 SP2 à l’aide de la commande setup.com /PrepareSchema.

Remarque : Cette opération effectue des modifications sur la partition de schéma de l’annuaire Active Directory et par conséquent nécessite l’utilisation d’un compte membre du groupe “Schema Admins”.

image

Les extensions de schéma du service pack 2 intègrent de nouvelles classes et de nouveaux attributs. Parmi ces nouveaux attributs il y a notamment 5 nouveaux attributs nommés extensionCustomAttribute1 à extensionCustomAttribute5. Ces attributs supplémentaires peuvent être utilisés pour stocker des propriétés supplémentaires sur les objets destinataires (boîtes aux lettres, groupes, contacts…). Ils sont utilisables avec les commandes PowerShell suivantes :

Ainsi que le document de référence sur les extensions de schéma Exchange Server (document mis à jour suite à la sortie du SP2) :

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5401

Pour vérifier que le schéma a bien été mis à jour il suffit de vérifier la valeur de l’attribut rangeUpper sur la classe ms-Exch-Schema-Version-Pt à l’aide d’un outil comme ADSIEdit (ou via une requête de type dsquery par exemple).

Suite à la mise à jour du schéma, la valeur de l’attribut rangeUpper passe de 14728 (version Exchange 2010 SP1) à 14732 (version Exchange 2010 avec SP2).

image

Mise à jour de l’organisation Exchange

L’étape suivante consiste à mettre à jour l’organisation Exchange 2010 à l’aide de la commande setup.com /PrepareAd (dans cet exemple l’organisation se nomme PIServices).

Remarque : Cette opération effectue des modifications sur la partition de configuration de l’annuaire Active Directory et par conséquent nécessite l’utilisation d’un compte membre du groupe “Enterprise Admins”.

Pour valider la propagation des modifications apportées à la partition de configuration sur les différents contrôleurs de domaine le plus simple consiste à affichez les propriétés de l’organisation Exchange via ADSIEdit.

L’attribut objectVersion de l’organisation passe de 13214 (Exchange 2010 SP1) à 14247 (Exchange 2010 SP2).

image image

Mise à jour des domaines

Il faut enfin mettre à jour chaque domaine de la forêt Active Directory à l’aide de la commande setup.com /PrepareDomain.

Remarque : Cette opération effectue des modifications sur la partition de domaine du domaine concerné et par conséquent nécessite l’utilisation d’un compte membre du groupe “Domain Admins” dans le domaine concerné.

Suite à l’application du service pack 2 d’Exchange 2010 la valeur de l’attribut objectVersion sur l’objet CN=Microsoft Exchange System Objects présent à la racine du domaine passe à 13040 (cette valeur est identique à celle du SP1 d’Exchange 2010).

image

Déploiement du service pack 2 sur l’ensemble des serveurs

Une fois l’annuaire préparé et les modifications propagées sur l’ensemble des contrôleurs de domaine il est conseillé de mettre à jour les serveurs Exchange 2010 dans l’ordre suivant :

  • Serveurs CAS
  • Serveurs HUB
  • Serveurs Mailbox
  • Serveurs UM

Remarque : les serveurs Edge étant situés en workgroup ils peuvent être patchés en parallèle.

    Si la haute disponibilité est déployée sur l’environnement il faudra bien sur déployer le package successivement sur chaque nœud en pensant bien à isoler le nœud en train d’être patché (mode “drain” sur les serveurs CAS et/ou HUB en load balancing matériel ou NLB, mode maintenance sur un nœud appartenant à un DAG).

    Le déploiement du patch sur un serveur nécessite que les outils d’administration Exchange 2010 (console MMC et Powershell) soient fermés. De plus les services tiers accédant aux services Exchange (agent de sauvegarde, agent antivirus dédié à Exchange…) doivent également être arrêtés.

    Si certains services ou outils bloquent le déploiement du Service Pack alors une fenêtre équivalent à celle-ci s’affichera à l’issue de test des prérequis.

image

Attention, pas retour d’expérience, le service pack 2 peut mettre jusqu’à 1h, voir 1h30 pour se déployer sur certaines configurations.

Exchange 2010 SP1 - Problème de synchronisation ActiveSync sur un iPhone4S

Symptômes

L'iPhone ne peut pas se connecter au serveur de messagerie et l’erreur suivante se produit sur le terminal mobile.

photo

De plus dans les logs IIS sur le serveur CAS Exchange 2010 on peut voir que la requête HTTP arrive bien sur le serveur et que son code de retour est bon (code HTTP 200). Néanmoins l’erreur suivante est visible dans la colonne cs-uri-query du log IIS :

Error:DeviceNotProvisioned”.

Cause

Dans notre exemple le problème de synchronisation n’était pas dû à une configuration Exchange 2010 mais à l’héritage des autorisations dans l’annuaire Active Directory qui était désactivée sur le compte utilisateur.

Cette désactivation était engendrée dans notre cas à cause de l’appartenance du compte utilisateur au groupe “Account Operators” qui est l’un des groupes protégé par le mécanisme AdminSDHolder.

Pour mémoire ce mécanisme a pour but de contrôler les ACL appliquées sur les objets (comptes utilisateurs, comptes ordinateurs…) membres des groupes protégés.

La liste des groupes protégés par le mécanisme AdminSDHolder dans les différentes version de Windows (de Windows 2000 Server à Windows Server 2008 R2) est disponible sur le site de Microsoft à l’adresse suivante :

http://technet.microsoft.com/en-us/query/ee361593

Remarque : Dans notre cas le téléphone touché était un iPhone 4S. Cependant ce problème étant dû à une configuration au niveau du compte Active Directory tout autre téléphone pourrait en être victime.

Résolution

Pour résoudre ce problème il faut se connecter à l’ADUC (Console “Utilisateurs et ordinateurs Active Directory”), puis dans les propriétés de l’utilisateur concerné choisir “Security”, “Advanced” puis cocher la case “Include inheritable permissions from this object’s parent”.

 s-mail-01p - Connexion Bureau à distance

Suite à cette manipulation la synchronisation initiale de l’iPhone fonctionnera ainsi que toutes les synchronisations ultérieures.

Il est intéressant de noter que le mécanisme AdminSDHolder re-modifiera automatiquement les ACL (et donc re-désactivera l’héritage des autorisations) dans un délai d’une heure maximum (en effet le processus s’exécute toutes les 60 minutes par défaut).

2008 R2 – Mise en place d’un serveur iSCSI

Problématique

Dans certains projets d’infrastructure il est nécessaire de disposer d’un stockage accessible à travers le réseau de type NAS ou SAN. C’est notamment le cas lors de la mise en place de clusters (Hyper-V, Filers, anciennes version d’Exchange…).

Dans notre cas il s’agissait de simuler un cluster Exchange 2003 au sein d’un environnement de maquettage Hyper-V R2 SP1.

Le réseau de stockage dédié ou SAN Fiber Channel (Storage Area Network) nécessite une architecture matérielle adéquate généralement très onéreuse. Il est donc très rarement possible de pouvoir procéder à des tests sur ce genre de matériel.

Afin de simuler ce type de stockage, le composant Microsoft iSCSI Software Target 3.3 pour Windows 2008 R2 est une solution permettant de transformer un serveur en “périphérique de stockage” supportant la technologie iSCSI. Disponible depuis peu pour le grand public, ce logiciel était précédemment réservé aux éditions “Storage” de Windows Server (vendu uniquement avec du matériel).

Contexte de mise en œuvre

Cette procédure a été validée sur un environnement de maquette réalisé dans le cadre d’un projet de migration Exchange 2003 vers Exchange 2010 (30 000 boites aux lettres).

La fonctionnalité de cible iSCSI (iSCSI Target) a été implémentée sur un serveur Windows Server 2008 R2 SP1 dans le but de mettre à disposition un stockage partagé pour la restauration en maquette (P2V) de plusieurs clusters Exchange 2003.

Mise en place du serveur iSCSI sous Windows 2008 R2

Après avoir téléchargé le composant Microsoft iSCSI Software Target 3.3 , l’installation peut avoir lieu.

Installation de la fonctionnalité de cible iSCSI

clip_image002_thumb3


L’installation commence par décompresser ces fichiers dans un dossier ici nommé ISCSI et stocké sur le bureau.

clip_image005_thumb1


Une fois la décompression faite, une page Internet est affiché dans les différents liens, la partie “Install the software” contient le lien pour Windows Server.

clip_image007_thumb1


Après avoir cliquer sur le lien, le logiciel se télécharge…

iSCSI-Instal03_thumb1
et se lance après validation avec le bouton “Run”
iSCSI-Install04_thumb3
L’installation à proprement parler se lance en cliquant sur suivant.
iSCSI-install5_thumb1
Le contrat EULA est à valider afin de continuer.
iSCSI-install6_thumb1
La fonctionnalité propose le choix de l’emplacement d’installation
iSCSI-install7_thumb3
et de participer au programme d’amélioration de l’expérience utilisateur.
iSCSI-install09_thumb3
L’installation est prête, il ne reste qu’à cliquer sur “Install”.
iSCSI-install10_thumb1
iSCSI-install11_thumb2
L’installation de la fonctionnalité cible iSCSI s’exécute.

La configuration du stockage

iSCSI-config01_thumb3
Il faut maintenant configurer une cible iSCSI ainsi que des LUN (Logical Unit)
iSCSI-config02_thumb2
La première action consiste à vérifier les propriété du serveur iSCSI.
iSCSI-config03_thumb2
Il est conseillé de dédier une interface au réseau de stockage. et de vérifier qu’elle soit la seule à être active en ce qui concerne la cible iSCSI.
iSCSI-config04_thumb2
Après cette vérification, la création d’une cible iSCSI peut commencer
iSCSI-config05_thumb2  
iSCSI-config06_thumb4
Le nommage de la cible iSCSI se fait à ce niveau. Il est important de mettre un nom en adéquation avec l’utilisation de cette ressource.
iSCSI-config07_thumb4
La définition des clients ayant accès à cette ressources se renseignent directement durant la création.(Mode Advanced)
iSCSI-config08_thumb2  
iSCSI-config09_thumb2


Il est possible d’identifier les clients (ou Initiator) pour cette ressource à partir de l’une des informations suivantes:

  • IQN
  • Nom DNS
  • Adresse IP
  • Adresse MAC
  • iSCSI-config11_thumb1  
    iSCSI-config12_thumb1
    Lors de l’ajout de plusieurs clients pour une même cible, le warning suivant prévient d’éventuels problèmes si l’application ou le système d’exploitation ne sait pas exploiter cela correctement.
    iSCSI-config13_thumb1
    Ici , les deux clients apparaissent bien.
    iSCSI-config14_thumb1
    Dans le cas de clients multiples, la liste n’apparait que dans le mode avancé.
    iSCSI-config15_thumb2
    iSCSI-config16_thumb1
    Une fois la cible iSCSI configuré, il est intéressant d’aller modifier, dans ses propriétés, son IQN afin d’identifier plus facile cette ressource sur le réseau de stockage.

    IQN pour iSCSI Qualified Name

    Création de LUN (Unité Logique de stockage)

    iSCSI-disk01_thumb1
    La cible iSCSI étant défini, il faut créer les LUN. Ils sont sous formes de fichiers .vhd..
    iSCSI-disk02_thumb1  
    iSCSI-disk03_thumb2
    La création commence par la définition du nom et de l’emplacement du futur LUN.
    iSCSI-disk04_thumb1
    Le paramétrage de la taille se fait en Mo. Le disque dur crée est un disque dur de taille fixe.

    Pour information: si un disque virtuel dur de taille fixe de 10Go est stocké dans un disque virtuel dynamique ce dernier ne grossi pas que de quelques Mo. (dans le cas présent <100 Mo)
    iSCSI-disk05_thumb1  
    iSCSI-disk06_thumb1
    Le LUN peut être affecté à une seule cible iSCSI.
    iSCSI-disk07_thumb1  

    Le stockage a été crée et affecté à une cible iSCSI. Il reste maintenant à installer et configurer la partie client appelé “Initiator”.

    Mise en place de l’initiateur iSCSI (partie cliente)

    Installation du client iSCSI

    CLT2K3-01_thumb1
    CLT2K3-02bis_thumb2
    La partie MPIO ne sera pas implémenté dans ce scénario, il n’est pas nécessaire de l’installer.


    MPIO pour Multi Path Input/Outpout

    MPIO : Technologie permettant à un système de bénéficier de plusieurs chemins d’accès en lecture/écriture sur un périphérique de stockage.

    Plus d’info sur les nouveautés apportés par 2008 sur le MPIO :
    http://technet.microsoft.com/fr-fr/library/dd878505(WS.10).aspx
    CLT2K3-03_thumb1  
    CLT2K3-05bis_thumb1  

    Configuration du client iSCSI (iSCSI Initiator)

    CLT2K3-config01_thumb3
    La configuration par défaut donne un nom complexe à l’initiateur.
    Il peut être utile de le changer afin de renseigner son utilité.
    CLT2K3-config02_thumb1CLT2K3-config01_thumb4
    Le nom du client iSCSI a été changé pour cluster-e2k3-node01
    CLT2K3-config01-bis_thumb1
    Dans l’onglet discovery, la connexion avec la cible va être défini (Target Portals)
    CLT2K3-config03_thumb2
    La cible iSCSI est désignée par son adresse IP.
    CLT2K3-config07_thumb2  
    CLT2K3-config05_thumb1
    Dans l’onglet “Targets” , le bouton “Log on” permet de mettre cette connexion en automatique afin de ne pas couper l’accès aux données suite à un redémarrage.

    Initialisation et formatage du disque.

    CLT2K3-format01_thumb
    Une fois la connexion active, le système détect un nouveau disque.
    CLT2K3-format02_thumb
    Il est nécessaire de l’initialiser
    CLT2K3-format03_thumb  
    CLT2K3-format04_thumb  
    CLT2K3-format05_thumb
    Le nouveau disque dur se comporte comme un disque local.

    Conclusion

    Au niveau de ce billet nous avons pu mettre en place un serveur de stockage utilisant la technologie iSCSI de manière simple. C’est un composant essentiel à plusieurs solutions de clustering disponible dans des produits comme Exchange (avant 2010), SQL Server, Hyper-V R2 …

    Pour améliorer la configuration, il serait intéressant de creuser le sujet de la sécurisation de ces flux de données et donc d’étudier la mise en œuvre de l’authentification entre les parties clientes et serveur iSCSI.

    Peut être le sujet d’un nouveau post …

    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).

    SCOM 2007: MAJ du Management Pack Exchange 2010 !

     

    Cette mise a jour du management pack  disponible a l’adresse ci-dessous, prend en charge les apports du Service Pack 1 d’Exchange 2010.

    • Exchange Server 2010 Monitoring Management Pack (14.02.0071.0)

      Au menu:
    •   
    • De nouveaux rapports de performance et de capacity planning ciblé sur chaque serveur et sur l’utilisation réel de ceux-ci.
    • Deux nouveaux rapports sur les connexions clientes SMTP et la fonctionnalité Remote Powershell
    • Un nouveau moniteur de type transaction (Test-SMTPConnectivity) chargé de tester de tester la connectivité SMTP des mails sortant depuis les client IMAP et POP.
    • Une vue dédiée a la connectivité ECP (Exchange Control Panel)
    • De nouveaux scripts chargé de superviser l’indexation et l’espace disque des boites aux lettres.
    • La possibilité de désactiver la résolution automatique d’alerte pour les environnement SCOM contenant des connecteur, permettant ainsi la création de ticket d’incident sur un système tiers avant que l’alerte ne soit résolu.
    • Supervision des process s’arrêtant de manière répété
    • Ajout de plusieurs metrique de performance pour Outlook Web App
    • Amélioration de la supervision de l’acces a Active Directory
    • Ajout de la supervision du partage de calendriers anonymes
    • Ajout de la supervision du moteur de base (ESE)

    Exchange 2010 SP1 - Erreur "The action couldn't be completed. Please try again." lors d'une recherche OWA

    Symptôme

    Suite au déploiement du SP1 d'Exchange 2010, l'erreur suivante peut se produire dans le Webmail Outlook Web App lorsque la fonction de recherche est utilisée :

    The action couldn't be completed

        image
          De plus l'erreur suivante apparaît dans le journal Application du serveur CAS Exchange 2010 :
        Log Name: Application
        Source: MSExchangeIS Mailbox Store
        Date: 07/02/2011 12:08:16
        Event ID: 9877
        Task Category: Content Indexing
        Level: Error
        Keywords: Classic
        User: N/A
        Computer: <FQDN du serveur>
        Description:
        Content Indexing function 'CISearch::EcGetRowsetAndAccessor' received an unusual and unexpected error code from MSSearch.
        Mailbox Database: <Nom de la base de données>
        Error Code: 0x80043629

      Un redémarrage du serveur ou bien le déplacement des boîtes aux lettres vers une nouvelle base de données ne résout pas le problème.

      Explication

      Ce problème serait dû à une erreur lors de l'application du SP1 (au niveau des phases de mise à jour du schéma et de mise à jour de l'organisation Exchange 2010).

      Résolution

      Pour résoudre ce problème, il faut ré-exécuter les commandes de préparation de l'annuaire Active Directory pour Exchange 2010 SP1 :

      Setup.com /PrepareSchema

      image

      Setup.com /PrepareAd

      image

      Il faut ensuite redémarrer le ou les serveurs Exchange 2010. Suite à ces manipulations la recherche dans le Webmail fonctionne de nouveau normalement.

    Pour plus d'informations, vous pouvez consulter le lien suivant sur le forum Microsoft Technet :

    Exchange 2010 sp1 – Statistiques ActiveSync avec IPhone

    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 apple-logo_thumb3 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.

    image_thumb8

    Dans cet exemple, on peut voir que cet utilisateur possède :

    • 1 IPhone 3GS
    • 3 IPhones de base, donc version 2
    • 1 HTC

     Triste Alors qu’il utilise un IPhone 3GS….. Triste 

    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 :

    image

    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… Triste

    image_thumb7

    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 ! Sourire

     

    N'hésitez pas à laisser un commentaire si ce tips vous a été utile ou bien si vous avez des éléments à ajouter !…