Microsoft Exchange Server 2010 : Apprenez à connaître Exchange Management Shell

L’environnement de ligne de commande Exchange Management Shell vous donne un contrôle intégral sur tous les aspects de votre infrastructure Exchange gérés par Windows PowerShell.

Extrait de l'ouvrage « Exchange 2010 – A pratique approche, » publié par Red porte livres (2009).

Jaap Wesselius

Exchange Management Shell (EMS) est une interface de gestion complète avec lequel vous pouvez gérer tous les aspects d'une organisation Exchange. La spécification EMS est l'interface d'administration principal. Console de gestion Exchange (EMC) est construite « en haut » de celle-ci. Chaque action à qu'entreprendre d'EMC est traduite à la volée dans une ligne de commande EMS et exécutée.

En coulisses, l'EMS utilise Windows PowerShell 2.0. Combiné avec les capacités de gestion à distance dans Windows Server 2008 et Windows Server 2008 R2, vous pouvez gérer à distance à votre environnement Exchange. La spécification EMS est en réalité un ensemble de commandes basé sur Windows PowerShell.

En outre l'interface de ligne de commande, Windows PowerShell 2.0 possède également un environnement de script intégré, qui est une interface utilisateur graphique intégrée. Vous pouvez l'utiliser pour créer facilement des scripts de Windows PowerShell. Il est également intégré avec Windows Remote Management, vous pouvez utiliser Windows PowerShell pour gérer à distance de votre environnement Exchange 2010 en utilisant le protocole HTTPS standard. Il vous suffit d'une station de travail ou un serveur exécutant Windows PowerShell 2.0.

Lancez l'interpréteur de commandes

Lorsque l'EMS est démarrée, vous verrez en fait une zone vide avec une invite — exactement à l'invite de commande Windows. Vous pouvez obtenir une liste des commandes disponibles à ce stade en entrant la commande Get.

Au bénéfice de ces administrateurs GUI fanatiques, une commande de Windows PowerShell se compose de deux parties : un nom et un verbe. Les verbes peuvent être des instructions telles que get, set, nouveau, supprimer, activer, désactiver et ainsi de suite. Le composant de nom peut être n'importe quel objet dans Exchange Server. Combiner simplement le nom et le verbe comme suit :

  • Get-ExchangeServer : récupérer une liste de tous les serveurs Exchange 2010 l'organisation.
  • Set-MailboxDatabase : définir une propriété sur une base de données de boîtes aux lettres.
  • Nouvelle-boîte aux lettres : créer un nouvel utilisateur avec boîte aux lettres.
  • Remove-Mailbox : supprimer un objet utilisateur et sa boîte aux lettres.

Si vous débutez avec Windows PowerShell et que vous souhaitez en savoir plus sur les commandes, une recherche rapide sur le Web se transforme les scores des ressources de formation. Vous pouvez également démarrer après le Windows PowerShell colonnes sur TechNet.

Aide EMS

S'il existe quelque chose sur laquelle vous avez des doutes quant lors de l'utilisation de la spécification EMS, consultez le Guide de référence rapide. Elle se trouve dans C:\Program Files\Microsoft\ExchangeServer\v14\bin\en\ExQuick.htm. Contient des cmdlets les plus importantes et les plus utilisées et leurs variables.

Si vous avez besoin d'aide à la volée, vous pouvez utiliser la fonction d'aide intégré dans la spécification EMS. Pour obtenir une liste de tous les éléments d'aide disponibles, tapez "help * ». Si vous avez besoin d'aide sur une applet de commande spécifique, tapez simplement d'aide et le nom de l'applet de commande. Pour obtenir de l'aide sur l'activation de la messagerie pour un utilisateur existant, par exemple, tapez « help enable-mailbox ».

Traitement en pipeline

Le traitement en pipeline une autre fonctionnalité intéressante dans Windows PowerShell et la spécification EMS. Il utilise la sortie d'une cmdlet comme entrée pour une seconde. Cela peut réduire considérablement le volume de travail que vous deviez placer dans pour accomplir des tâches relativement complexes. Il est limité que par votre ingéniosité.

Par exemple, si vous souhaitez déplacer toutes les boîtes aux lettres dans une base de données de boîtes aux lettres appelée « Mailbox Database 1988197524 » à une autre base de données de boîtes aux lettres appelée « 0823751426 de base de données de boîtes aux lettres », utilisez la commande suivante :

Get-Mailbox –Database "Mailbox Database 1988197524" | New-MoveRequest –TargetDatabase "Mailbox Database 0823751426"

C'est ce qui se passe :

Get-Mailbox –Database « Base de données de boîtes aux lettres 1988197524 » récupère une liste de toutes les boîtes aux lettres dans cette base de données particulière. La sortie de cette applet de commande est utilisée comme entrée de la deuxième cmdlet — la demande en ligne pour déplacer des boîtes aux lettres vers la base de données. Vous pouvez également utiliser des requêtes plus spécifiques. Par exemple, pour obtenir une liste de toutes les boîtes aux lettres dont le nom commence par « Chris », vous utiliseriez la commande suivante :

Get-Mailbox | where-object {$_. name –like "Chris*"}

