Serveurs & Infrastructure

Powershell : Script de Création de Boîte Mail pour Serveur Exchange

Par Tutos-Info, le 18 septembre 2020, mis à jour le 8 novembre 2020 - exchange, powershell
logo powershell

Le Powershell est un langage de programmation très puissant pour réaliser des opérations en masse comme la création de boîtes aux lettres sur un serveur Exchange.

Pour un client il a fallut créer des centaines de boîtes et il était impensable de créer les boîtes à la main. Effectivement la tâche est chronophage et prend du temps !

Pour vous aider,  tutoriel complet pour créer vos boîtes mails Exchange grâce à un script Powershell.

Script Powershell pour créer des boîtes mails sur Exchange

A propos des scripts

Les scripts proposés dans ce tutoriel son compatible Exchange 2013 / 2016 / 2019 et Exchange Online (Microsoft 365).

Les scripts peuvent faire appel à un fichier CSV afin de pouvoir lire plusieurs lignes et créer les boîtes à la chaîne.

powershell ise
Voici un exemple de code Powershell Ise

Scripts Powershell et Fonctionnement

Le fichier CSV

Les scripts présentés ci-dessus s'appuie sur des fichiers .csv délimités par un point virgule (;). Le script Powershell charge le fichier puis parcours les lignes pour remplir les différents champs dans l'Active Directory afin de créer les boîtes aux lettres.

Voici un exemple de fichier CSV :

exemple fichier csv création boîte mail
Fichier Csv ouvert avec notepad
Le fichier .csv délimite les champs login;prénom et nom , le délimiteur est bien le point virgule. Des champs peuvent être rajoutés dans le fichier CSV

On peut également utiliser LibreOffice ou Excel pour créer un fichier CSV

exemple fichier csv Excel

La boucle foreach

Une fois le fichier chargé il faut dans le script powershell définir une boucle qui pour chaque éléments du fichier effectuera une action (modification / création / suppression )

Script pour créer des boîtes mails Exchange.

#On ajoute les fonctionnalités Exchange Management Shell
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn; 
#On import le fichier CSV
Import-Csv -Path "C:\Sources\mailbox.csv" -Delimiter ";" -Encoding Default | foreach {
 
Enable-Mailbox -Identity $_.login -Database "Base-exchange"
 }

Ici pour chaque ligne du fichier CSV on va créer une boîte mail Exchange (Enable-MailBox) pour un utilisateur déja créé dans l'Active Directory. On remarque que la recherche se base sur le champ "login" du fichier csv.  ($.login).

Pour créer un nouveau compte et une nouvelle boîte vous devez utiliser la commande "New-Mailbox" 

New-Mailbox -Name "Tutos-Informatique" -UserPrincipalName [email protected] -Password (ConvertTo-SecureString -String 'Pa$$word1' -AsPlainText -Force) -FirstName Tutos -LastName Informatique

Vous pouvez ajouter de champs dans votre fichier csv comme le nom et le prénom et l'adresse mail. Votre script devra s'adapter voici un exemple

#On ajoute les fonctionnalités Exchange Management Shell
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn; 
#On import le fichier CSV
Import-Csv -Path "C:\Sources\mailbox.csv" -Delimiter ";" -Encoding Default | foreach {
 
New-Mailbox -Name $_.nom -UserPrincipalName $_.adressemail -Password (ConvertTo-SecureString -String 'Pa$$word1' -AsPlainText -Force) -FirstName $_.Nom -LastName $._prenom  -Database "Base-exchange"
 }

Maintenant vous en savez plus sur la création de boîte au lettre ;) N'hésitez pas à consulter la documentation très détaillée de Microsoft 

Les développeurs sont les bienvenus pour proposer des scripts dans la partie commentaire de cet article.

  • PowerShell Core et Windows PowerShell - Les fondamentaux du langage (2e édition)

Tutos-Info

Commentaires

Le 7 novembre 2020 à 14 h 17 min, BAKEMONO a dit :

-FistName loul

Votre réponse sera révisée par les administrateurs si besoin.

Le 8 novembre 2020 à 21 h 53 min, Tutos-Info a dit :

Hello , merci j'ai édité ^^

Votre réponse sera révisée par les administrateurs si besoin.

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.