====== PowerShell ======
===== CmdLets =====
\\
==== Lister les Modules ====
Un module est un package qui contient des membres PowerShell, tels que des applets de commande, des fournisseurs, des fonctions, des workflows, des variables et des alias.
* **Lister les modules chargés dans la session courante**
PS C:\> Get-Module
* **Lister les modules disponibles**
PS C:\> Get-Module -ListAvailable
* **Vérifier la présence d'un module spécifique**
PS C:\> Get-Module -ListAvailable -Name NTFSSecurity
* **Installer un module**
PS C:\> Install-Module NTFSSecurity -Confirm:$false -Force
* **Supprimer un module**
PS C:\> Remove-Module NTFSSecurity
* **Liste des modules installés par défaut avec PowerShell**
^CimCmdlets |contient des applets de commande qui interagissent avec des serveurs Common Information Model (CIM) comme le service Windows Management Instrumentation (WMI) |
^Microsoft.PowerShell.Archive |Module d'archivage qui fournit des fonctions pour stocker des fichiers dans des archives ZIP |
^Microsoft.PowerShell.Core |The Core module contains cmdlets and providers that manage the basic features of PowerShell |
^Microsoft.PowerShell.Diagnostics |contient des applets de commande qui gèrent les données à partir des journaux des événements |
^Microsoft.PowerShell.Host |The Host module contains cmdlets that manage data from host programs |
^Microsoft.PowerShell.Management |The Management module contains cmdlets that help you manage Windows in PowerShell |
^Microsoft.PowerShell.Security |The Security module contains cmdlets and providers that manage the basic security features of Windows |
^Microsoft.PowerShell.Utility |This module contains cmdlets that manage the basic features of PowerShell |
^Microsoft.WSMan.Management |The WSMan module contains cmdlets and providers that manage the WS-Management protocol in PowerShell |
^PackageManagement |PackageManagement est un agrégateur pour les gestionnaires de packages de logiciels |
^PowerShellGet |Le module PowerShellGet contient des applets de commande pour la découverte, l’installation, la mise à jour et la publication des packages PowerShell à partir de PowerShell Gallery |
^PSDesiredStateConfiguration |This module contains cmdlets that designed to work with DSC Resources |
^PSDiagnostics |The PowerShell Diagnostics Module contains a set of cmdlets that enables the use of ETW tracing in PowerShell on Windows |
^PSReadline |PSReadLine fournit une expérience d’édition de ligne de commande améliorée dans la console PowerShell |
\\
==== Lister les CmdLets ====
* **Afficher toutes les CmdLets (commandes) disponibles sur le système**
PS C:\> Get-Command
* **Afficher les CmdLets contenant un terme particulier**
__exemple__ : commandes Get qui contiennent "*Win*"
PS C:\> Get-Command -Verb Get -Noun *win*
# ou
PS C:\> Get-Command -Name Get*win*
* **Afficher les CmdLets d'un module spécifique**
__exemple__ : commandes du module Dism
PS C:\> Get-Command -Module Dism
* **Afficher les propriétés et méthode d'un CmdLet**
Fonctionne aussi sur une variable qui contient le résultat d'une commande.
PS C:\> Get-Location | Get-Member
ou
PS C:\> $lecteur = Get-PSDrive -Name C
PS C:\> $lecteur | Get-Member
\\
==== Obtenir de l'aide sur un CmdLet ====
PS C:\> Get-Help CmdLet
Forcer la récupération des mises à jour de fichiers d'aide en français
PS C:\> Update-Help -Force -Module Microfost.powershell.management -UICulture fr-FR
Afficher des exemples pour une commande
PS C:\> Get-Help Get-Alias -examples
\\
==== Filtrer le résultat d'une commande ====
On peut utiliser le CmdLet ''**Where-Object**''
* Afficher tous les alias dont le nom commence par la lettre g
PS C:\> Get-Alias | Where-Object {$_.Name -like 'g*'}
* Afficher tous les alias dont la définition est Get-ChildItem
PS C:\> Get-Alias | Where-Object {$_.Definition -like '*Get-ChildItem'}