Ajax HTML 5 JavaScript Création site CMS Comment Design Logiciels Programmation RSS SQL Scripts Mobiles
LOGICIELS & SERVICES
Windows 8
Internet Explorer 10
Edition HTML
Oracle vs PostgreSQL
Anti-virus
OUTILS & SCRIPTS
Outils du webmaster
Outils de design
Programmation

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

    Elle est intégrée. On peut taper une opération ou une formule mathématique et on obtient le résultat:

    PS> (2 + 3) * 5

    Doit afficher 25.
    En fait de nombreuses fonctions mathématiques sont disponibles avec la classe System.Math que l'on peut utiliser avec une commande telle que: PS> [System.Math]::Pow(2,3)

whatif

    Ce paramètre permet de voir ce que fait une commande sans l'exécuter réellement et donc sans aucun effet réel.
    Il suffit d'ajouter:

    -whatif

    à une commande quelconque pour qu'elle fonctionne en mode virtuel.

Transcript

    Cette fonctionnalité sauve automatiquement dans un fichier les commandes qui sont passées et les résultats obtenus. On démarre le mode transcript par:

    PS> Start-Transcript -Path chemin-nom-fichier

    (chemin-nom-fichier est le fichier du script avec son répertoire), et on le stoppe avec:

    PS> Stop-Transcript

Utiliser des applications

    On peut commander les applications de Windows à partir de la ligne de commande. Pour cela il faut créer un nouvel objet et passer le paramètre -com pour utiliser les fonctions de l'application.

    $nom = new-object -com nom-application.ocx

La voix

    Votre ordinateur peut parler, essayez la commande suivante:

    $spVoice = new-object -com "SAPI.spvoice"
    $spVoice.Speak("Hello the World!")
    

    J'utilise une phrase en anglais parceque la prononciation se fait en anglais et le français ainsi énoncé est plutôt comique!

Graphismes

    Powershell peut afficher des graphiques en résultats à des commandes.

Programmation

    Il est doté d'un vrai langage de script, proche de Bash sous Linux. La structure de contrôle foreach par exemple est implémentée. On peut définir des fonctions,
    Les commandes sont séparée par un point-virgule et peuvent donc être chaînées sur une même ligne.

Chainage (pipeline)

    Le symbole | permet d'appliquer une commande au résultat d'une autre. Par exemple pour appliquer la commande format-list ou format-table ou autre format, sur le résultat de la cmdlet get-service on tape:

      get-service | format-list

Création de fichiers

    Avec les commandes de format et la commande Out-file, qui redirige les résultats dans un fichier, il est possible de créer des fichiers de textes.

Alias

    On peut associer avec SetAlias un mot plus court à une commande, par exemple cls à Clear-Host pour simplifier ou utiliser les commandes auxquelles on est habitué.

Compatibilité Unix

    Certaines commandes de Unix sont reconnues par Powershell, comme ls qui équivaud à dir (mais les paramètres sont différents).

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.

  • Powershell Scripting. Site en français dédié à Powershell.
  • Aide mémoire.
  • Blog officiel. (Anglais).
Tweet
© 2007-2012 Scriptol.fr