Utilisation d'Exchange Management Shell pour la gestion des files d'attente

 

S’applique à : Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Dernière rubrique modifiée : 2006-09-18

Cette rubrique décrit les cmdlets de files d'attente d’Exchange Management Shell et l'utilisation des cmdlets et des jeux de paramètres pour créer une requête, récupérer des résultats et effectuer des actions de modification. Pour plus d'informations sur les tâches de file d'attente et leur utilisation pour le contrôle et le dépannage, consultez la rubrique Gestion des files d'attente.

Dans Microsoft Exchange Server 2007, vous pouvez utiliser Exchange Management Shell pour effectuer des tâches de gestion et de configuration, ainsi que créer des scripts pour automatiser des tâches. Vous pouvez également utiliser Exchange Management Shell pour afficher des informations sur les files d'attente sur un serveur et les messages présents dans ces files d'attente, ainsi que pour effectuer des actions de gestion sur les files d'attente et les messages. Ces opérations sont utiles au dépannage du flux des messages et à l'identification du courrier indésirable. Pour plus d'informations sur l'utilisation d'Exchange Management Shell, consultez la rubrique Utilisation d'Exchange Management Shell.

Gestion de files d'attente et de messages

Les tâches de file d'attente sont regroupées en deux catégories : les actions d'affichage et les actions de modification. Les actions d'affichage permettent d'afficher les files d'attente et les messages en file d'attente sur le serveur, ainsi que de sélectionner le regroupement et le tri des données lors de leur affichage. Les actions de modification sont des opérations qui modifient l'état des files d'attente et des messages. Les deux types de tâches accèdent aux données en se connectant au processus de travail de transport en utilisant un appel de procédure distante (RPC). Pour plus d'informations sur le processus de transport Exchange 2007, consultez la rubrique Architecture du transport.

Par défaut, Exchange Management Shell se concentre sur le serveur local. Vous pouvez également connecter un serveur distant et afficher les files d'attente et les messages sur ce serveur en spécifiant le nom du serveur distant en tant que partie de l'identité de la file d'attente ou en utilisant le paramètre Server avec un filtre. Pour plus d'informations sur l'utilisation d'Exchange Management Shell pour afficher les files d'attente et les messages, consultez les rubriques Procédure d'affichage de files d'attente et Procédure d'affichage de messages.

Cmdlets de file d’attente

Le tableau 1 répertorie les cmdlets disponibles dans Exchange Management Shell pour la gestion des files d'attente et des messages dans les files d'attente. Pour plus d'informations sur l'utilisation de chaque cmdlet, consultez les rubriques d'aide répertoriées dans la colonne « Pour plus d'informations ».

Tableau 1   Cmdlets de file d'attente

Cmdlet Utilisation Pour plus d'informations

Export-Message

Cette cmdlet enregistre une copie d'un message dans un emplacement de fichier défini par un administrateur.

Export-Message

Procédure d'exportation de messages à partir de files d'attente

Get-Message

Cette cmdlet permet d'afficher les détails des messages actuellement en attente de remise. Vous pouvez utiliser la cmdlet Get-Message pour récupérer un jeu de messages puis rediriger les résultats vers l'une des cmdlets intrusives.

Get-Message

Procédure d'affichage de messages

Traitement en pipeline

Utilisation de la sortie d'une commande

Get-Queue

Cette cmdlet permet d'afficher les détails de configuration des files d'attente présentes sur les serveurs de transport. Vous pouvez utiliser la cmdlet Get-Queue pour récupérer un jeu de files d’attente puis rediriger les résultats vers l'une des cmdlets intrusives.

Get-Queue

Procédure d'affichage de files d'attente

Traitement en pipeline

Utilisation de la sortie d'une commande

Remove-Message

Cette cmdlet supprime un message d'une file d'attente. L'administrateur peut sélectionner l'envoi ou non d'un rapport de non-remise.

Remove-Message

Procédure de suppression de messages de files d'attente

Resume-Message

Cette cmdlet reprend la remise d'un message précédemment suspendu. La cmdlet Resume-Message permet également de re-déposer des messages de la file d'attente des messages incohérents dans la file d'attente de soumission afin que le catégoriseur les traite une nouvelle fois.

Resume-Message

Procédure de reprise de messages

Procédure de nouvelle soumission des messages dans des files d'attente

Resume-Queue

Cette cmdlet reprend la remise de messages d'une file d'attente précédemment suspendue.

