SUPINFO International University

SUPINFO Institute of Information Technology
Laboratoire Microsoft




Tous les Articles du Laboratoire Microsoft

Exchange 2007 : concepts, implémentation et administration
Accueil > Articles > Serveurs
Auteur 
Cedric NANA
LABORATOIRE SUPINFO DES TECHNOLOGIES MICROSOFT (EQUIPE RECHERCHE)
Etudiant supinfo IS3 Paris


 Tous les articles de cet auteur
Matthieu MARTINEAU
PI SERVICES (GOLD PARTNER MICROSOFT)
Ingénieur systèmes et réseaux


 Tous les articles de cet auteur

3,9/5

Bien


285430
1133/4430

4. Les outils d'administration d’Exchange Server 2007

4.1 Une nouvelle console d’administration

Microsoft Exchange 2007 peut bien entendu être administré à l'aide d'une interface graphique. Cette interface se présente sous la forme d'une console MMC version 3.0 et nommée Exchange Management Console (EMC). Voici les informations à retenir concernant EMC :

  • L'organisation de la console a été revue (en comparaison avec la console "gestionnaire système" d'Exchange 2000/2003) et est maintenant basée sur la notion de rôles
  • Les destinataires doivent être crées et configurés dans cette console (et non plus dans la console "Utilisateurs et ordinateurs Active Directory")
  • La section Toolbox de la console permet de lancer de nombreux outils de dépannage et d'optimision comme Exchange Best Practice Analyser, le gestionnaire de queues SMTP, le moniteur de performances, l'interface de recherche des messages enregistrés par le suivi des messages, l'outil de restauration de boîtes aux lettres...
  • La console EMC est une surcouche d'EMS et se contente d'exécuter des commandes PowerShell en arrière plan !
  • De nombreuses manipulations ne sont pas réalisables dans la console et doivent être faites via le Shell.

Voici un aperçu de cette console MMC :

Console de gestion Exchange 2007

 

4.2 Administration en ligne de commande à l’aide de PowerShell

Depuis Windows 2000, les possibilités offertes par l'invite de commande Microsoft sont très critiquées par les administrateurs système. Ceci est compréhensible lorsque l'on sait que l'invite de commande est un programme censé émuler MS-DOS et reprenant ses fonctionnalités (avec bien entendu des commandes plus récentes comme gpupdate ou netsh). Ces critiques étaient d'autant plus vives et justifiées que les systèmes concurrents (les shells UNIX/Linux pour ne pas les nommer ;) offrent un contrôle total du système et permettent d'effectuer des modifications à très bas niveau (noyau du système notamment).

Pour rattraper son retard dans ce domaine, Microsoft a lancé il y a plusieurs année le développement d'un véritable SHELL capable d'entrer en compétition avec ceux des systèmes alternatifs. Ce travail vient d'aboutir, puisque la version finale (RTM) de Windows Power Shell vient d'être terminée (confère : cette actu du laboratoire).

Exchange Server 2007 apporte une extension au Shell de base nommée Exchange Management Shell. Cette extension apporte de nombreuses commandes supplémentaires dédiées à l'administration des services de messageries. Toutes les fonctionnalités clés de Windows Power Shell sont bien entendu supportées (complétion des commandes, complétion de paramètres, utilisation de "pipes" et de scripts, administration à distance via un tunnel SSL...).

Pour avoir une idée, des possibilités offertes par le Shell Exchange, il suffit de taper la commande suivante "Get-Command > c:\liste-des-commandes.txt". Cela vous permettra de récupérer la liste des commandes dans un fichier texte (faites un clic droit sur ce lien, puis choisissez "enregistrer sous" pour télécharger un fichier texte contenant la liste). Ci-dessous voilà le retour de la commande get-excommand qui ne renvoie que la liste des commandes liées à Exchange (la capture est bien entendu tronquée vu le nombre impressionnant de résultats !) :

