Archive

Archive for the ‘Exchange’ Category

Exchange 2010 – Déplacement de boites aux lettres 1/2

Le déplacement de boites aux lettres  est à la base de toute migration Exchange. L’opération peut bien entendu être effectuée depuis la console EMC mais nous allons voir ici, que la méthode PowerShell offre infiniment plus de possibilités. Nous allons tout d’abord donner quelques exemples simples de la commande New-MoveRequest pour nous habituer à sa syntaxe et finir avec quelques exemples un peu plus complexes.

Example 1 : 

New-MoveRequest - Identity "Bill.Pullman"  -TargetDatabase "DB01"

La commande permet simplement de déplacer la boite aux letters de Bill Pullman vers la base de données DB01. Le paramètre Identity doit permettre d’identifier la boite au lettres sans ambiguité. La valeur transmise peut être l’Alias, le login, l’adresse SMTP, …

TargetDatabase fait bien sur référence à la base de données cible vers laquelle la boite aux lettres sera déplacée. Example 2 :

Il peut arriver parfois qu’une boite aux lettres contienne des éléments corrompus. Dans ce cas, le déplacement de la boite concernée échoue dés qu’un élément corrompu est détecté. Cela peut être assez déplaisant lorsque cela arrive une fois 94% du déplacement effectué. Pour éviter cela, il est possible de renseigner le paramètre BadItemLimit  qui définit le nombre acceptable d’éléments corrompus. Ces derniers seront tout simplement ignorés par le processu de déplacement. Si vous estimez que ce nombre doit être être supérieur à 50, dans ce cas vous devrez également ajouter le paramètre AcceptLargeDataLoss  à votre commande.

New-MoveRequest - Identity "Bill.Pullman"  -TargetDatabase "DB01" -BadItemLimit 5

ou encore

New-MoveRequest - Identity "Bill.Pullman"  -TargetDatabase "DB01" -BadItemLimit 100 -AcceptLargeDataLoss

Example 3 :

Généralement, et particulièrement lors d’une migration, le déplacement des boites aux lettres doit être effectué par lot et non pas une boites après l’autre.  Dans ce cas, comment transmettre à la commande New-MoveRequest la liste des boites aux lettres à déplacer ? Eh bien, c’est la que la magie de PowerShell opère :

Pour déplacer toutes les boites aux lettres de la base « Old-Database » vers la base « DB01 », la commande est la suivante :

Get-Mailbox -Database "Old-Database" | New-MoveRequest -TargetDatabase "DB01" -BadItemLimit 100 -AcceptLargeDataLoss

La première partie de la commande (à gauche du |) récupère la liste des boites au lettres de la base de données « Old-Database » et la transmet ensuite à la commande New-MoveRequest. Si nous voulions déplacer tous les utilisateurs dont le nom commence par la lettre « B » par exemple, la commande serait alors  :

Get-Mailbox -Identity "B*" | New-MoveRequest -TargetDatabase "DB01" -BadItemLimit 100 -AcceptLargeDataLoss

Déplacement des boites au lettres des utilisateurs figurant dans l’unité d’organisation « Marketing ».

Get-Mailbox -OrganizationalUnit "Marketing" | New-MoveRequest -TargetDatabase "DB01" -BadItemLimit 100 -AcceptLargeDataLoss

Toute l’arborescence de l’unité d’organisation « Marketing » sera traitée. Autrement dit, si l’OU marketing contient deux autres OU : Manager et Assistants, les boites au lettres contenues dans ces dernières seront également déplacées.

Il est également possible de déplacer les boites aux lettres dont la liste est contenue dans un fichier CSV. Celui  ci doit impérativement contenir à la première ligne le nom de la colonne et sur chaque ligne suivante une valeur à transmettre à la commande.

Exemple de fichier CSV (contenant 4 lignes):

notepad-csv

Import-CSV ".\users.txt" | foreach {New-MoveRequest -Identity $_.Nom -TargetDatabase DB01 -BadItemLimit 10} 

Notez bien que le nom de la variable $_.Nom correspond au nom de la colonne utilisée dans le fichier CSV.

