| Développé par | Microsoft |
|---|---|
| Première version | |
| Dernière version | 1.5 ()[1] 7.5.3 ()[2] |
| Dépôt | github.com/PowerShell/PowerShell,github.com/fleschutz/PowerShell etgithub.com/lazywinadmin/PowerShell |
| Assurance qualité | Intégration continue |
| Écrit en | C# et PowerShell |
| Système d'exploitation | Microsoft Windows, Windows Server(en),Ubuntu,Debian,CentOS,Red Hat Enterprise Linux,openSUSE,Fedora Linux,Arch Linux etmacOS |
| Environnement | Framework .NET |
| Formats lus | Windows PowerShell types (UTF-8)(d), Windows PowerShell types(d), Windows PowerShell formatting(d), Windows PowerShell formatting (UTF-8)(d), PowerShell Cmdlet Definition XML (UTF-8)(d), PowerShell Cmdlet Definition XML(d) et PowerShell script(d) |
| Formats écrits | Windows PowerShell types (UTF-8)(d), Windows PowerShell types(d), Windows PowerShell formatting(d), Windows PowerShell formatting (UTF-8)(d), PowerShell Cmdlet Definition XML (UTF-8)(d) et PowerShell Cmdlet Definition XML(d) |
| Type | Langage en ligne de commande(d) Langage interprété Interface système Interface en ligne de commande Application console(en) Langage de script |
| Licence | MIT Licence |
| Site web | PowerShell |
Windows PowerShell, anciennementMicrosoft Command Shell (MSH), nom de codeMonad, est unesuite logicielle développée parMicrosoft qui intègre uneinterface en ligne de commande, unlangage de script nommé PowerShell ainsi qu'unkit de développement. Il est inclus dansWindows 7,Windows 8.1,Windows 10 etWindows 11 (y compris les versions grand public) et s'appuie sur leframeworkMicrosoft .NET.
Windows PowerShell est le successeur des interfaces en ligne de commande DOS/Windows fournies par
On peut aussi mentionnerWindows Scripting Host (WSH), introduit en 1998, qui connut un certain succès auprès des administrateurs mais ne permet pas une utilisation interactive : les scripts peuvent être appelés depuis la ligne de commande, mais ils doivent être préalablement enregistrés dans un fichier. Aucune de ces interfaces n'est conforme àPOSIX 2 (POSIX étant une norme faite pour lesshells Unix qui eux ne sont pas orientés objet mais plutôt flux de texte à décomposer et à interpréter).
À l'origine, il était prévu que l'environnement Windows PowerShell soit inclus dansWindows Vista, mais finalement les deux logiciels ont été disjoints. Microsoft a publié une version beta le, unerelease candidate 1 le et unerelease candidate 2 le. La version finale a été publiée le. Windows PowerShell est également inclus dansMicrosoft Exchange Server 2007, sorti au quatrième trimestre 2006, ainsi que la plupart des produits Microsoft sortis depuis.
Windows PowerShell est compatible avec toutes les versions deWindows qui supportent la version 2.0 de .NET.
Depuis le, Windows PowerShell 1.0 pour Windows XP et Vista est distribué comme une mise à jour logicielle facultative par le serviceWindows Update de Microsoft. Il est intégré nativement dansWindows 7 en version 2.0[3]. Cette version propose une console d'édition de script intégré appeléWindows PowerShell ISE (pourintegrated scripting environment en anglais) qui apporte une solution de substitution à l'outilPowerGUI Script Editor développé par la sociétéQuest Software. Comme son homologue, Windows PowerShell ISE présente un environnement graphique qui permet l’édition de script aveccoloration syntaxique, affichage des numéros de ligne,débogueur intégré etaide en ligne.
DepuisWindows 8, PowerShell dispose d'une place plus prononcée au sein du système d'exploitation avec un raccourci dans toutes les fenêtres de l'explorateur de fichiers, dans le menu Fichier[4].
Le nom de codeMonad vient du livreMonadologie du philosopheLeibniz où il affirme que la réalité est composée d'éléments fondamentaux appelésmonades, qui sont intégrées dans une harmonie préétablie.
De façon analogue, Windows PowerShell est composé d'une série de tâches exécutées par une série de composants. Dans le cas présent, ces composants sont appeléscommandlets (abrégées encmdlets dans la console de commande), on rencontre aussi l'anglicismecommandelettes.
| PowerShell | ||
![]() | ||
| Date de première version | 2006 | |
|---|---|---|
| Paradigme | Multi-Paradigme:imperatif,orienté objet,fonctionnel etréflexif | |
| Auteur | Jeffrey Snover,Bruce Payette,James Truher (et al.) | |
| Développeur | Microsoft Corporation | |
| Dernière version | 1.5 ()[1] 7.5.3 ()[2] | |
| Typage | Fort,Sûr,Implicite etdynamique | |
| Influencé par | C#, DCL,ksh,Perl,Ruby,Lisp, CL,SQL,Command Prompt,Tcl | |
| Écrit en | C# et PowerShell | |
| Système d'exploitation | Microsoft Windows | |
| Licence | Licence MIT[5] | |
| Site web | microsoft.com/powershell | |
| modifier | ||
PowerShell est unlangage de script fondé sur laprogrammation orientée objet. Le logiciel PowerShell (fichier exécutablepowershell.exe) est l'interpréteur del’interface en ligne de commande de l'environnement de développement Windows PowerShell.
L'environnement Windows PowerShell ne propose pas seulement une suite de commandes d'administration et de gestion du système comme pouvait l’être certainsshells notamment son ancêtrecommand.com avec ses fichiersbatch, c'est aussi uninterprète delangage de script orienté objet[6].
Lescommandes PowerShell sont constituées d'un verbe ou préfixe et d'un nom séparés par untiret. Elles peuvent être suivies de paramètres. On les appelle descommandlets pourcommand applets en anglais ouphrases en français[réf. nécessaire]. Dans l'interface en ligne de commande elles sont abrégées encmdlets. On rencontre parfois l’anglicismecommandelettes[7].
L'utilisation d'instructions structurées comme des phrases permet de mémoriser plus simplement un grand nombre de commandes. Cette facilité est toutefois limitée, car elle s'applique uniquement aux personnes qui possèdent un minimum de vocabulaire anglais.
Exemple :
PS C:\> Get-HelpCette phrase qui signifie littéralement en français « Obtenir-Aide » affichera l'aide[8] du PowerShell après l'avoir validée avec latouche entrée dans la console de commande.
Le préfixe de la commandelette est appelé verbe[9] bien qu'il n'en soit pas toujours un. Il est appelé ainsi car il détermine l'action à effectuer sur les entités désignées dans la phrase.
À la base influencé par le langageTcl[10], PowerShell est plus proche des langages de script commePerl que de langages de shell, commeBash. Il n'y a aucune ressemblance entre le PowerShell et le langage batch des fichiers .BAT de DOS/Windows.
Le but de Microsoft est de faire un langage de script complètement intégré, avec autant de fonctionnalités que celles qui existent sousUnix (etLinux) et avec le même niveau de sécurité.
Par contre, les échanges entre composants se font sous forme d'objets et non pas de texte :
| PowerShell (Cmdlet) | PowerShell (Alias) | CMD.EXE /COMMAND.COM | Shell Unix | Description |
|---|---|---|---|---|
| Get-ChildItem | gci, dir, ls | dir | ls,dir | Liste les fichiers / répertoires du répertoire (courant) |
| Get-Content | gc, type, cat | type | cat | Obtenir le contenu d'un fichier |
| Get-Command | gcm | help | help,which | Liste des commandes |
| Get-Help | help, man | help | man | Aide |
| Clear-Host | cls, clear | cls | clear | Efface l'écran |
| Copy-Item | cpi, copy, cp | copy | cp | Copier un ou plusieurs fichiers / l'arborescence complète |
| Move-Item | mi, move, mv | move | mv | Déplacer un fichier / répertoire |
| Remove-Item | ri, del, erase, rmdir, rd, rm | del,deltree, erase,rmdir, rd | rm, rmdir | Supprimer un fichier / répertoire |
| Rename-Item | rni, ren, mv | ren, rename | mv | Renommer un fichier / répertoire |
| Get-Location | gl, pwd | cd | pwd | Afficher le répertoire de travail courant |
| Pop-Location | popd | popd | popd | Changer le répertoire courant vers le répertoire le plus récemment poussé sur la pile |
| Push-Location | pushd | pushd | pushd | Pousser le répertoire courant sur la pile |
| Set-Location | sl, cd, chdir | cd,chdir | cd | Changer le répertoire courant |
| Tee-Object | tee | NC | tee | Diriger l'entrée vers un fichier ou une variable, puis la passer dans un pipeline |
| Write-Output | echo, write | echo | echo | Afficher des chaînes, variables etc sur la sortie standard |
| Get-Process | gps, ps | tlist | ps | Liste de tous les processus en cours d'exécution |
| Stop-Process | spps, kill | kill | kill | Arrêter un processus en cours d'exécution |
| Select-String | sls, findstr | find, findstr | grep | Recherche d'une chaine de caractère |
| Set-Variable | sv, set | set | env, export, set, setenv | Définir la valeur d'une variable / créer une variable |
| Invoke-WebRequest | iwr, wget, curl | NC | wget,cURL | Obtient le contenu d'une page web |
PowerShell permet de gérer leschaînes de caractères avec des unités de 16 bits, comme cela se fait sur Windows, la plateforme .NET, Java et JavaScript.
PowerShell ne peut pas afficher les caractèresUnicode lorsqu'il est utilisé au travers deWindows console subsystem. Un contournement pour y arriver consiste à utiliser PowerShell ISE, une interface graphique[11].
Sur les autres projets Wikimedia :
| Concurrents | |
|---|---|
| Déclaratifs | |
| Fonctionnels | |
| Impératifs | |
| Orientés objet | |