Aperçu de l'environnement de ligne de commande Exchange Management Shell

 

Dernière rubrique modifiée : 2007-01-31

Par David Strome

Nouveauté de Microsoft Exchange Server 2007, l'environnement de ligne de commande Exchange Management Shell est une puissante interface de gestion, basée sur la technologie Microsoft Windows PowerShell. L'environnement de ligne de commande Exchange Management Shell permet d'exécuter toutes les tâches disponibles dans la console de gestion Exchange et celles que vous ne pouvez pas exécuter dans la console de gestion Exchange. De plus, lorsque vous exécutez une tâche dans la console de gestion Exchange, la même commande devient disponible pour l'environnement de ligne de commande Exchange Management Shell et est appelée pour traiter la demande.

La figure 1 présente l'environnement de ligne de commande Exchange Management Shell en action.

Figure 1   Environnement de ligne de commande Exchange Management Shell

Environnement de ligne de commande Exchange Management Shell affichant un déplacement de boîte aux lettres

À première vue, l'interface de commande interactive peut sembler déconcertante pour les personnes peu familiarisées avec les lignes de commande. Toutefois, voyons ce qu'elle permet de faire et à quel point il est facile de l'utiliser :

  • Sûreté et facilité d'utilisation des scripts   La console de gestion Exchange Management ne se limite pas à utiliser l'environnement de ligne de commande Exchange Management Shell pour exécuter des opérations. Les assistants vous montrent les commandes de l'environnement de ligne de commande Exchange Management Shell qu'ils exécutent. Vous pouvez copier les commandes créées par les assistants et les coller directement dans la ligne de commande ou dans un script. Après avoir modifié les paramètres à votre guise, testez vos scripts ou commandes à l'aide du paramètre WhatIf qui permet de voir les résultats avant d'apporter des modifications à l'environnement.

    Modifier des paramètres ? WhatIf ? Cela vous paraît compliqué ? Ne vous inquiétez pas ! Consultez la section « Utilisation de l'environnement de ligne de commande Exchange Management Shell » dans la documentation sur Microsoft Exchange Server 2007. Vous serez opérationnel en un rien de temps.

  • Clarté et simplicité   Nous utilisons des paires verbe-nom (en anglais) cohérentes pour identifier clairement la fonction ou le composant géré et l'action exécutée. Il n’est plus nécessaire de deviner l'action d'une cmdlet. Lorsque vous voyez la cmdlet Move-Mailbox, vous comprenez précisément son usage. (Exact. Elle permet de déplacer des boîtes aux lettres !)

  • Maximisation de vos ressources et de votre temps, pas de votre frustration   L'environnement de ligne de commande Exchange Management Shell offre une plate-forme de création de scripts puissante et flexible pouvant s'intégrer avec vos solutions de script actuelles, qui vous permet de communiquer de façon native avec des sources de données telles que COM et Windows Management Instrumentation (WMI). Utilisez vos ressources et votre temps intelligemment pour créer des solutions utiles au lieu de créer la structure permettant de les prendre en charge.

  • Répétez après moi : Plus d'analyse de texte !   Basées sur Microsoft .NET, les cmdlets de l'environnement de ligne de commande Exchange Management Shell acceptent et renvoient des données structurées au lieu de texte brut. Vous pouvez ainsi transférer aisément des données sans devoir procéder à une analyse de texte confuse. Il est même possible de convertir des fichiers CSV et XML en objets que vous pouvez manipuler et consommer en une seule ligne.

Quelques concepts de base