Une petite remarque au passage : lorsque vous effectuez plusieurs déplacement par lot, nous verrons dans la deuxième partie de cet article qu’il peut être bien pratique de pouvoir différencier entre les différentes vagues de déplacement effectuées. Pour cela, pensez à glisser le paramètre BatchName dans chacune de vos commandes. Par exemple :

Get-Mailbox -Database "Old-Database" | New-MoveRequest -TargetDatabase "DB01" -BatchName "Moving Mailbox from Old-Database" -BadItemLimit 100 -AcceptLargeDataLoss

Example 4 : Pour finir, nous allons voir l’usage d’un paramètre assez peu connu et pourtant bien pratique : SuspendWhenReadyToComplete.

Lors d’un déplacement de boite aux lettre avec la commande New-MoveRequest, le contenu de la boite est copiée message par message depuis sa base d’origine vers la base de destination. Ce n’est qu’une fois la copie effectuée sans erreurs que les attributs active directory de la boite aux lettres sont modifiées pour refléter le changement de base de données.

Que diriez vous s’il était possible de suspendre le déplacement une fois la copie de la boite aux lettres effectuée. Mieux encore, que diriez vous si cette copie pouvait être maintenue synchronisée avec l’originale pendant 1 mois entier. Vous auriez donc la possibilité de finaliser le déplacement à tout moment et cela ne prendrait que quelques secondes puisque la copie a déjà été effectuée. Eh bien, c’est exactement ce que l’attribut SuspendWhenReadyToComplete permet de réaliser.

Get-Mailbox -Database "Old-Database" | New-MoveRequest -TargetDatabase "DB01" -BatchName "Moving Mailbox from Old-Database" -BadItemLimit 100 -AcceptLargeDataLoss -SuspendWhenReadyToComplete

Vous pourrez alors à tout moment finaliser le déplacement avec la commande Resume-MoveRequest.

Get-MoveRequest | ?{$_.Status -Eq "AutoSuspended"} | Resume-MoveRequest

Dans la deuxième partie de cet article, nous verrons comme suivre en direct le déplacement de boites aux lettres initié par New-MoveRequest et générer des rapports détaillés sur les déplacements réalisés.

A très bientôt.

PS :

Par défaut, le service de réplication de boites aux lettres, n’autorise le déplacement que de deux (02) boites aux lettres à la fois. Pour augmenter ce nombre, et autoriser le déplacement de 20 boites simultanément par exemple, procédez comme suit :

  • Sur vos serveurs CAS, ouvrez le fichier C:\Program Files\Microsoft\Exchange Server\V14\Bin\MSExchangeMailboxReplication.exe.config avec le Bloc Note (exécuté en tant qu’administrateur)
  • Modifier les lignes suivantes :
    • MaxActiveMovesPerSourceMDB = “20” (valeur par défaut : 5)
    • MaxActiveMovesPerTargetMDB = “20″ (valeur par défaut : 2)
    • MaxActiveMovesPerTargetServer = “20” (valeur par défaut : 5)

Enregistrez les modifications puis redémarrez le service de réplication de boites aux lettres :

restart-service MSExchangeMailboxReplication -Force

That’s it

Catégories :Exchange, Powershell, Scripts Étiquettes : ,

Exchange 2010 – Vérifier l’état du DAG

Un peu de théorie avant d’aborder la pratique :

Le DAG (Data Availability Group ou encore Groupe de Disponibilité de Base de Données)  est le composant de base de l’architecture de haute disponibilité et de résilience de site intégrée à Exchange 2010. Un DAG est un groupe pouvant être formé d’un maximum de 16 serveurs de boîtes aux lettres qui hébergent un ensemble de bases de données et assurent une récupération automatique au niveau de la base de données à la suite de défaillances affectant des bases de données individuelles. N’importe quel serveur d’un groupe de disponibilité de base de données peut héberger une copie de base de données de boîtes aux lettres provenant d’un serveur quelconque du groupe de disponibilité de base de données. Lorsqu’un serveur est ajouté à un groupe de disponibilité de base de données, il fonctionne avec les autres serveurs du groupe pour assurer la récupération automatique à la suite de défaillances affectant des bases de données de boîtes aux lettres, par exemple la défaillance d’un disque ou d’un serveur.

