Au cours des précédents articles, nous avons pu nous apercevoir que certaines tâches d’administration pouvaient être récurrentes comme par exemple la création de boîtes aux lettres, de listes de distribution ou bien encore la génération de statistiques sur notre organisation Exchange.
Toutes ces tâches peuvent prendre
Capitaliser et gagner du temps avec les modules
du temps mais pour le grand bonheur des administrateurs, elles sont totalement automatisables : pas besoin de taper et retaper nos lignes de commandes PowerShell ou bien de les copier et coller à partir d’un fichier texte perdu sur un partage réseau (c’est probable ment le vécu qui parle !). Les Cmdlets et les fonctions viennent à notre secours !
Depuis le premier article de cette série, vous savez ce qu’est une Cmdlet : une commande PowerShell. Sachez qu’il est possible d’en créer !
Quel est le rapport avec le fait que chaque jour je dois vérifier l’état de santé de mon organisation ou bien créer des boîtes aux lettres en respectant les normes et politiques de mon entreprise ?
La réponse est simple : capitalisation et gain de temps !
Par exemple, nous allons pouvoir développer des Cmdlets capables de créer nos boîtes aux lettres en respectant automatiquement la politique de l’entreprise. Bref faire notre provisioning (de masse ou non) en éliminant les erreurs d’inattention en un minimum de temps !
D’accord, en théorie ce n’est pas trop mal… Mais s’il faut un mois pour faire ces Cmdlets…
La création de Cmdlets nécessite d’utiliser un langage de programmation compilé sous la forme d’une DLL. Cette DLL sera chargée dans notre session PowerShell comme nous l’avons vu avec Exchange Management Shell.
Bref, s’il faut en plus se mettre au développement…
Bien qu’il soit possible d’écrire et compiler du code C# ou VB.NET dans PowerShell, la version 2 de notre outil en ligne de commande nous propose une autre fonctionnalité : les modules!
Un module est un simple script en PowerShell contenu dans un fichier portant l’extension « .PSM1 ». Il peut être chargé et déchargé très simplement dans une session grâce aux Cmdlets « Import-Module » et « Remove-Module ». Vous l’avez compris, nous pouvons donc écrire un module contenant nos routines, l’importer et réutiliser ainsi notre travail. Et concrètement ?
Voici un petit exemple de module contenant deux fonctions :
« Enable-MailboxInOU » crée une boîte aux lettres pour chaque compte utilisateur trouvé dans une unité organisationnelle.
« Set-CompanyQuota » modifie les quotas sur toutes les boîtes aux lettres de l’organisation Exchange.
Placez ces fonctions dans un fichier avec « PSM1 » comme extension ne suffit pas. Nous devons rajouter à la fin de notre fichier :
Export-ModuleMember -Function 'Enable-MailboxInOU',
'Set-CompanyQuota'
La Cmdlet « Export-ModuleMember » nous permet d’utiliser dans notre session PowerShell les membres (fonctions, Cmdlets, variables, …) que nous spécifions en paramètre. Pour connaître tous les paramètres de cette Cmdlet, n’oubliez pas les pages d’aide accessibles avec « Get-Help » ! Enfin, nous pouvons importer notre module afin d’utiliser les membres exposés par la Cmdlet « Export-Module Member » :
Import-Module .\MyModule.psm1
Il est maintenant possible d’utiliser les fonctions précédentes dans notre session PowerShell.
L’un des grands intérêts des modules est d’être partagé ! Il peut devenir très intéressant de créer une librairie de modules dans notre entreprise que l’équipe d’exploitation pourra utiliser.
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Chiffrements symétrique vs asymétrique
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Afficher les icônes cachées dans la barre de notification
Les plus consultés sur iTPro.fr
- Temps d’arrêt IT : un coût de 600 milliards de dollars pour les entreprises du Global 2000
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- L’anxiété liée à l’IA, un risque sous-estimé pour la sécurité
- IA générative en Europe : une adoption massive, mais une gouvernance toujours en retard
Articles les + lus
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
À la une de la chaîne Tech
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
