> Tech > Capitaliser et gagner du temps avec les modules

Capitaliser et gagner du temps avec les modules

Tech - Par iTPro - Publié le 12 novembre 2010
email

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 gratuitement cette ressource

Comment sécuriser la Digital Workplace ?

Comment sécuriser la Digital Workplace ?

Avec le recours généralisé au télétravail, les entreprises ont ouvert davantage leur SI. En dépit des précautions prises, elles ont mécaniquement élargi leur surface d’exposition aux risques. Découvrez 5 axes à ne pas négliger dans ce Top 5 Sécurité du Télétravail.

Tech - Par iTPro - Publié le 12 novembre 2010