Comment utiliser Powershell facilement… pour éviter les tâches manuelles répétitives

Lors de l’administration Exchange 2007 et 2010, de nombreux points de configuration ne peuvent se faire qu’à l’aide des commandes Powershell. Il n’y a alors pas de choix possible. Ces opérations sont heureusement relativement rares.

En revanche, pour de nombreuses opérations courantes qui devraient être réalisées manuellement sur différents objets (boites, banques, connecteurs, serveurs,…), voici un guide des quelques instructions de base et de la méthode à utiliser.

Exemple : on souhaite augmenter la taille des messages autorisés de 10 Mo à 20 Mo sur tous les connecteurs de réception actuellement limités à 10 Mo sans modifier les autres!

Etape 1) Déterminer les objets sur lesquels porte l’action souhaitée.

Get-receiveconnector

=> Cette instruction vous donne la liste de tous les connecteurs de réception

Etape 2) Déterminer le champ ou les champs qui vous intéressent

Get-receiveconnector “Nom d’un connecteur”| fl |more

=> Cette instruction indique tous les champs et valeurs actuelles du connecteur choisi.

FL affiche un champ par ligne.

MORE bloque l’affichage si le nombre de lignes est trop important et permet d’avancer par ligne ou par page.

Attention, le nom doit être encadré par des guillemets s’il comporte des espaces.

Dans notre cas, c’est la taille qui nous intéresse que l'on retrouve sous le nom "MaxMessageSize".

Etape 3) Vérifier les valeurs du champ choisi pour l’ensemble des objets

Get-receiveconnector |ft name,MaxMessageSize

**FT **affiche un tableau comportant tous les connecteurs et les champs indiqués.

Etape 4) Filtrer le résultat pour toucher que les objets à modifier.

Dans ce notre cas, il y aura 2 filtrages différents à réaliser : Le premier pour supprimer les connecteurs SMTP réservés aux « clients SMTP» utilisant le port 587. Le 2ème pour ne garder que les connecteurs ne possédant la bonne valeur.

Get-receiveconnector| where {$_.name –match “default” }

Get-receiveconnector | where { $.name –match “default”} |where { $.MaxMessageSize –eq 10MB }

Etape 5) Modifier la valeur sur les objets sélectionnés.

Enchainer l’instruction de modification à la commande précédente :

Get-receiveconnector | where { $.name –match “default”} |where { $.MaxMessageSize –eq 10240 }|set-receiveconnector –MaxMessageSize 20MB

Etape 6) Vérifier le résultat global et comparer rapport à l’étape 3

Get-receiveconnector |ft name, MaxMessageSize


Il est bien entendu très utile de conserver le script obtenu, pas forcément au format PS1, afin de l’adapter aux futurs besoins.