Resume-Queue

Procédure de reprise de files d'attente

Retry-Queue

Cette cmdlet force une tentative de connexion à une file d'attente dont l'état actuel est Retry. Cette tentative de connexion remplace la prochaine tentative planifiée. La cmdlet Retry-Queue utilisée avec le paramètre Resubmit permet de soumettre de nouveau des messages figurant dans des files d'attente de remise ou dans la file d'attente inaccessible à la file d'attente de soumission afin que le catégoriseur les traite une nouvelle fois.

Retry-Queue

Procédure de relance de files d'attente

Procédure de nouvelle soumission des messages dans des files d'attente

Suspend-Message

Cette cmdlet suspend la remise d'un message qui se trouve dans une file d'attente sur un serveur de transport Exchange 2007.

Suspend-Message

Procédure de suspension de messages

Suspend-Queue

Cette cmdlet suspend les activités sortantes d'une file d'attente se trouvant sur un serveur de transport Exchange 2007.

Suspend-Queue

Procédure de suspension de file d'attente

Utilisation de jeux de paramètres de tâches de file d'attente

Les tâches de file d'attente prennent en charge plusieurs jeux de paramètres. Ces jeux de paramètres sont les suivants : Identity, Queue et Filter. Le jeu de paramètres Queue est uniquement disponible avec les commandes de messages. Les jeux de paramètres Identity, Queue et Filter ne peuvent pas être associés dans une commande. Le paramètre Server est uniquement utilisé avec une expression de filtre.

Vous pouvez également utiliser les paramètres de pagination avancée disponibles dans Exchange Management Shell en association avec les jeux de paramètres Identity, Queue et Filter. Les paramètres de pagination avancée sont utilisés avec les cmdlets Get-Message et Get-Queue pour contrôler le tri et l'affichage des résultats. Les paramètres de pagination avancée sont décrits dans le tableau 4 de cette rubrique.

Vous devez utiliser un jeu de paramètres Identity, Queue ou Filter lorsque vous utilisez une commande qui modifie des messages ou des files d'attente. Si vous ne fournissez aucun paramètre, les cmdlets Get-Message et Get-Queue affichent chaque objet message ou file d'attente qui existe sur le serveur local.

Si le jeu de résultats pour une requête de file d'attente ou de message contient plus de 250 000 éléments et qu'une erreur se produit, vous serez invité à appliquer un filtre pour réduire le nombre de résultats.

Utilisation du paramètre Identity

Lorsque le message ou la file d'attente spécifique que vous voulez afficher ou sur lequel vous voulez agir est connu, utilisez le paramètre Identity. La recherche par identité est plus rapide que la formulation de cette même requête dans un filtre. Le nom de serveur peut s'exprimer sous la forme d'un nom d'hôte ou d'un nom de domaine complet (FQDN). Vous pouvez entrer le nom d'un serveur distant comme partie de l'identité pour initier une connexion RPC à ce serveur, de telle sorte que vous pouvez interroger les files d'attente sur ce serveur. Si vous n'utilisez pas de nom de serveur, l'hôte local est implicite. Lorsqu'une identité est fournie pour une action de modification, l'objet qui est identifié doit être unique et entièrement défini. Si l'identité n'est pas explicite, l'action n'est pas effectuée. Si vous omettez la partie serveur de l'identité, on suppose qu'il s'agit de l'ordinateur local.

Lorsque vous utilisez le paramètre Identity comme partie d'une cmdlet Get-Queue ou Get-Message, le paramètre Identity prend en charge l'utilisation d'expressions génériques.

Identité de la file d'attente

Les files d'attente persistantes ont des noms uniques et peuvent être spécifiées par nom. Les files d'attente de remise sont affectées à une identité de base de données unique. Vous pouvez utiliser cette identité de base de données pour spécifier une file d'attente ou vous pouvez utiliser le nom de la destination de remise pour spécifier une file d'attente. Pour effectuer une opération sur une file d'attente en spécifiant son identité de base de données unique, vous devez d'abord exécuter la cmdlet Get-Queue. L'identité de base de données est renvoyée dans les résultats. Les formats d'identité acceptés pour les files d'attente sont affichés dans le tableau 2.

Tableau 2   Formats d'identité des files d'attente

Format d'identité des files d'attente Utilisation

Server\QueueJetID (Int64)

Identité unique et complète pour une file d'attente de remise

\QueueJetID