Avant de commencer à utiliser l'environnement de ligne de commande Exchange Management Shell, il est utile d'assimiler quelques concepts de base.

  • Technologie Windows PowerShell sous-jacente   Windows PowerShell est une nouvelle interface de ligne de commande puissante et extrêmement flexible, basée sur .NET Framework. Elle associe les meilleurs interpréteurs de commandes à de nouvelles fonctions remarquables. PowerShell est conçue pour héberger d'autres applications, tout comme la console MMC (Microsoft Management Console) agit comme hôte pour les divers composants logiciels enfichables intégrés aux applications installées sur un ordinateur. L'environnement de ligne de commande Exchange Management Shell est le premier composant logiciel enfichable Microsoft PowerShell publié.

  • Cmdlets   Une cmdlet (prononcez « command-let ») est la plus petite unité de fonctionnalité dans l'environnement de ligne de commande Exchange Management Shell. Les cmdlets ressemblent à des commandes intégrées dans d'autres interpréteurs de commandes, par exemple, la commande Dir dans cmd.exe. Comme ces commandes familières, les cmdlets peuvent être appelées directement depuis la ligne de commande d'Exchange Management Shell et exécutées dans le contexte de l'interpréteur de commandes, pas comme processus à part. À la différence des autres interpréteurs de commandes, dans l'environnement de ligne de commande Exchange Management Shell, les cmdlets portent des noms descriptifs sous forme de paires verbe-nom (en anglais). Le verbe décrit l'action qu'exécute la cmdlet et le nom décrit le composant ou la fonction sur lequel porte l'action. Par exemple, la cmdlet New-SystemMessage permet de créer une notification d'état de remise ou des messages de quota sur des ordinateurs sur lesquels le rôle serveur de transport Hub est installé.

    Pour plus d'informations sur des cmdlets spécifiques, consultez la section « Environnement de ligne de commande Exchange Management Shell » dans le noeud Référence technique de l'Aide d'Exchange 2007.

  • Paramètre Identity et paramètres positionnels   Les paramètres sont des éléments qui fournissent des informations à la cmdlet, soit en identifiant un objet et ses attributs sur lesquels agir, soit en contrôlant la manière dont la cmdlet exécute sa tâche. Vous pouvez utiliser le paramètre Identity avec la plupart des cmdlets Exchange. Le paramètre Identity donne accès aux identificateurs uniques correspondant à un objet particulier d'Exchange 2007. Cela vous permet d'exécuter des actions sur un objet Exchange spécifique en utilisant la valeur unique qui présente le plus d'intérêt pour vous.

    Le paramètre Identity est un ensemble de valeurs provenant d'autres paramètres. Ces valeurs sont garanties uniques dans cet ensemble d'objet. Vous pouvez spécifier les valeurs des autres paramètres, par exemple Name et DistinguishedName, ou laisser le système les générer, tel le GUID. Les paramètres supplémentaires éventuellement utilisés et la manière dont ils sont renseignés dépend de l'objet auquel vous faites référence.

    Le paramètre Identity est également considéré comme paramètre positionnel. Un paramètre positionnel est un paramètre qui permet de spécifier la valeur du paramètre sans spécifier le nom du paramètre. Un paramètre est un paramètre positionnel si l’attribut Parameter Position est un nombre entier. Ce nombre entier indique la position de la ligne de commande où la cmdlet peut trouver la valeur du paramètre. Comme Identity est un paramètre positionnel qui réside dans la position 1 qui est la première position, toute valeur entrée dans cette position sans nom de paramètre est considérée comme une valeur du paramètre Identity.

    Qu'est-ce que cela signifie ? Cela réduit le nombre de frappes lorsque vous tapez des commandes. Par exemple, Get-Mailbox "Kim Akers" exécute la même action que Get-Mailbox -Identity "Kim Akers".

  • Canalisation    Dans l'environnement de ligne de commande Exchange Management Shell, la canalisation est l’action d’une cmdlet qui utilise la sortie d’une autre cmdlet lorsqu’elle exécute une opération. Vous pouvez utiliser une canalisation pour enchaîner plusieurs cmdlets. Cela signifie que vous pouvez prendre des composants de petite taille et les convertir en quelque chose de plus puissant. Par exemple, une cmdlet permet de collecter des données et de les transmettre à une deuxième cmdlet qui filtre les données dans un sous-ensemble, puis les transmet à une troisième cmdlet qui agit uniquement sur le sous-ensemble, comme dans l'exemple suivant qui déplace toutes les boîtes aux lettres de la base de données Sales vers la base de données Research sur le même serveur :

    Get-MailboxDatabase Sales | Get-Mailbox | Move-Mailbox -TargetDatabase Research
    

    De quelle façon le symbole de canalisation « | » est-il utilisé ? La base de données de boîtes aux lettres Sales est d'abord extraite à l'aide de la cmdlet Get-MailboxDatabase et l'objet qui en résulte est canalisé vers la cmdlet Get-Mailbox. Ensuite, toutes les boîtes aux lettres de la base de données Sales sont extraites par la cmdlet Get-Mailbox. L'ensemble de boîtes aux lettres obtenu est canalisé vers la cmdlet Move-Mailbox qui déplace les boîtes aux lettres vers la base de données de boîtes aux lettres Research. Cette commande est présentée à la figure 1 ci-avant dans cet article.

    Tous les verbes du même ensemble nom-cmdlet peuvent utiliser les informations canalisées à partir d'une autre commande. Certains ensembles nom-cmdlet permettent également de transférer des données via le pipeline vers un autre ensemble nom-cmdlet. « Ensemble nom-cmdlet » ? Qu'est-ce que c'est ? Toutes les cmdlets de l'environnement de ligne de commande Exchange Management Shell qui gèrent une fonctionnalité particulière partagent le même nom, par exemple Mailbox ou AddressList. Pour obtenir la liste de toutes les cmdlets classées par nom, consultez la liste des cmdlets.