De manière générale, un DAG est un élément particulièrement stable de l’architecture Exchange et à moins d’une saturation du disque contenant les logs (un grand classique) une grosse panne réseau ou d’un méchant crash serveur, il est assez rare de voir un DAG  se prendre les pieds dans le tapis.

Une des taches importantes de tout administrateur Exchange est donc de veiller à ce que le DAG se maintienne en bonne santé. Quelques contrôles réguliers suffisent généralement à éviter les gros problèmes :

  1. Surveiller l’espace disque disponible (notamment sur les disques contenant les log et les bases)
  2. S’assurer que tous les services sous jacents sont opérationnels sur l’ensemble des serveurs du DAG
  3. S’assurer que toutes les copies de bases de données sont saines

Pour le premier point, vous avez l’embarras du choix :

  • un coup d’oeil régulier sur les serveurs
  • un script planifié
  • application type SCOM (Microsoft System Center Operation Manager) ou tout autre application de monitoring (y en a des tas de gratuites)

Pour le deuxième et le troisième point:

  • La méthode manuelle en Powershell :

Vérifier que tous les services du DAG sont opérationnels (attention, les parenthèses sont importantes)

(Get-DatabaseAvailabilityGroup -Identity DAG).servers | Test-ReplicationHealth

dag-test-replication

 

Si une erreur est signalée (c’est assez rare, je vous rassure), c’est qu’un service est probablement arrêté ou qu’il est temps d’appeler le plombier 🙂

Vérifier que toutes les copies de bases de données sont saines :

(Get-DatabaseAvailabilityGroup -Identity DAG).servers | foreach {Get-MailboxDatabaseCopyStatus -Server $_.Name} |  Select Name, Status, ContentIndexState

dag-get-mailboxdatabasecopystatus

Quand tout va bien, la colonne Status affiche Healthy (pour les copies passives) ou Mounted (pour la copie active). Il arrive assez souvent de voir un ContentIndexState afficher Failed. Rien de bien méchant : en général, la suspension puis la remise en route de la réplication suffit à faire disparaître l’erreur.

  • L’utilisation d’un script plus élaboré  :

Le plus répandu est probablement l’excellent Get-DAGHealth de Paul Cunningham que vous pourrez télécharger sur son site.

L’exécution du script produit un fichier HTML donnant un bilan très complet de l’état de santé de votre DAG.

get-daghealth-output

Quelque soit la méthode utilisée, l’important est de ne pas négliger la surveillance de votre environnement. L’adage « prévenir  vaut mieux que guérir » prend ici toute sa dimension :-).

Bonne chance à tous.

Catégories :Exchange, Powershell, Scripts Étiquettes : ,

Exchange 2010 multi-roles et Haute Disponibilité (Part 1/2)

Question : on met à votre disposition 2 serveurs pour déployer une plate-forme Exchange 2010 hautement disponible. Quelle solution proposez vous ?

La première réponse qui vient à l’esprit est :

  1. installer Exchange 2010 en multi-roles (Mailbox, Hub et Cas) sur les deux serveurs
  2. configurer un DAG pour la haute disponibilité des bases de données
  3. créer un CAS Array
  4. mettre en place NLB pour la haute disponibilité des CAS et pointer le Cas Array sur l’adresse ip virtuelle NLB.

Pas mal, mais il y a un hic de taille : on ne peut malheureusement pas installer la fonctionnalité Windows Network Load Balancing (NLB) sur un serveur qui est deja membre d’un DAG. Il s’agit la d’une limitation Windows qui fait qu’il n’est tout simplement pas possible de mixer du Failover Clustering (utilisé par le DAG) avec du Clustering NLB sur un même serveur.

C’est d’ailleurs pour cela que les premières architectures HA Exchange 2010 s’appuyaient le plus souvent sur des modèles à 4 serveurs (2 serveurs CAS/HUB en NLB et 2 serveurs MBX en DAG).

Ce qu’on retient donc pour l’instant :

  • la mutualisation des rôles n’a pas d’intéret particulier (sauf dans un environnement mono serveur bien sur)
  • pour une haute disponibilité de tous les rôles, 4 serveurs au minimum sont requis.