Vous pouvez ensuite utiliser ceci comme entrée pour une demande pour déplacer ces boîtes aux lettres vers une autre base de données :

Get-Mailbox | where-object {$_. name –like "Chris*"} | New-MoveRequest ' –TargetDatabase "Mailbox Database 0823751426"

Création d'utilisateurs en bloc

Cela peut être très utile, en particulier lorsque vous devez créer un grand nombre de boîtes aux lettres pressé. Supposons que vous disposez d'une unité d'organisation (UO) nommée « Sales » dans Active Directory, qui contient les 100 objets utilisateur. Cette commande crée une boîte aux lettres pour chaque utilisateur dans cette unité d'organisation :

Get-User –OrganizationalUnit "Sales" | Enable-Mailbox –Database "Mailbox Database 0823751426"

Lorsqu'il y a plusieurs unités d'organisation appelées « Ventes », vous devez spécifier le chemin d'accès complet de l'unité d'organisation que vous souhaitez utiliser :

Get-User –OrganizationalUnit "E14.local/Account/Sales" | Enable-Mailbox –Database "Mailbox Database 0823751426"

Vous pouvez également filtrer la sortie de la commande Get-User avec le paramètre – Filter. Par exemple, pour activer la boîte aux lettres de tous les utilisateurs dont l'attribut société est définie sur « Inframan », entrez la commande suivante :

Get-User –Filter {(Company –eq "Inframan")} | Enable-Mailbox –Database "Mailbox Database 0823751426"

Si vous souhaitez être encore plus spécifiques — par exemple, pour activer la boîte aux lettres tous les utilisateurs dont l'attribut société est définie sur « Inframan » et dont l'attribut department est définie sur « Interne » — Saisissez la commande suivante :

Get-User –Filter {(Company –eq "Inframan") -AND (Department –eq "Intern")} | Enable-Mailbox –Database "Mailbox Database 0823751426"

Les opérations suivantes sont disponibles pour l'option – Filter :

  • - et
  • - ou -
  • -pas
  • -eq (signe égal)
  • -ne (non égal)
  • lt-(moins)
  • -gt (supérieur à)
  • -like (comparaison de chaînes)
  • -notlike (comparaison de chaînes)

Dans certains cas, vous trouverez utile pour importer une liste d'utilisateurs à partir d'un fichier CSV. Vous pouvez importer ces types de listes à partir d'un autre Active Directory ou même une application de ressources humaines. Il est relativement facile d'importer un fichier CSV à l'aide de Windows PowerShell. La seule chose que vous avez besoin à l'esprit est que l'option –Password n'accepte pas d'entrée de texte en clair. Vous devez convertir l'entrée dans ce champ une chaîne sécurisée :

$Database="Mailbox Database 1563944384" $UPN="e2010.local" $users = import-csv $args[0] function SecurePassword([string]$password) { $secure = new-object System.Security.SecureString $password.ToCharArray() | % { $secure.AppendChar($_) } return $secure }foreach ($i in $users) { $sp = SecurePassword $i.password $upn = $i.FirstName + "@"+ $upn $display = $i.FirstName + " "+ $i.LastName New-Mailbox -Password $sp -Database $Database -UserPrincipalName $UPN -Name $i.FirstName -FirstName $i.FirstName -LastName $i.LastName -OrganizationalUnit $i.OU }

Sur les trois premières lignes, il existe trois paramètres définis. Ces paramètres sont utilisés lors de la création effective de l'utilisateur et la boîte aux lettres. Le fichier est lu dans une boucle ForEach et les utilisateurs et les boîtes aux lettres sont créées au fur et à boucle.

La fonction SecurePassword lit le mot de passe dans le fichier CSV de sortie et la convertit en une chaîne sécurisée — qui est à son tour, comme l'entrée de mot de passe utilisé lors de la création des utilisateurs. Le fichier CSV lui-même est formaté comme suit :

FirstName, LastName, Password, OU Jaap, Wesselius, Pass1word, Accounts Michael, Francis, Pass1word, Accounts Michael, Smith, Pass1word, Accounts John, Doe, Pass1word, Accounts

Pour rendre ce script utilisable, enregistrez le fichier de script en tant que « create.ps1 » dans un répertoire comme c:\scripts. Vous devez également enregistrer le fichier de sortie CSV en tant que users.csv dans le même répertoire. En fait utiliser le script, ouvrez une invite de commande Windows PowerShell, accédez au répertoire c:\scripts et entrez la commande suivante :

. \create.ps1 users.csv

Ces techniques vous aideront à utiliser au mieux parti de l'EMS et certains de la puissance de Windows PowerShell permet de gérer votre infrastructure Exchange.

Jaap Wesselius

Jaap Wesseliusest le fondateur de Consultants DM, une société avec un accent sur les solutions de messagerie et de collaboration. Après avoir travaillé chez Microsoft depuis huit ans, Wesselius a décidé de valider plus de son temps à la Communauté Exchange aux pays-bas, aboutissant à un prix Exchange Server MVP en 2007. Il est également contribue régulièrement au groupe utilisateur de Communications unifiées néerlandais et auteur régulière d'un Simple exposé.

En savoir plus sur « Exchange 2010 – une approche pratique » au red-gate.com/our-company/about/book-store.

Contenu associé