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
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Et si les clients n’avaient plus le choix ?
- Afficher les icônes cachées dans la barre de notification
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Activer la mise en veille prolongée dans Windows 10
Les plus consultés sur iTPro.fr
- Attaques IA : un Active Directory peut être compromis en 40 minutes
- L’application jetable, le piège de l’IA générative
- Cybersécurité : les entreprises françaises réclament un durcissement inédit de la réglementation
- Le tournant Mythos : les entreprises devront opposer des agents IA à des agents IA
Articles les + lus
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
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
À la une de la chaîne Tech
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
- 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