Lors du TechEd 2010, Microsoft change quelque peu son fusil d’épaule et cesse de recommander Windows NLB comme mécanisme de haute dispo pour les CAS. Voir slide ci dessous. La présentation complète est disponible ici en téléchargement (PPTX, 7,5MB).

 

Load_balancing_recommendations

 Load_balancing_recommendations_2

La recommandation est claire et sans équivoque : Utilisez donc un Load balancer (répartiteur de charge). La liste des équipements validés par Microsoft peut être consultée sur le site de l’éditeur.

A partir de la, les architectures Exchange 2010 HA de référence changent et les modèles à base de serveurs multi-roles font leur apparition (NLB n’etant plus la pour jouer les troubles fêtes). Microsoft recommande même clairement d’opter pour un modèle à base de serveurs multi-roles avec pour arguments : une meilleur utilisation des ressources et une simplification du déploiement. Voir ref :

A l’époque cependant, Load Balancer est encore souvent synonyme de F5 Big-IP et autres Citrix Netscaler pour ne citer que ceux la, des produits réputés pour être budgetivores et donc réservés aux grands comptes. Fort heureusement, c’était sans compter sur l’arrivée de constructeurs comme KEMP Technologies ou encore Barracuda Networks (il y en a d’autres bien sur) qui ont mis sur le marché des équipements tout à fait convenables et à des prix abordables, mettant ainsi le load balancer à la portée de tous.

Malgré cela, nous continuons à recevoir encore et encore des demandes pour le déploiement de plate-forme Exchange 2010 haute dispo avec dans les cartons deux serveurs et basta. Force est de constater que malgré la baisse des prix, l’usage de load balancers n’est toujours pas entré dans les moeurs.

Beaucoup d’articles sur internet traitent du problème de haute dispo dans les environnements Exchange 2010 à base de serveurs multi-role. Cela va de la mise en oeuvre de DNS Round Robin à la mise en place de scripts Powershell permettant de changer à la volée l’adresse du CAS Array en cas d’indisponibilité d’un des serveurs.

Il existe cependant une manière originale et très simple de régler controurner le problème. Et c’est paradoxalement, la moins documentée.

Nous donnerons le détails de cette mise en oeuvre dans la seconde partie de cet article. Désolé, vous allez devoir patienter quelques jours encore 🙂 D’ici la, tous vos commentaires sont les bienvenus.

En attendant, je vous recommande quelques lectures intéressantes sur le sujet :

A la semaine prochaine.

Forefront Protection 2010 for Exchange : il est encore temps !

image

Bien que le produit ait été retiré du catalogue Microsoft en septembre 2012, je peux vous dire qu’il est encore largement présent dans les entreprises.

Juste une date à retenir : le 31 décembre 2015 (oui oui je sais, c’est aussi le nouvel an), les mises à jour de signatures arriveront à expiration, définitivement. Terminé, fini, kapout, il ne vous restera plus que vos yeux pour pleurer et espérer que rien de facheux n’arrivera d’ici à ce que vous ayez trouver une solution de secours.

Alors, si vous avez la chance de travailler dans une des nombreuses entreprises ou la signature du moindre bon de commande prend des mois, je vous conseille vivement de prendre un peu d’avance et de commencer l’écriture de votre cahier des charges, mettre la pression sur la direction en exposant les dangers (malheureusement réels !) auxquels l’entreprise risque de s’exposer en cas d’expiration de l’antivirus, devenez copain avec le directeur financier si nécessaire mais de grâce n’attendez pas le dernier moment pour aller faire votre marché.

Bonne chance à tous 🙂

PS : pour rappel

Catégories :Actualité, antivirus, Exchange Étiquettes : ,

Les meilleurs scripts pour Exchange 2010/2013

PowerShell

Tous les scripts présentés ici sont bien évidemment téléchargeables gratuitement (la majorité depuis le Microsoft Script Center) . Ces petits trésors de programmation ont été développés soit par  l’équipe Exchange soit par des experts Exchange reconnus. Ces dernières années, j’ai eu à en tester pas mal et certains font désormais partie intégrante de ma boite à outils. Pour les autres, vos commentaires sont plus que jamais les bienvenus.


 Dernière mise à jour : le 09/02/2015.

Exchange Environment Report (par Steve Goodman) – Testé et approuvé