Démarrage de l'environnement de ligne de commande Exchange Management Shell

Les composants logiciels enfichables Windows PowerShell sont des ensembles de cmdlets utilisés pour administrer une application ou un composant majeur. Si vous ne chargez pas le composant logiciel enfichable pour l'application spécifique, vous ne pouvez pas utiliser les cmdlets qui y sont associées.

Qu'est-ce que cela signifie pour vous ? Si vous démarrez PowerShell sans charger le composant logiciel enfichable de l'environnement de ligne de commande Exchange Management Shell, puis tentez d'émettre une cmdlet de l'environnement de ligne de commande Exchange Management Shell telle que Get-Mailbox, vous obtenez un message d'erreur. Pourquoi ? La cmdlet Get-Mailbox n'existe pas dans le jeu principal de cmdlets PowerShell.

Commençons donc par le début : Ouvrons l'environnement de ligne de commande Exchange Management Shell. Cliquez sur Démarrer, Programmes, Microsoft Exchange Server 2007, puis sur Environnement de ligne de commande Exchange Management Shell.

Pour des informations da base sur le démarrage, consultez la page relative aux nouvelles fonctionnalités d'administration dans l'environnement de ligne de commande Exchange Management Shell.

Accès à l'Aide en cas de besoin

Pour Exchange 2007, l'équipe Microsoft Exchange User Education a élaboré un important corpus de documentation, disponible dans l'environnement de ligne de commande Exchange Management Shell et dans le fichier d'aide d'Exchange Server 2007 accessible dans la console de gestion Exchange et en ligne.

Dans l'interpréteur de commandes, vous constaterez que la cmdlet Get-Help est une ressource inestimable lorsque vous apprenez à naviguer dans l'environnement de ligne de commande Exchange Management Shell. Veillez à consulter la section Opérations dans le fichier d'aide d'Exchange Server 2007. Elle inclut des dizaines de rubriques procédurales qui vous aident à exécuter la plupart des tâches administratives à l'aide de l'environnement de ligne de commande Exchange Management Shell et de la console de gestion Exchange. Vous pouvez accéder au fichier d'aide d'Exchange Server 2007 à partir du menu Démarrer d'Exchange 2007 et en ligne à partir de la page Microsoft Exchange Server 2007.

Aide dans l'interpréteur de commandes

Dans l'interpréteur de commandes, utilisez la cmdlet Get-Help pour accéder à l'aide spécifique à une cmdlet dans divers formats. Tapez Get-Help pour afficher des informations d'aide générales. La cmdlet Get-Help est encore plus puissante lorsque vous l'utilisez en combinaison avec des paramètres.

Pour obtenir de l'aide sur une cmdlet spécifique, tapez Get-Help, suivi de la cmdlet sur laquelle vous voulez obtenir des informations, par exemple Get-Help Get-SystemMessage. Par défaut, l'interpréteur de commandes affiche une description de la cmdlet et de sa syntaxe. Elle supprime d'autres sections que les administrateurs ne peuvent pas tous utiliser.

Vous pouvez contrôler les informations présentées à l'aide des paramètres Detailed, Full et Example. Ajoutez-les simplement à la fin de la commande. Par exemple, la cmdlet Get-Help –Full renvoie toutes les sections d'aide disponibles sur une cmdlet. Essayez les commandes par vous-même pour voir les informations qui s'affichent sur vos cmdlets favorites.

Si vous souhaitez obtenir des informations sur un ou plusieurs paramètres spécifiques d'une cmdlet, vous pouvez utiliser le paramètre Parameters avec la cmdlet Get-Help. Par exemple, si vous voulez afficher tous les paramètres et leurs descriptions en relation avec le cmdlet Set-Mailbox , qui contiennent le mot « quota », tapez Get-Help Set-Mailbox –Parameter *quota*.

