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

Ingénieur diplômé par l’état en Informatique et Cybersécurité. Généraliste, à l'origine administrateur systèmes et réseaux, j’occupe actuellement un poste d’auditeur en sécurité offensive. J’apprécie également la programmation/automatisation. Fondateur du blog : "Le Guide du SecOps", anciennement "Le Guide du SysOps"

Related Posts

Reconstruction d’OS non chiffrés : Analyse post-exploitation

Reconstruction d’OS non chiffrés : Analyse post-exploitation

Automatiser l’administration de vos serveurs linux  avec ansible (Démonstration pas à pas)

Automatiser l’administration de vos serveurs linux avec ansible (Démonstration pas à pas)

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)

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

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