Identité d'une file d'attente sur un serveur local. Le nom de serveur est omis. Par conséquent, le serveur local est implicite.

Server\*

Toute file d'attente sur le serveur spécifié

Server\NextHopDomain

Une file d'attente sur le serveur spécifié disposant des messages pour les remettre à un domaine distant spécifique

\NextHopDomain

Une file d'attente disposant des messages destinés à un domaine spécifique et se trouvant sur le serveur local

Server\Poison

File d'attente des messages incohérents se trouvant sur le serveur spécifié

Server\Submission

File d'attente contenant les éléments qui attendent d'être traités par le catégoriseur

Server\Unreachable

File d'attente contenant les articles qui ne peuvent être routés et se trouvant sur le serveur spécifié

Le code suivant est un exemple d'utilisation d'une identité de file d'attente avec la cmdlet Get-Queue. Cet exemple retourne une liste de toutes les files d'attente qui disposent des messages pour remise aux noms de domaine du protocole SMTP qui se terminent par Contoso.com. Cet exemple formate également le jeu de résultats dans une liste détaillée :

Get-Queue -Identity Server\*Contoso.com | format-list

Identité du message

L'identité d'un message est un regroupement du message de base de données unique et de l'identité de file d'attente. Une identité, sous la forme d'un nombre entier, est affectée à un message lorsqu'il entre dans la base de données JET de files d'attente et ce nombre entier est ajouté à l'identité de file d'attente pour créer l'identité du message. Pour effectuer une opération sur un message en spécifiant son identité de base de données, vous devez d'abord exécuter la cmdlet Get-Message. L'identité est retournée dans les résultats. Si vous voulez vous connecter à un serveur distant, vous pouvez inclure le nom de serveur comme partie de l'identité du message. Si le nom de serveur est omis, on suppose qu'il s'agit du serveur local. Un message qui est envoyé à plus d'un destinataire peut se trouver dans plusieurs files d'attente. Vous pouvez utiliser un caractère générique pour spécifier que vous voulez localiser le message dans chaque file d'attente vers laquelle le message a été routé. Le tableau 3 fournit des exemples d'identités de messages valides.

Tableau 3   Formats d'identité des messages

Format d'identité des messages Utilisation

Server\QueueJetId\MessageJetID

Dénomination complète d'un message dans une file d'attente

Server\Poison\MessageJetID

Un message se trouvant dans la file d'attente des messages incohérents

MessageJetID