Vous pouvez également afficher la liste des cmdlets qui gèrent un rôle serveur ou une fonction de composant spécifique, ou qui affectent des objets dans une certaine portée de fonctionnalités. Vous pouvez le faire en utilisant la cmdlet Get-Help et trois paramètres : Role, Component et Functionality. Lorsque vous utilisez la cmdlet Get-Help avec ces paramètres, n'oubliez pas d'entourer les valeurs que vous spécifiez avec ces paramètres de caractères génériques (*). Voici des exemples d’appel de Get-Help avec chaque paramètre :

  • Get-Help -Role *Mailbox*

  • Get-Help -Component *Recipient*

  • Get-Help -Functionality *Server*

La rubrique « Obtenir de l'aide » dans le fichier d'aide d'Exchange Server 2007 présente l'ensemble des valeurs de rôle, de composant et de fonctionnalité que vous pouvez utiliser.

Mise en forme de la sortie d'une commande

Par défaut, lorsque la sortie d'une commande s'affiche à l'écran, l'environnement de ligne de commande Exchange Management Shell affiche uniquement un sous-ensemble des propriétés disponibles pour chaque objet. Pourquoi ? Chaque objet peut contenir des dizaines de propriétés et vous voulez optimiser la sortie de la commande en fonction de vos besoins. Vous pouvez aisément accéder à toutes ces propriétés et les afficher en canalisant la sortie d'une commande vers les trois cmdlets de mise en forme suivantes : Format-List, Format-Table et Format-Wide.

Format-List et Format-Table étant les cmdlets les plus fréquemment utilisées, examinons-les de plus près.

La cmdlet Format-List prend l’entrée dans le pipeline et produit une liste de colonnes verticale de toutes les propriétés spécifiées pour chaque objet. Vous pouvez spécifier les propriétés que vous voulez afficher à l'aide du paramètre Property qui est un paramètre positionnel. Si vous invoquez la cmdlet Format-List sans spécifier de paramètre, toutes les propriétés sont sorties. La cmdlet Format-List insère des retours automatiques dans les lignes au lieu de les tronquer. L’une des meilleures utilisations de la cmdlet Format-List est la réécriture de la sortie par défaut d’une cmdlet afin de pouvoir extraire des informations supplémentaires ou plus spécifiques, comme dans l'exemple Get-DistributionGroup | Format-List Name, *OnlyFrom, PrimarySmtpAddress, *Size*. La figure 2 montre la sortie de cette commande.

Figure 2   Exemple de sortie de Format-List

Exemple de sortie pour la cmdlet Format-Table

La cmdlet Format-Table permet d’afficher des éléments dans un format tableau avec des en-têtes libellés et des colonnes de données de propriété. Par défaut, de nombreuses cmdlets, telles que Get-Mailbox etGet-JournalRule, utilisent le format tableau pour la sortie. La cmdlet Format-Table peut notamment être associée aux paramètres Properties et GroupBy. Ces derniers fonctionnent exactement comme avec la cmdlet Format-List. Pour afficher les longues lignes d'informations de propriété entièrement au lieu de les tronquer, utilisez le paramètre Wrap avec la cmdlet Format-Table, comme dans l'exemple suivant : Get-Mailbox -Database Research | Format-Table Name, ProhibitSendQuota, Database -Wrap. La figure 3 illustre la sortie de cette commande.

Figure 3   Exemple de sortie de Format-Table

Exemple de sortie pour la cmdlet Format-Table

Vous pouvez également associer le caractère générique « * » avec un nom de propriété partiel aux cmdlets Format-List et Format-Table, comme illustré à la figure 2. Si vous incluez un caractère générique, vous pouvez établir la correspondance avec plusieurs propriétés sans devoir taper chaque nom de propriété individuellement. Par exemple, Get-Mailbox | Format-List -Property Email* renvoie toutes les propriétés commençant par Email. Moins de travail de saisie et plus de temps pour utiliser Exchange 2007 !

Pour plus d'informations

Pour plus d'informations sur Exchange 2007 et l'environnement de ligne de commande Exchange Management Shell, consultez les ressources suivantes :

e20b37a2-3200-4bd5-af71-09c580f78091 David Strome - Rédacteur technique, Microsoft Exchange Server

-