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 cette ressource
Comment lutter contre le Phishing ?
Dans un environnement cyber en constante mutation, le phishing évolue vers des attaques toujours plus sophistiquées combinant IA, automatisation et industrialisation. Une réalité complexe qui exige des mesures de sécurité avancées et repensées au-delà de l’authentification multifacteur. Découvrez les réponses technologiques préconisées par les experts Eviden et les perspectives associées à leur mise en œuvre.
Les articles les plus consultés
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Activer la mise en veille prolongée dans Windows 10
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Et si les clients n’avaient plus le choix ?
- Cybersécurité Active Directory et les attaques de nouvelle génération
Les plus consultés sur iTPro.fr
- Fin de vie pour Windows Server Update Services ! Après ?
- Cycle des données d’IA : le rôle stratégique du stockage dans l’entreprise
- Comment sécuriser votre système d’impression ?
- DAF 2035 : principaux axes de transformation
- Les attaques par détournement de session : attention aux cookies et jetons de session