mardi 27 janvier 2009

PowerShell 2 : Introduction

PowerShell est un outil en ligne de commande capable d’administrer une machine sous Windows. Voilà une définition très formelle, presque marketing… :)

La théorie c’est fantastique, cependant dans ce blog vous trouverez aussi beaucoup de pratique !

Mais avant, pour mon premier message nous allons mettre en place un environnement simple pour tester nos futurs scripts PowerShell.

Vous le savez sûrement, PowerShell est en version 1.0 ! Et bien nous n’utiliserons pas cette version… Mais la version 2 actuellement en cours de développement (CTP 3) !
Tant qu’à faire, autant s’investir sur la dernière version qui nous offre des possibilités très intéressantes que nous découvrirons au fur et à mesure.

Bref, la première chose à faire est de s’assurer que nous avons Windows XP SP3 ou Windows Server 2003 SP2 minimum comme système d’exploitation. Sachez cependant que certaines fonctionnalités de PowerShell V2 ne sont exploitables qu’à partir de Windows Vista SP1 et Windows Server 2008.

Ensuite, nous devons désinstaller toute version précédente de PowerShell si elles existent sur notre système puis nous pouvons enfin télécharger et installer ce dont nous avons besoin :

1. Framework .NET 2.0 : PowerShell rend accessible cette librairie en ligne de commande !
2. Framework .NET 3.5.1 : Si nous voulons utiliser l’éditeur intégré de PowerShell ; et nous le voulons !
3. PowerShell V2 CTP3 : notre outil en ligne de commande ainsi qu’un éditeur ; tout en un !
4. WinRM 2.0 CTP3 : pour utiliser les fonctionnalités d’administration à distance de PowerShell V2.

Une fois ces 4 composants installés dans l’ordre donné, nous allons commencer à nous amuser avec nos nouveaux jouets qui deviendront très vite indispensables… :)

Je ne vais pas m’étendre sur comment utiliser PowerShell ou l’environnement de script intégré (que j’ai appelé « éditeur » précédemment), ce n’est pas le but ici !
Cependant je vais tout de même expliquer en quelques mots comment « configurer » PowerShell pour utiliser les fonctionnalités d’administration à distance grâce à WinRM 2.0 !

WinRM est une implémentation faite par Microsoft du protocole WS-Management qui permet d’accéder à des machines distantes en utilisant le protocole HTTP ou HTTPS. Voilà qui est dit…

Bref, en pratique, c’est un service installé sur la machine que l’on doit démarrer… avec PowerShell !

Donc, dans une session PowerShell lancée en tant qu’administrateur local de la machine, taper la commande :

PS> Start-Service WinRM

Nous pouvons à présent utiliser le provider WSMan de PowerShell V2 pour la configuration. Pour administrer une machine distante avec PowerShell V2, la machine distante doit également avoir PowerShell V2 installé ! Dans ce cas, PowerShell agit comme une application client / serveur se connectant sur un port donné (par défaut 80).
Nous allons donc dire à notre PowerShell d’écouter sur un port précis :

PS> cd WSMan:\localhost\Listener                          
PS> New-Item –Path . –Address * -Transport HTTP –Port 8080

A ce stade, PowerShell utilisera le protocole HTTP et le port 8080 sur toutes les interfaces réseaux pour écouter et envoyer les requêtes provenant ou à destination d’autres machines ayant PowerShell V2.

Cette opération est donc à répéter sur toutes les machines que nous voulons administrer à distance.

Nous avons donc maintenant un petit environnement dans lequel nous exercer un peu…
Biensûr, je n’ai fait qu’effleurer le sujet pour le moment mais nous aurons l’occasion de découvrir plus en détail PowerShell V2 dans les prochains jours. Cependant, nous avons vu le minimum pour commencer à nous amuser avec notre outil !

Aucun commentaire:

Enregistrer un commentaire