Appeler des fonctions dans un script Powershell depuis un fichier .psm1

Appeler des fonctions dans un script Powershell depuis un fichier .psm1

Lors de l’élaboration de différents scripts en PowerShell, j’ai mis du temps avant de trouver comment nous pouvions faire appel à un fichier regroupant un ensemble de fonctions écrites, et ainsi simplifier et factoriser notre code.

Le but étant « d’appeler » (et non d’exécuter) ce fichier à chaque fois que l’on fait référence à une fonction, dans son « programme principal » par exemple.

Après quelques heures de recherche sur le net, je suis enfin parvenu à trouver un tutoriel clair et concis qui faisait exactement ce que je souhaitais.

Pour ce faire il faut passer par deux étapes :

  • Créer un fichier functions.psm1

En effet, vous ne pouvez pas passer par un fichier classique PowerShell (.ps1), car celui-ci serait alors « Interprété », ce que nous voulons surtout pas.

  • Inclure dans vo(s) programme(s) le lien vers ce fichiers regroupant vos fonctions.

Nous allons pouvoir réaliser cela par l’intermédiaire de la variable d’environnement : $PSScriptRoot

Démonstration

Créons un répertoire « monApplication » sur le bureau :

Puis, créons le fichier functions.psm1, ainsi que le fichier main.ps1 qui représenteras notre programme principal.

Puis éditer les deux fichiers par le biais de votre IDE préféré :

  • Ecrivez une fonction basique comme ci-dessous :
  • Dans le fichier main.ps1, je vais faire référence à la fonction que j’ai écrite dans le fichier functions.psm1

Enregistrez, puis exécuter le fichier main.ps1

Voilà, votre fichier main.ps1 « appel » bien le fichier functions.psm1 qui contient notre fonction que nous avons écrite message($texte).

++

Brlndtech

Geoffrey Sauvageot-Berland

Related Posts

Créer un référentiel APT et l’héberger sur GitHub (Debian/Ubuntu PPA)

Créer un référentiel APT et l’héberger sur GitHub (Debian/Ubuntu PPA)

Comment forcer la réduction d’un disque d’une VM Linux provisionnée dynamiquement ? (VMware)

Comment forcer la réduction d’un disque d’une VM Linux provisionnée dynamiquement ? (VMware)

Installation et configuration d’Ansible et rédaction de vos premiers playbooks

Installation et configuration d’Ansible et rédaction de vos premiers playbooks

Comment redonder votre contrôleur de domaine – Windows Server

Comment redonder votre contrôleur de domaine – Windows Server

Newsletter

Recevoir une notification de chaque nouvel article par e-mail ?

Rejoignez les 624 autres abonnés
Pour soutenir ce blog ❤️⬇️

Buy Me a Coffee

Catégories