Le Shell Exchange permet de réaliser de nombreuses actions non supportées par la console :

  • Déplacer des boîtes aux lettres d’une forêt à l’autre

  • Configurer le filtrage des pièces jointes et les fonctionnalités anti-spam du serveur de transport Hub

  • Créer et configurer les dossiers publics

  • Configurer les services  POP3 et IMAP4

  • Modifier le niveau de journalisation d’un composant

  • Initialiser un groupe de stockage LCR

  • Créer des objets en masse (bulk insert)

  • Configurer le File Share Witness sur la ressource Quorum d’un cluster CCR

  • Créer un fichier d’enregistrement pour le serveur de périmètre (Edge Server)

  • Etc.

Pour obtenir de l'aide sur une commande, il faut utiliser la commande Get-Help <nom-commande>. L'option -detailed permet d'obtenir un maximum d'informations (des exemples de commandes sont généralement proposés). Voici un exemple :

Commande Get-Help avec l'option -detailed

Pour lister les serveurs Exchange de l'organisation, il suffit de saisir la commande Get-ExchangeServer. Ici la commande est suivi d'un pipe (caractère "|") avec la commande Format-Table de manière à afficher seulement trois propriétés (nom du serveur, rôles installés et édition).

 

4.3 PowerShell en pratique

Déclaration et utilisation des variables

Pour créer une variable à l'aide de PowerShell, il suffit de la définir avec le préfixe $ puis de lui affecter une valeur. On peut par exemple créer une variable nommée $current-process et y stocker la liste de tous les processus en mémoire. Voici la commande exacte à saisir pour arriver à ce résultat :

  • $current_process = Get-Process

On peut ensuite travailler sur notre variable $current-process et récupérer un certain nombre d'informations comme :

  • Le nombre de processus avec la propriété $current-process.count
  • La liste de tous les processus (Id et nom) dans un tableau avec la commande $current-process | Format-Table Id,Name
  • Etc...

Opérateurs de comparaison & conditions

Pour émettre une condition avec PowerShell, on peut utiliser les opérateurs If, ElseIf et Else. Voici un exemple de boucle :

$current_process = Get-Process
If ($current_process.count -lt 50)
{
        Write-Host "La charge du serveur est faible";
}
Elseif (($current_process.count -ge 50) -and ($current_process.count -lt 80))
{
        Write-Host "La charge du serveur est moyenne";
}
Else
{
        Write-Host "La charge du serveur est élevée";
}

les principaux opérateurs conditionnels sont -and, -or et -not. Les opérateurs de comparaisons sont regroupés dans le tableau ci-dessous :

Opérateur Description Exemple
-lt inférieur à (less than) $int = 5 //on définit un entier
$int -lt 8 //renvoi True
-le inférieur ou égal à (less than or equal to) $int = 5 //on définit un entier
$int -le 8 //renvoi True
-gt supérieur à (greater than) $int = 5 //on définit un entier
$int -gt 8 //renvoi False
-ge supérieur ou égal à (greater than or equal to) $int = 5 //on définit un entier
$int -ge 8 //renvoi False
-eq égal à (equal to) $int = 5 //on définit un entier
$int -eq 8 //renvoi False
-ne non égal à (non equal to) $int = 5 //on définit un entier
$int -ne 8 //renvoi True
-contains permet de savoir si un élément lambda est présent ou non dans une collection ou un tableau $var = "Matthieu MARTINEAU", "Loïc THOBOIS", "Saïda AZIRI", "Vincent TROTTIER" //on définit une collection
$var -contains "Matthieu Martineau" //renvoi True
$var -contains "Matt" //renvoi False
$var -contans "Matt*" //renvoi False
-notcontains inverse de -contains $var = "Matthieu MARTINEAU", "Loïc THOBOIS", "Saïda AZIRI", "Vincent TROTTIER" //on définit une collection
$var -contains "Matthieu Martineau" //renvoi False
$var -contains "Matt" //renvoi True
$var -contans "Matt*" //renvoi True
-like permet de savoir si une chaîne de caractère lamdba est incluse dans une autre chaîne (proche de -match) $string = "Matthieu MARTINEAU" //on définit une chaîne de caractère
$string -like "MAR" //renvoi False
$string -like "MAR*" //renvoi False
$string -like "*MAR*" //renvoi True
-notlike iverse de -like $string = "Matthieu MARTINEAU" //on définit une chaîne de caractère
$string -notlike "MAR" //renvoi True
$string -notlike "MAR*" //renvoi True
$string -notlike "*MAR*" //renvoi False
-match permet de savoir si une chaîne de caractère lamdba est incluse dans une autre chaîne (proche de -like) $string = "Matthieu MARTINEAU" //on définit une chaîne de caractère
$string -match "MAR" //renvoi True
$string -match "MAR*" //renvoi True
$string -match "*MAR*" //renvoi une erreur !
-notmatch inverse de -match $string = "Matthieu MARTINEAU" //on définit une chaîne de caractère
$string -notmatch "MAR" //renvoi False
$string -notmatch "MAR*" //renvoi False
$string -notmatch "*MAR*" //renvoi une erreur

