2-Commandes

Powershell a uniformisé les commandes en les définissant avec un verbe, qui donne l’action, suivi d’un tirait, puis d’un nom : verbe-nom

On les nomme Cmdlet (prononcée command-let) et l’écriture française commandelette

  • Get-Service => obtenir les services

  • Get-Process => obtenir les processus

  • Get-Help => obtenir l’aide

  • Get-Command => obtenir les commandes

  • Stop-Service => arrêter les services

  • Stop-Process => arrêter les processus

  • New-Item => Créer un objet

  • Set-ExecutionPolicy => Définir la politique de sécurité

  • Clear-Host => Efface le contenu de la console

Les verbes sont toujours les mêmes dans le sens où lorsque l’on veut obtenir une information c’est toujours le verbe Get ou Stop, si l’on veut arrêter

C’est le même principe pour le nom, c’est toujours Service ou Process, ce n’est pas au pluriel ou en français!

Des paramètres sont définis pour toutes les commandes : -Confirm, -Debug, -Whatif, -ErrorAction, -Verbose, -Force…

Pour chaque cmdlet, il y a une liste de paramètres. Exemple avec Get-Process et Get-Service

../_images/Capt-liste-param-process.PNG ../_images/Capt-liste-param-service.PNG

Par exemple, obtenir les services qui ont comme première lettre w

Get-Service -Name w*

Ou bien, arrêter le service Client Impero, avec une confirmation

Stop-Process -Name ImperoClientSVC -Confirm

Il y a plusieurs types de Cmdlet (CommandType) : Cmdlet, Function, Alias, Application, Script

Les Cmdlet sont écrites dans un langage de programmation .Net et sont compilées

  • Remove-Item

  • Start-Service

Une Function est écrite en Powershell et n’est pas compilée. Il est possible d’ajouter ses propres fonctions dans celles du système

  • ImportSystemModule

  • C:

  • Clear-Host

Un alias est un raccourci

  • ls => Get-ChildItem

Il y a 3 commandes de bases à connaître

Get-Help:

Donne les informations sur une commande ainsi que la syntaxe.

C’est identique à Get-Service -?

Get-Help Get-Service
Get-Command:

Liste les commandes disponibles

Par exemple, liste les commandes qui contiennent le nom service

Get-Command *service*

On fait la différence entre le paramètre -Noun et le -Name

../_images/Capt-param-name-noun.PNG

Dans le cas de -Noun, la recherche sur la partie nom de la cmdlet. De la même façon on peut obtenir les commandes avec un verbe défini -Verb

Get-Command -Verb Write
Get-Member:

Donne le type, les propriétés et les méthodes pour un objet Il y a cependant une particularité pour cette commande. Elle a besoin d’être appliquée sur un objet… donc on utilise le pipe ou | (AltGr + 7)

Par exemple, on a pour la cmdlet Get-Service

Get-Service | Get-Member
Pipe:

Le pipe (tube en français) permet de transmettre le résultat d’une commande à une autre commande

On obtient les services qui commence par la lettre w, affichés sous format d’une table à 2 colonnes avec le nom et l’état associé

Get-Service w* | Format-Table Name, Status

Un autre exemple est celui d’un tri sur une arborescence

../_images/Capt-exemple-pipe.PNG

La commande Get-History permet de lister les commandes de la session active

Exercices: