.. ================================================== .. FOR YOUR INFORMATION .. -------------------------------------------------- .. -*- coding: utf-8 -*- with BOM. =========== 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** .. image:: Capt-liste-param-process.PNG .. image:: 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** .. image:: 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 .. image:: Capt-exemple-pipe.PNG La commande Get-History permet de lister les commandes de la session active :Exercices: * :download:`Exo Commandes <../Exercices/E-122-2-Commandes.pdf>`