> Tech > Initiation à  Exchange Management Shell

Initiation à  Exchange Management Shell

Tech - Par iTPro - Publié le 24 juin 2010
email

La notion de provider n’est pas la seule chose impressionnante avec PowerShell. Il y a le snap-in ! C’est une librairie chargeable par PowerShell étendant ses fonctionnalités. C’est ainsi que nous en venons à Exchange 2007 ! En effet, afin d’administrer des serveurs Exchange 2007, un Snap-in contenant près de

Initiation à  Exchange Management Shell

400 Cmdlets dédiées à Exchange 2007 a été crée !

Après l’installation des outils d’administration, nous pouvons charger notre snap-in Exchange avec la commande suivante : Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin Ou bien, si vous lancez directement la console Exchange, le snap-in sera automatiquement chargé. Nous pouvons donc maintenant utiliser les Cmdlets dédiées à Exchange. Dans les prochains articles, nous administrerons Exchange 2007 avec PowerShell rôle serveur par rôle serveur. Mais il faut bien commencer par quelques bases !

Par conséquent, avant de rentrer dans le vif du sujet, nous devons au préalable passer par la case « langage objet » : surtout, pas de panique ! Rien de très compliqué. Dans la première partie de cet article, nous avons très brièvement comparé PowerShell avec les shells UNIX/Linux. Il y a cependant une énorme, gigantesque différence : alors que les commandes Unix/Linux ne retournent que du texte et l’affiche sur la sortie standard, PowerShell retourne des objets.

Mais qu’est ce qu’un objet ? C’est un ensemble de propriétés et de méthodes ! D’accord, ce n’est pas forcément plus clair… Si on compare un objet à une boîte alors les propriétés seraient par exemple sa couleur ou bien sa forme et les méthodes, les actions associées à cette boîte : fermer le couvercle, ouvrir le couvercle, etc…

Nous allons pouvoir modifier les propriétés et appeler les méthodes des objets ceci grâce au Framework .Net. En effet, PowerShell expose cette librairie afin que l’utilisateur puisse modifier les propriétés et utiliser les méthodes des objets. Mais concrètement ? Afin de récupérer la liste des services dont le nom contient le mot « exchange » nous allons utiliser un pattern (le caractère * remplace un ou plusieurs caractères).

Il est à noter que PowerShell n’est pas sensible à la casse (Figure 2). En mettant notre commande entre parenthèses, nous donnons la priorité à une instruction afin qu’elle soit interprétée en premier. Ensuite, dans notre exemple, nous avons ajouté un « point » suivi du mot « Count ». Ici, « Count » est une propriété de l’objet situé à gauche du « point ». Nous avons donc ici 17 services dont le nom contient le mot « exchange ».

Le fait de pouvoir manipuler des objets et non simplement du texte nous permet également d’appliquer des filtres précis : Get-Service –name ‘MSExchange*’ | Where- Object { $_.Status –eq ‘Stopped’ }

Cette commande liste les services dont le nom commence par « MS Exchange ». Le résultat de cette commande est une liste de services comme vu précédemment. On s’aperçoit ici qu’on utilise un « | » qui a exactement la même signification que sous les shells UNIX/Linux à savoir, le résultat de la commande à gauche du « pipe » est passé en paramètre à la commande à droite !

Par conséquent, le Cmdlet « Where-Object » utilise la liste de services passée par le « pipe » afin d’appliquer un filtre. Quel filtre ? Celui spécifié entre accolades : le statut du service doit être « Stopped ». Une dernière petite remarque… Il y a l’instruction suivante : « $_.Sta – tus » ; d’après ce que nous avons vu précédemment, ceci nous permet de récupérer la propriété « Status » de l’objet situé à gauche du « point ». Cet objet en question est symbolisé par « $_ » qui est successivement égal à chaque service de notre liste. On appelle cela une variable ; les variables en Power Shell sont préfixées par un « $ ». Un des aspects intéressant d’une variable est de mettre en cache les informations.

Il est possible de stocker en mémoire des objets afin de les traiter. Cela évite par exemple de faire plusieurs requêtes à un serveur et donc d’optimiser le traitement. Bien évidement, nous verrons cela en détail en temps voulu ! Nous savons maintenant que PowerShell est capable de filtrer sur les propriétés mais il peut également formater l’affichage grâce aux Cmdlets dédiées. Dans notre exemple (Figure 3), nous utilisons le Cmdlet « Format-Table » permettant d’afficher sous la forme d’un tableau la sortie d’une commande. Les colonnes de ce tableau sont les propriétés de l’objet que l’on passe en paramètre à notre Cmdlet.

Téléchargez gratuitement cette ressource

Endpoint Security : Guide de Mise en œuvre

Endpoint Security : Guide de Mise en œuvre

Détournement d’applications légitimes, élévation de privilèges, logiciels malveillants furtifs : comment les solutions de Endpoint Security permettent elles de faire face aux nouvelles techniques d'attaques complexes ? Découvrez, dans ce Guide Endpoint Security, les perspectives associées à leur mise en œuvre.

Tech - Par iTPro - Publié le 24 juin 2010