Powershell, une nouvelle fenêtre de commandes Unix sous Windows

Avec un air de Linux, Powershell est une fenêtre de commande pour Windows dans le style Unix, mais avec un langage de script orienté objet.

Ce successeur à l'antique fenêtre MS-DOS offre des fonctions de scripting évoluées sous Windows depuis XP. Sa conception est orientée objets.

Il est passé en avril 2011 sous licence Community Promise, ce qu'il fait qu'il devient libre et peut être implémenté sous toute plateforme. Donc sous Linux, ce qui a été fait avec le projet Pash qui fonctionne sur Mono mais pas mis à jour depuis 2008.

Un outil de script et d'administration

La fenêtre de lignes de commande si familière aux utilisateurs d'Unix ou Linux, ou de MS-DOS et que l'on appelle d'ailleurs souvent fenêtre MS-DOS, ne disparaît pas sous Vista, au contraire elle se rapproche de ce que propose Linux et se modernise avec des fonctions très puissantes. En outre elle est également disponible pour Windows XP grâce à un téléchargement sur le site de Microsoft.
Le nom de code était Monad par référence au terme utilisé par Leibniz dans une philosophie qui conçoit le monde comme des composants, les monades, en interaction et en harmonie.
Powershell permet d'administrer un ordinateur, il gère les processus et les sessions notamment, les utilisateurs connectés, toute la gestion de réseau, et remplace donc Perl.

Powershell

Quelques exemples de fonctions innovantes dans Powershell

Powershell donne accès à la plupart des fonctions de Windows, cela inclut les services, les applications, la voix. En outre son affichage n'a plus rien à voir avec celui de MS-DOS, il peut se faire en graphiques...

La calculatrice

whatif

Transcript

Utiliser des applications

La voix

Graphismes

Programmation

Chainage (pipeline)

Création de fichiers

Alias

Compatibilité Unix

Un accès aux données du système

Powershell retourne toutes les informations désirées sur le Bios, le processeur, et tous les composants du système informatique, sur le système d'exploitation, les logiciels, les mises à jour, etc.
Essayer par exemple la commande suivante:

Get-WmiObject -Class Win32_BIOS -ComputerName .

sans oublier le point à la fin, et vous saurez tout sur le BIOS de votre ordinateur!
Pour connaître l'espace libre sur les disques durs, essayez:

Get-WmiObject -Class Win32_LogicalDisk

De nombreux autres exemples sont fournis dans le guide d'utilisation.

Les cmdlets étendent le langage de base

Les "commandlets" sont des applications internes qui donnent accès aux ressources de Windows.
Le paramètre New-Object précédemment utilisé est une cmdlet. Tous les noms de cmdlets sont composés deux mots séparés par un tiret.
Tapez par exemple:

PS c:\get-service

et vous obtenez la liste de tous les services disponibles sous Windows.
Les cmldlets se passent les résultats sous forme d'objets tandis que sous Unix ils sont transmis entre commandes chaînées sous forme de texte. Mais les résultats sont donnés sous forme de texte lorsqu'ils sont affichés sur l'écran.

Plus d'informations

Le téléchargement se fait à partir de la centrale de téléchargement sur le site de Microsoft. L'archive contient un guide de l'utilisateur en français et un aide-mémoire du langage de script Windows Powershell.
Noter qu'il faut aussi installer .NET framework 2.0 pour avoir accès à Powershell sur XP mais cela est totalement inutile sur Windows 7.