Outils pour utilisateurs

Outils du site


dev:powershell:ecrire_un_module_powershell

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
dev:powershell:ecrire_un_module_powershell [2023/08/23 10:40] – ↷ Nom de la page changé de dev:powershell:module à dev:powershell:ecrire_un_module_powershell yoanndev:powershell:ecrire_un_module_powershell [2023/08/27 12:25] (Version actuelle) yoann
Ligne 2: Ligne 2:
  
  
-====== Powershell : Les modules ======+====== Powershell : Créer un module ======
  
-===== Fichier Manifest =====+===== Le fichier Manifest =====
  
-Une bonne pratique consiste à générer le fichier manifest du module via la cmdlet **New-ModuleManifest** :+Le fichier manifeste de module est un fichier de données PowerShell avec l'extension ''.psd1''. Il contient une simple table de hachage. Les paires clé-valeur dans la table de hachage permettent de : 
 +  * Décrire le contenu et les attributs du module ; 
 +  * Définir les prérequis au fonctionnement du module ; 
 +  * Contrôler la façon dont les composants sont traités. 
 + 
 +Une bonne pratique consiste à générer le fichier manifest du module via la cmdlet **New-ModuleManifest**. L'appel sans paramètre permet de créer une table de hachage minimale :
  
 <code powershell> <code powershell>
-New-ModuleManifest -Path C:\myModuleName.psd1 -ModuleVersion "2.0" -Author "YourNameHere"+New-ModuleManifest -Path C:\My.Module.Name.psd1 -ModuleVersion "2.0" -Author "YourNameHere"
 </code> </code>
  
Ligne 16: Ligne 21:
 <code powershell> <code powershell>
 # Définition des paramètres  # Définition des paramètres 
 +$module_properties = @{
 +   RootModule = '.\aScriptExample.psm1'
 +   ModuleVersion = '0.0.0.1'
 +   GUID = New-Guid | Select-Object -ExpandProperty Guid
 +   Author = 'anAuthorName'
 +   CompanyName = 'aCompanyName'
 +   Description = "a module short description"
 +   PowerShellVersion = '5.1'
 +   FunctionsToExport = @("aFunction1", "aFunction2", "aFunction3")
 +   CmdletsToExport = @()
 +   AliasesToExport = @()
 +   VariablesToExport = @('$aVarName1', '$aVarName2')
 +}
  
 +New-ModuleManifest -Path .\My.Module.Name.psd1 @module_properties
 </code> </code>
 +
  
 ===== Nom de module ====== ===== Nom de module ======
  
 Sans fichier manifest, le nom du module correspond au nom du fichier .psm1 Sans fichier manifest, le nom du module correspond au nom du fichier .psm1
 +
 +===== Tester le module manifest =====
 +
 +La cmdlet **Test-ModuleManifest** permet de vérifier la syntaxe du fichier module manifest :
 +<code powershell>
 +Test-ModuleManifest .\Phobos.Epsilon.filehash.psd1
 +</code>
 +
 +===== Sélection des objets à exporter =====
 +
 +Fonctions, alias et variables doivent être sélectionnés pour être exportés :
 +  * Depuis le script ;
 +  * Depuis le fichier manifest.
 +
 +
 +Dans le script on utilise la cmdlet **Export-ModuleMember**
 +
 +<code powershell>
 +Export-ModuleMember -Function Get-Test, New-Test, Start-Test -Alias gtt, ntt, stt -Variable aVarName
 +</code>
 +
 +Depuis la table de hachage du fichier manifest, on renseigne la valeur de la clé **VariablesToExport**
 +
 +<code powershell>
 +@{
 +  # Par défaut toutes les variables sont exportés. Ici on définit
 +  # Précisément les variables qu'on souhaite exporter.
 +  VariablesToExport = @('$aVarName1', '$aVarName2')
 +
 +</code>
 +
 +
 +===== Charger le module =====
 +
 +Pour charger le module dans la session active : 
 +<code powershell>
 +Import-Module .\aModuleName.psd1
 +</code>
 +
 +Ce chargement dynamique est éphémère et ne concerne que le shell en cours d'exécution. Pour que le module soit chargé automatiquement lors du lancement de Powershell, il doit être installé voir la note .
 +
 +===== Décharger le module =====
 +
 +<code powershell>
 +Remove-Module aModuleName
 +</code>
  
 ===== Obtenir la version depuis le module ===== ===== Obtenir la version depuis le module =====
Ligne 38: Ligne 104:
   * [[https://learn.microsoft.com/fr-fr/powershell/scripting/developer/module/how-to-write-a-powershell-module-manifest?view=powershell-5.1|Ecrire un fichier manifest pour un module Powershell (Microsoft Learn)]]   * [[https://learn.microsoft.com/fr-fr/powershell/scripting/developer/module/how-to-write-a-powershell-module-manifest?view=powershell-5.1|Ecrire un fichier manifest pour un module Powershell (Microsoft Learn)]]
   * [[https://learn.microsoft.com/fr-fr/powershell/module/microsoft.powershell.core/about/about_module_manifests?view=powershell-5.1|A propos du fichier module manifest (Microsoft Learn)]]   * [[https://learn.microsoft.com/fr-fr/powershell/module/microsoft.powershell.core/about/about_module_manifests?view=powershell-5.1|A propos du fichier module manifest (Microsoft Learn)]]
 +  * [[https://learn.microsoft.com/fr-fr/powershell/scripting/dev-cross-plat/performance/module-authoring-considerations?view=powershell-5.1|Bonnes pratiques pour la création de module (Microsoft Learn)]]
dev/powershell/ecrire_un_module_powershell.1692787257.txt.gz · Dernière modification : 2023/08/23 10:40 de yoann