Utilisation des boucles

PowerShell permet aussi de créer des boucles de type While, Do While, For ou Foreach. Voici deux exemples basiques de boucles :

$var = 1 // on crée et on instancie une variable à 1
while ($var -le 50) {$var; $var += 1} // tant que la variable est inférieure ou égale à 50 on affiche la variable, puis on l'incrémente de 1

for ($var = 1; $var -le 50; $i++) // à chaque itération la variable $var s'incrémente de 1 - la valeur initiale de $var est 1 et sa valeur limite est 50
{$var} // à chaque itération on affiche la valeur de la variable

 

4.4 Création et utilisation de scripts avec PowerShell

PowerShell permet de créer et d'exécuter des scripts. Cela s'avère extrêmement pratique à l'usage pour enregistrer une suite de commandes complexe ou bien pour enregistrer une ligne de commande utilisée usuellement. Les scripts PowerShell sont enregistrés au format texte avec l'extension *.PS1.

Par défaut l'exécution des scripts est bloquée. Si vous ne modifiez pas ce comportement, un message d'erreur s'affichera au lancement du shell (cf. capture d'écran ci-dessous) :

 

Il est possible de configurer le système pour autoriser l'exécution de scripts sachant qu'une distinction est faite entre les scripts qui sont signés numériquement et ceux que ne le sont pas. Pour vérifier la configuration de votre Shell, il suffit de saisir la commande Get-ExecutionPolicy. Voici toutes les stratégies d'exécution de scripts possibles :

  • Restricted : mode par défaut, tous les scripts sont bloqués

  • AllSigned : seuls les scripts signés numériquement sont autorisés (veillez à bien vérifier l'auteur du script au niveau de la signature car un pirate peut très bien signer des scripts malicieux)

  • RemoteSigned : tous les scripts locaux sont autorisés, les scripts téléchargés depuis Internet doivent être signés

  • Unrestricted : tous les scripts (locaux et provenant d'Internet) peuvent être exécutés qu'ils soient signés ou non

Pour exécuter des scripts de manière sécurisée, il est recommandé d'utiliser la stratégie AllSigned (cette reconfiguration peut être effectuée avec la commande Get-ExecutionPolicy AllSigned). Précision pour les utilisateurs de Windows VISTA : la commande Get-ExecutionPolicy requiert des droits administrateur; il faudra donc lancer PowerShell en mode administrateur (en faisant un clic droit sur l'icône de PowerShell, puis en sélectionnant Run as Administrator).

Si vous n'êtes pas en mesure de signer vos scripts ou bien si vous souhaitez vous affranchir de cette étape, vous pouvez passer en mode RemoteSigned même si cette configuration est moins sécurisée que la précédente. 

Pour créer un script vous pouvez utiliser n'importe quel éditeur de texte (notepad...). Voici un exemple simple de script :

Pour exécuter ce script, il suffit d'utiliser le préfixe .\ en indiquant ensuite le chemin du script. Voilà ce que cela donne avec le script ci-dessus :

Si vous souhaitez aller plus loin, vous pouvez consulter le Script Center Microsoft qui contient de nombreux exemples de scripts. Voici les deux liens intéressants :

Enfin des scripts préconfigurés sont présents dans le répertoire d'installation d'Exchange Server 2007 (confère capture d'écran ci-dessus). Ces scripts ont été inclus de manière à simplifier la configuration des éléments les plus délicats (dossiers publics, fonctionnalités antispam...).

 

4.5 Installer les outils d'administration Exchange sur une station de travail

Il est possible d'installer les outils d'administration Exchange Server 2007 sur une workstation. Pour cela il faut s'assurer que la machine répond à tous les prérequis logiciels, puis lancer le setup d'Exchange. Trois cas se présentent :

  • Si le poste exécute Windows XP Professionnel 32 bits, vous devez utiliser les sources de la version d'essai 32 bits d'Exchange Server 2007
  • Si le poste exécute Windows XP Professionnel 64 bits, vous devez utiliser les sources de la version de production 64 bits d'Exchange Server 2007
  • Si le poste exécute Windows Vista les outils d'administration ne peuvent pas être installés et ce, quelle que soir l'édition (business, enterprise, ultimate...) ou le noyau (32 ou 64 bits) utilisé

La non compatibilité avec Windows Vista est assez étonnante... gageons qu'elle sera corrigée avec le SP1. Dans le cas d'une station de travail sous Vista, Microsoft recommande d'utiliser le bureau à distance et de lancer les outils directement sur le serveur (confère cet article de la base de connaissances Microsoft).


 Sommaire

 1. Introduction à Microsoft Exchange Server 2007
     1.1 Historique d'Exchange Server
     1.2 Les nouveautés d'Exchange Server 2007
     1.3 Introduction à la notion de rôle
     1.4 Considérations sur les architectures messageries basées sur Exchange 2007
     1.5 Les différentes éditions d'Exchange Server 2007
     1.6 Exchange Server 2007 et virtualisation
     1.7 Evaluer gratuitement Exchange Server 2007

 2. Pré-requis à Exchange et préparation de l'annuaire
     2.1 Configuration minimale pour exécuter Exchange 2007
     2.2 Considérations sur le matériel et les performances
     2.3 Les prérequis logiciels
     2.4 Interactions entre Exchange et Active Directory
     2.5 Préparation d'Active Directory en vue du déploiement d'Exchange Server 2007
     2.6 Préparation de l'annuaire dans une infrastructure monodomaine

 3. Installation et mise à jour d’Exchange Server 2007
     3.1 Installation d’Exchange Server 2007
     3.2 Installation d'Exchange Server 2007 sans assistance
     3.3 Points à vérifier après l'installation d'un serveur Exchange 2007
     3.4 Migration vers Exchange Server 2007

 4. Les outils d'administration d’Exchange Server 2007
     4.1 Une nouvelle console d’administration
     4.2 Administration en ligne de commande à l’aide de PowerShell
     4.3 PowerShell en pratique
     4.4 Création et utilisation de scripts avec PowerShell
     4.5 Installer les outils d'administration Exchange sur une station de travail

 5. Tâches administratives usuelles
     5.1 Gestion des groupes de stockage et des banques
     5.2 Les différents types de destinataires
     5.3 Gestion des boîtes aux lettres
     5.4 Création de boîtes aux lettres en masse (bulk insert)
     5.5 Gestion des listes d'adresses
     5.6 Gestion des dossiers publics
     5.7 Gestion des accès POP3 et IMAP4
     5.8 Gestion du routage des messages
     5.9 Sauvegarde d'un serveur Exchange 2007

 6. Les clients de messagerie nouvelle génération
     6.1 Introduction : Exchange Server 2007 et mobilité
     6.2 Le couple Outlook 2007 / Exchange 2007
     6.3 Principe de fonctionnement de la fonction "autoconnect"
     6.4 L’interface Web Outlook Web Access
     6.5 Configuration d'OWA côté serveur
     6.6 Mise en oeuvre d'Outlook Anywhere
     6.7 ActiveSync : les nouveautés
     6.8 Précisions sur la configuration du CAS

 7. La messagerie unifiée avec Exchange Server 2007
     7.1 Qu'est ce que la messagerie unifiée (UM) ?
     7.2 Installation du rôle "messagerie unifiée" et ajout de langues supplémentaires
     7.3 Configuration de la messagerie unifiée (UM)
     7.4 Vérification de la configuration à l'aide du TestPhone
     7.5 Présentation d'Outlook Voice Mail
     7.6 Messagerie unifiée et mobilité (ActiveSync, OWA)




En Savoir Plus 
Evaluez cet article 


Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft



Retrouvez ci-dessous les autres sections du Laboratoire Microsoft