Probablement un des meilleurs script de reporting pour Exchange. Le script génère une page HTML regroupant les informations les plus significatives de votre environnement Exchange :

  • Nombre de boites aux lettres
  • Nombre de serveurs (avec version de l’OS, d’Exchange, niveau de Rollup, …)
  • Liste des bases de données (avec taille de celles ci, nombre de boites par base, …)

image

Vraiment excellent.

Télécharger ici.

 

Exchange 2010 Architecture Report V2 (par Franck Nérot ) – Testé et approuvé

Une véritable perle pourtant assez méconnue. Ce script (qui peut s’exécuter en mode CMD ou GUI) permet d’effectuer une analyse détaillée de différents paramètres de la plate-forme Exchange.

image

Le script s’exécute en multi-thread (exécusez du peu) et permet d’analyser plus d’une trentaine de paramètres parmi lesquels : Active Directory, configuration hardware des serveurs, configuration des OS, version et rollup Exchange, configuration des URLs par service, serveurs de transport, serveurs d’accès, bases de données, DAG, certificats, …

Comme précédemment, le résultat est consigné dans un fichier HTML.

Indispensable.

Télécharger ici.

 

Active Directory Audit Report  (par Zachary Loeber) – Testé et approuvé

Les mots me manquent pour dire tout le bien que je pense de Zachary. Ce mec est génial. Et quand vous aurez vu ce dont ce script est capable, vous serez surement de mon avis.

Le script New-ADAssetReport permet de générer un fichier HTML (ou plutot 2) avec une description très complète de votre annuaire :  niveaux fonctionnels, rôles FSMO, listes de DC (avec nom et adresse ip), liste des sites, des sous réseaux, détails sur la topologie, nombre et listes des utilisateurs avec pouvoir, …etc.

Ca rappelle un peu l’outil ADRap de Microsoft mais en beaucoup mieux.

Petit apercu du rendu :

forest

domain

L’outil idéal pour réaliser vos audit.

Je vous conseille au passage d’aller faire un tour sur le site de l’auteur. Vous y trouverez des tas de scripts sympas : http://www.the-little-things.net/ 

Télécharger ici.

 

Ne ratez pas la suite au prochaine épisode.

Catégories :Exchange, Powershell, Scripts

Magic Quadrant for Enterprise Information Archiving – 2014

gartner136

10 Novembre 2014. Le voici le voila, le nouveau Magic Quadrant for Enterprise Information Archiving. Il commence à y avoir du monde dans le carré de droite ou on découvre un HP qui vient sérieusement ébranler Symantec sur son territoire.

mq_2014_archiving

Lire le rapport complet.

 

Catégories :Actualité, Exchange, HP, Magic Quadrant, Symantec Étiquettes : , ,

Sortie de Symantec Enterprise Vault 11

sym_new_logo

Mai 2014. Symantec annonce la sortie officielle de Symantec Enterprise Vault 11.

Au programme des nouveautés :

  • Accès IMAP aux archives Enterprise Vault : cette nouvelle fonction permet un accès aux archives Enterprise Vault à travers n’importe quel client compatible IMAP. Les archives sont présentées à l’utilisateur comme une simple boite aux lettres. Il n’est donc plus nécessaire d’utiliser un add-on spécifique Outlook pour accèder à ses archives, il suffit simplement d’ajouter un compte IMAP à son client de messagerie.
  • Enterprise Vault Search : interface de recherche consolidée permettant de retrouver une information archivée quelque soit sa nature (email, fichier, archive sharepoint, lotus ou exchange, …) L’expérience utilisateur a par ailleurs été grandement améliorée. L’interface a été complètement retravaillée afin de faciliter l’utilisation et permettre un accès ultra rapide aux informations archivées.
  • Amélioration des fonctions d’importation PST : performance accrue de la console de gestion pour la prise en compte d’environnements de grande taille, tableau de bord et reporting pour un meilleur suivi du processus, le support de PST protégés par mot de passe, …
  • Une meilleur intégration à SCOM : cette nouvelle version du pack d’administration permet la prise d’un nombre plus important d’événements.

 

Télécharger la présentation

L’annonce officielle sur le blog Symantec

 

Catégories :Actualité, Exchange, Symantec Étiquettes : ,