Translate

mardi 19 février 2013

[TECH]: Get-ClientAccessServer et la coexistence Exchange 2010/2013

Je dois l'avouer, ce n'est pas bien: j'ai installé Exchange Server 2013 dans mon organisation Exchange 2010 (mise à niveau en SP3 pour que cela soit possible) sans attendre la disponibilité du Cumulative Update 1...

Honte à moi... :)

Cependant, cela me permet de tester pas mal de chose en coexistence, dont en particulier tous mes scripts visant à configurer ou opérer Exchange, que l'on soit en mono-version (2010 _ou_ 2013) ou en mixité (2010 _et_ 2013 donc).

En coexistence, la majorité des commandes Exchange 2010 (Get-ExchangeServer, Get-) ne "voient" pas (par défaut) les objets Exchange 2013... tant mieux, cela facilite la compatibilité des commandes Exchange 2010 sur des objets 2013 et donc permet d'éviter qu'une commande 2010 ne casse quelque chose.

Cependant, j'ai déjà trouvé une exception à la règle: Get-ClientAccessArray...

Dans sa version 2010, la commande retourne l'objet du Cas Array défini dans mon site Active Directory. S’exécutant sur un serveur Exchange 2010, et à fortiori les Cas Arrays étant une notion Exchange 2010 et retirée en Exchange 2013, on était en droit de s'attendre au fait que la liste calculée des membres du Cas Array ne soient que des serveurs CAS Exchange 2010. Et bien que nenni !

La commande Get-ClientAccessArray d'Exchange 2010 retourne dans la propriété "Members" les serveurs CAS Exchange 2013 ! Là où le bât blesse, c'est que la réciproque n'est pas vraie: la commande Get-ClientAccessArray d'Exchange 2013 ne retourne _que_ les serveurs CAS Exchange 2010.

La preuve en images:
Ci-dessus: Get-ClientAccessArray (retourne le serveur CAS Ex2013)
 
Ci-dessus: Get-ClientAccessArray Exchange 2013 (ne retourne que les serveurs Ex2010)

Dans le même style, je disais précédemment que les cmdlets Exchange 2010 ne "voient" pas les serveurs Exchange 2013. Par exemple, un "Get-ExchangeServer" ne va lister que les serveurs à version 2010 (et antérieures):

Et cependant, en utilisant le paramètre -Identity, je peux récupérer l'objet (Get-ExchangeServer -Identity ):
La raison: lorsque l'on fait un Get-ExchangeServer de base, un filtre de version est positionné (type "inférieur ou égal à la version actuelle") alors que lorsque l'on spécifie une identité, la commande ne créé pas un filtre sur la version... C'est aussi vrai pour les autres cmdlets type "Get-MailboxServer", "Get-ClientAccessServer", "Get-TransportServer", "Get-UmServer"...


Voilà, attention donc lorsque vous serez en mixité de versions Exchange 2010/2013. Pensez à bien tester vos scripts et vos procédures opérationnelles afin d'éviter quelques sournoiseries...

Aucun commentaire:

Enregistrer un commentaire