Tous les messages ayant l'identité de base de données JET et étant routés vers une file d'attente sur le serveur local (un message peut être routé sur plusieurs files d'attente)

Server\*\MessageJetID

Tous les messages ayant l'identité de base de données JET et étant routés sur une file d'attente sur le serveur spécifié

Le code suivant est un exemple d'utilisation d'une identité de message avec la cmdlet Get-Message. Cet exemple retourne une liste de tous les messages qui ont l'identité spécifique et sont localisés dans une des files d'attente sur le serveur spécifié. Cet exemple formate également le jeu de résultats comme une liste détaillée :

Get-message -Identity Server\*\1234 | Format-List

Utilisation du paramètre Filter

Les tâches de file d'attente prennent en charge le paramètre Filtre pour vous permettre de spécifier les critères pour lesquels les files d'attente et les messages doivent être récupérés. Les propriétés des files d'attente et des messages sont utilisées comme critères de filtrage. Créez un filtre pour afficher un jeu de files d'attente ou de messages limité. Une fois que vous avez localisé les files d'attente et les messages que vous voulez surveiller, vous pouvez afficher les informations de propriété pour chaque objet. Ces informations sont utiles pour le dépannage des problèmes de flux des messages.

Pour fournir une expression avec des opérateurs logiques et relationnels de telle sorte que seuls les objets file d'attente ou message qui répondent aux critères de filtrage sont affichés, utilisez le paramètre Filter. Pour spécifier plusieurs conditions auxquelles les résultats devront répondre, vous pouvez utiliser l'opérateur logique -and. Si vous utilisez l'opérateur -and, seuls les objets qui répondent à toutes les conditions spécifiées de l'expression sont affichés. Un sous-ensemble des propriétés d'un message ou d'une file d'attente est utilisé pour spécifier les critères de filtrage. Lorsque vous spécifiez une propriété, cela doit être une propriété valide pour l'objet pour lequel vous effectuez des requêtes et la valeur à respecter doit être exprimée en utilisant la syntaxe correcte. Lorsqu'une valeur de propriété n'est pas exprimée comme un simple nombre entier, assurez-vous qu'il est entre guillemets.

Le paramètre Server peut être inclus dans une commande avec le paramètre Filter. Le paramètre Server permet de spécifier le nom d'hôte ou le FQDN du serveur auquel vous voulez vous connecter en utilisant un appel de procédure distante, afin d'interroger les files d'attente et les messages sur ce serveur et récupérer un jeu de résultats.

Pour plus d'informations sur les propriétés qui peuvent être utilisées pour le filtrage, la syntaxe correcte de ces propriétés et les opérateurs pris en charge, consultez les rubriques suivantes :

Utilisation du paramètre Queue

Le paramètre Queue est uniquement utilisé avec les commandes de messages. Ce paramètre permet de spécifier l'identité de la file d'attente à partir de laquelle les messages sont récupérés. Si une file d'attente est spécifiée, tous les messages de cette file d'attente sont récupérés. Cela permet de récupérer tous les messages à partir d'une file d'attente particulière sans avoir à utiliser une expression de filtrage. Vous pouvez récupérer les messages dans plusieurs files d'attente en utilisant un caractère générique. Utilisez le format d'identité de file d'attente à partir du tableau 2 lorsque vous utilisez le paramètre Queue avec une commande de message. L'exemple de code suivant décrit l'utilisation du paramètre File d’attente avec une cmdlet Get-Message. Cet exemple produit un jeu de résultats contenant uniquement des messages qui sont localisés sur le serveur spécifié et qui sont mis en attente pour la remise sur le domaine SMTP Contoso.com :

Get-message -Queue Server\Contoso.com

Utilisation des paramètres de pagination avancée

En fonction du flux des messages, les requêtes sur les files d'attente et les messages peuvent retourner un jeu d'objets conséquent. Les paramètres de pagination avancée permettent de surveiller la récupération et l'affichage des résultats des requêtes.

Lorsque vous utilisez Exchange Management Shell pour afficher les files d'attente et les messages dans les files d'attente, votre requête récupère une page d'informations à la fois. Les paramètres de pagination avancée surveillent la taille du jeu de résultats et peuvent également être utilisés pour trier les résultats. Tous les paramètres de pagination avancée sont facultatifs et peuvent être associés à un des jeux de paramètres pouvant être utilisés avec les cmdlets Get-Queue et Get-Message. Si vous ne spécifiez aucun paramètre de pagination avancée, la requête retourne les résultats en ordre d'identité croissant. Par défaut, lorsqu'un ordre de tri est spécifié, la propriété d'identité du message est toujours incluse et triée dans un ordre croissant. C'est la relation de tri par défaut. La propriété d'identité du message est incluse car les autres propriétés qui peuvent être incluses dans un ordre de tri ne sont pas uniques. En incluant explicitement la propriété d'identité du message dans l'ordre de tri, vous pouvez spécifier que les résultats affichent l'identité du message triée en ordre décroissant.

Les paramètres BookmarkIndex et BookmarkObject permettent de marquer une position dans le jeu de résultats triés. Si l'objet signet n'existe plus lorsque la page suivante de résultats est récupérée, la relation de tri par défaut s'assure que le jeu de résultats démarre avec l'objet le plus proche du signet. L'objet le plus proche dépend de l'ordre de tri spécifié.

Le tableau 4 décrit les paramètres de pagination avancée.

Tableau 4   Paramètres de pagination avancée

Paramètre Description

BookmarkIndex

Le paramètre BookmarkIndex permet de spécifier la position du jeu de résultats où l'affichage dans le jeu de résultats commence. La valeur du paramètre BookmarkIndex a 1 pour index de base dans le jeu de résultats total. Si la valeur est inférieure ou égale à zéro, la première page de résultats complète est retournée. Si la valeur est définie sur Int.MaxValue, la dernière page de résultats complète est retournée.

BookmarkObject

Le paramètre BookmarkObject permet de spécifier l'objet du jeu de résultats où l'affichage dans le jeu de résultats commence. Si vous spécifiez un objet signet, il est utilisé comme point de départ de la recherche. Les lignes se trouvant avant ou après cet objet sont récupérées, en fonction de la valeur du paramètre SearchForward. Vous ne pouvez pas associer les paramètres BookmarkObject et BookmarkIndex dans une seule requête.

IncludeBookmark

Le paramètre IncludeBookmark spécifie si l'objet signet est inclus dans le jeu de résultats. Par défaut, cette valeur est définie sur $true et l'objet signet est inclus. Vous pouvez exécuter une requête pour une taille de résultat limitée, puis spécifier le dernier élément de ce jeu de résultats comme le signet pour la prochaine requête. Dans ce cas, il se peut que vous vouliez définir IncludeBookmark sur $false de telle sorte que l'objet n'est inclus dans aucun des deux jeux de résultats.

ResultSize

Le paramètre ResultSize spécifie le nombre de résultats à afficher par page. Si vous ne spécifiez aucune valeur, la taille de résultat par défaut de 1 000 objets est utilisée. Exchange Server 2007 limite le jeu de résultats à 250 000.

ReturnPageInfo

Le paramètre ReturnPageInfo est un paramètre caché. Il retourne les informations sur le nombre total des résultats et l'index du premier objet de la page actuelle. La valeur par défaut est $false.

SearchForward

Le paramètre SearchForward permet de spécifier le sens de la recherche dans le jeu de résultats. Ce paramètre n'affecte pas l'ordre dans lequel le jeu de résultats est retourné. Il détermine le sens de la recherche relative à l'index ou objet signet. Si aucun objet ou index signet n'est spécifié, le paramètre SearchForward détermine si la recherche démarre à partir du premier ou du dernier objet du jeu de résultats. La valeur par défaut de ce paramètre est $true. Si le paramètre SearchForward est défini sur $true et qu'un signet est spécifié, la requête effectue les recherches en avant à partir de ce signet. Si vous utilisez cette configuration et qu'il n'y a aucun résultat au-delà de ce signet, la requête retourne la dernière page de résultats complète. Si le paramètre SearchForward est défini sur $false et qu'un signet est spécifié, la requête effectue les recherches en arrière à partir de ce signet. Si vous utilisez cette configuration et qu'il y a moins d'une page de résultats complète au-delà de ce signet, la requête retourne la première page de résultats complète.

SortOrder

Le paramètre SortOrder permet de spécifier un tableau des propriétés de message qui sont utilisées pour contrôler l'ordre de tri du jeu de résultats. Les propriétés d'ordre de tri sont spécifiées dans l'ordre décroissant de priorité. Chaque propriété est séparée par une virgule et ajoutée avec un symbole + pour trier dans un ordre croissant, ou un symbole - pour trier dans un ordre décroissant. Si un ordre de tri explicite n'est pas spécifié en utilisant ce paramètre, les enregistrements qui respectent la requête sont affichés et triés par le champ d'identité pour le type d'objet respectif. Les résultats sont toujours triés par identité dans un ordre croissant lorsqu'un ordre de tri n'est pas explicitement spécifié.

L'exemple de code suivant décrit l'utilisation des paramètres de pagination avancée dans une requête. Dans cet exemple, la commande se connecte au serveur spécifié et récupère un jeu de résultats contenant 500 objets. Les résultats affichés sont d'abord triés par ordre croissant des adresses des expéditeurs, puis par ordre de taille décroissant.

Get-message -Server Exchange.Contoso.com -ResultSize 500 -SortOrder +FromAddress,-Size

Si vous voulez afficher les pages successives, vous pouvez définir un signet pour le dernier objet récupéré dans un jeu de résultats et exécuter une requête supplémentaire. Vous devez utiliser les fonctionnalités de script d'Exchange Management Shell pour effectuer cette procédure.

L'exemple suivant utilise des scripts pour récupérer la première page de résultats, définit l'objet signet, exclut l'objet signet du jeu de résultats, puis récupère les 500 objets suivants sur le serveur spécifié.

Exemple : Procédure d'utilisation d'un script pour définir un objet signet

  1. Ouvrez Exchange Management Shell et tapez la commande suivante pour récupérer la première page de résultats :

    $Results=Get-message -Server Exchange.Contoso.com -ResultSize 500 -SortOrder +FromAddress,-Size
    
  2. Pour définir un objet signet, tapez la commande suivante pour enregistrer le dernier élément de la première page à une variable :

    $temp=$results[$results.length-1]
    
  3. Pour récupérer les 500 prochains objets sur le serveur spécifié et pour exclure l'objet signet, tapez la commande suivante :

    Get-message -Server Exchange.Contoso.com -BookmarkObject:$temp -IncludeBookmark $False -ResultSize 500 -SortOrder +FromAddress,-Size
    

Pour plus d'informations