| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| powershell_base3 [2019/03/26 10:48] – [Les cmdlets] nekan | powershell_base3 [2021/03/05 15:53] (Version actuelle) – nekan |
|---|
| ====== Les bases de Powershell - 3ème partie ====== | ====== Les bases de Powershell - 3ème partie ====== |
| | <label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2019/02/24 22:24// |
| |
| On continue avec les bases du langage Powershell. | On continue avec les bases du langage Powershell. |
| ^ Cmdlet ^ Explication ^ Référence ^ | ^ Cmdlet ^ Explication ^ Référence ^ |
| | Get-Member | Liste les éléments, propriétés et/ou méthodes d'un objet | [[https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Get-Member?view=powershell-6|Microsoft]] | | | Get-Member | Liste les éléments, propriétés et/ou méthodes d'un objet | [[https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Get-Member?view=powershell-6|Microsoft]] | |
| | Get-ChildItem | Liste les objets contenu dans un répertoire, l'équivalent de ''ls'' et de ''dir'' | [[https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Management/Get-ChildItem?view=powershell-6|Microsoft]] | | | Get-ChildItem | Liste les objets contenu dans un répertoire, l'équivalent de ''ls -l'' et de ''dir'' | [[https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Management/Get-ChildItem?view=powershell-6|Microsoft]] | |
| | New-Item | Crée un nouveau fichier | [[https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Management/New-Item?view=powershell-6|Microsoft]] | | | New-Item | Crée un nouveau fichier | [[https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Management/New-Item?view=powershell-6|Microsoft]] | |
| | Export-Csv | Exporte des données vers un fichier CSV | [[https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Export-Csv?view=powershell-6|Microsoft]] | | | Export-Csv | Exporte des données vers un fichier CSV | [[https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Export-Csv?view=powershell-6|Microsoft]] | |
| |
| Exemple 1 : | Exemple 1 : |
| <code:ps1># On déclare la fonction avec son nom et la variable qui correspond à son argument | <sxh powershell># On déclare la fonction avec son nom et la variable qui correspond à son argument |
| Function Get-PCOnlineStatus($PC) | Function Get-PCOnlineStatus($PC) |
| { | { |
| # Plus tard dans le code, on peut appeler la fonction. | # Plus tard dans le code, on peut appeler la fonction. |
| Get-PCOnlineStatus(PC-COMPTA-1) | Get-PCOnlineStatus(PC-COMPTA-1) |
| </code> | </sxh> |
| |
| Exemple 2 : | Exemple 2 : |
| <code:ps1># On déclare la fonction avec son nom sans variable | <sxh powershell># On déclare la fonction avec son nom sans variable |
| Function Get-PCOnlineStatus() | Function Get-PCOnlineStatus() |
| { | { |
| } | } |
| | |
| # Plus tard dans le code, on peut appeler la fonction. | # Plus tard dans le code, on peut appeler la fonction sans paramètres grâce aux conditions positionnelles. |
| Get-PCOnlineStatus "PC-DIR-1" | Get-PCOnlineStatus "PC-DIR-1" |
| </code> | |
| | # On pourra aussi appeler la fonction grâce à ses paramètres nommées. |
| | Get-PCOnlineStatus -PC "PC-DIR-1"</sxh> |
| | |
| | ==== Les caractéristiques des paramètres ==== |
| | |
| | Il existe de nombreuses caractéristiques définissables pour un paramètre dans une fonction. Voici les principales : |
| | |
| | |< 100% 20% 50% 30% >| |
| | ^ Caractéristiques ^ Explication ^ Exemple ^ |
| | | Mandatory | Désigne par $true ou $false si le paramètre est obligatoire dans l'appel de la fonction. | <sxh powershell>[Parameter(Mandatory=$true)]$PC</sxh> | |
| | | Position | Indique la position de l'argument quand le paramètre nommé n'est pas utilisé. | <sxh powershell>[Parameter(Position=0)]$PC</sxh> | |
| | | ValueFromPipeline | Indique par $true ou $false la capacité du paramètre à définir sa valeur depuis le pipeline. | <sxh powershell>[Parameter(ValueFromPipeline=$true)]$PC</sxh> | |
| | | HelpMessage | Couplé avec ''Mandatory=$true'', permet d'affiché un message d'aide quand aucune valeur n'est défini pour le paramètre et que la console en réclame une. | <sxh powershell>[Parameter(Mandatory=$true, |
| | HelpMessage="Entrez le nom d'un PC")]$PC</sxh> | |
| | | Alias | Permet de définir plusieurs noms valides pour un paramètre. | <sxh powershell>[Alias("ComputerName","WorkStation")]$PC</sxh> | |
| | | ValidatePattern | Permet de valider un argument si il correspond à l'expression régulière renseignée (voir [[powershell_regex|Les expressions régulières (regex)]]). | <sxh powershell>[ValidatePattern("[0-9][0-9][0-9][0-9]")]$Pin</sxh> | |
| | | ValidateSet | Permet de prédéfinir les valeurs possibles pour l'argument. | <sxh powershell>[ValidateSet("PC1", "PC2", "PC3")]$PC</sxh> | |
| | | Switch | Définie un paramètre dont les valeurs sont $true ou $false. Permet par exemple d'activité ou désactiver une fonctionnalité. | <sxh powershell>[Switch]$Verbose</sxh> | |
| | | Int | Indique un argument de type ''entier''. | <sxh powershell>[Int]$Level</sxh> | |
| | | String | Indique un argument de type ''chaîne de caractères''. | <sxh powershell>[String]$Name</sxh> | |
| | | Array | Indique un argument de type ''tableau''. | <sxh powershell>[Array]$Table</sxh> | |
| | | [] | Couplé avec un type d'argument, permet d'indiquer une ou plusieurs valeurs du type indiqué et séparées par des virgules '',''. Si plusieurs valeurs sont indiquées, l'argument sera de type ''liste'' et chaque élément de cette liste sera du type indiqué. | <sxh powershell>[String[]]$PC</sxh> | |
| |
| ===== Les fonctionnalités d'aide ===== | ===== Les fonctionnalités d'aide ===== |
| * Référence : [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_comment_based_help?view=powershell-6|Microsoft]] | * Référence : [[https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_comment_based_help?view=powershell-6|Microsoft]] |
| |
| <code:ps1><# | <sxh powershell><# |
| .SYNOPSIS | .SYNOPSIS |
| Ce que vous écrivez ici représente une courte description de votre script | Ce que vous écrivez ici représente une courte description de votre script |
| Il existe d'autres sections optionnelles que vous pourrez retrouver dans le lien de référence. | Il existe d'autres sections optionnelles que vous pourrez retrouver dans le lien de référence. |
| |
| #></code> | #></sxh> |
| | |
| --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2019/02/24 22:24// | |
| |
| ~~DISCUSSION~~ | ~~DISCUSSION~~ |