Utilizzo di Exchange Management Shell per la gestione delle code

 

Si applica a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Ultima modifica dell'argomento: 2006-09-18

In questo argomento vengono descritti i cmdlet delle code in Exchange Management Shell e l'utilizzo dei cmdlet e degli insiemi di parametri per creare una query, recuperare i risultati ed eseguire azioni di modifica. Per ulteriori informazioni sulle attività delle code e sul relativo utilizzo per il monitoraggio e la risoluzione dei problemi, vedere Gestione delle code.

In Microsoft Exchange Server 2007, è possibile utilizzare Exchange Management Shell per eseguire attività di gestione e configurazione e per creare script per automatizzazione le attività. Exchange Management Shell può anche essere utilizzato per visualizzare le informazioni sulle code presentu su un server e i messaggi contenuti in tali code, nonché per eseguire azioni di gestione sulle code stesse e sugli elementi di posta. Queste operazioni sono utili per la risoluzione dei problemi relativi al flusso di posta e per l'identificazione della posta indesiderata. Per ulteriori informazioni sull'utilizzo di Exchange Management Shell, vedere Utilizzo di Exchange Management Shell.

Gestione di code e messaggi

Le attività delle code sono raggruppate in due categorie: azioni di visualizzazione e azioni di modifica. Le azioni di visualizzazione consentono di visualizzare le code e i messaggi accodati sul server e di selezionare la modalità di raggruppamento e ordinamento dei dati quando vengono visualizzati. Le azioni di modifica sono operazioni che modificano lo stato di code e messaggi. Entrambi i tipi di attività accedono ai dati eseguendo la connessione al processo di lavoro di trasporto tramite chiamate RPC (Remote Procedure Call). Per ulteriori informazioni sul processo di trasporto di Exchange 2007, vedere Architettura di trasporto.

Per impostazione predefinita, Exchange Management Shell si concentra sul server locale. È inoltre possibile eseguire la connessione a un server remoto e visualizzare le code e i messaggi di tale server, specificando il nome del server remoto come parte dell'identità della coda oppure utilizzando il parametro Server con un filtro. Per ulteriori informazioni sull'utilizzo di Exchange Management Shell per visualizzare code e messaggi, vedere Come visualizzare le code e Come visualizzare i messaggi.

Cmdlet delle code

Nella tabella 1 sono riportati i cmdlet disponibili in Exchange Management Shell per la gestione delle code e dei messaggi in esse contenuti. Per ulteriori informazioni su come utilizzare ciascun cmdlet, vedere gli argomenti della Guida elencati nella colonna Per ulteriori informazioni.

Tabella 1   Cmdlet delle code

Cmdlet Sintassi Ulteriori informazioni

Export-Message

Consente di salvare la copia di un messaggio in un percorso file specificato dall'amministratore.

Export-Message

Esposrtazione di messaggi dalle code

Get-Message

Consente di visualizzare i dettagli dei messaggi attualmente accodati per il recapito. Il cmdlet Get-Message può essere utilizzato per recuperare un insieme di messaggi ed eseguire il piping dei risultati a un cmdlet.

Get-Message

Come visualizzare i messaggi

Pipelining

Utilizzo dell'output di comando

Get-Queue

Consente di visualizzare i dettagli di configurazione delle code presenti sui server di trasporto. Il cmdlet Get-Queue può essere utilizzato per recuperare un insieme di code ed eseguire il piping dei risultati a un cmdlet.

Get-Queue

Come visualizzare le code

Pipelining

Utilizzo dell'output di comando

Remove-Message

Consente di eliminare un messaggio da una coda. L'amministratore può scegliere di inviare o meno un rapporto di mancato recapito.

Remove-Message

Rimozione di messaggi dalle code

Resume-Message

Consente di riprendere il recapito di un messaggio precedentemente sospeso. È inoltre possibile utilizzare il cmdlet Resume-Message per reinviare i messaggi presenti nella coda dei messaggi non elaborabili alla coda Invio per la rielaborazione da parte dal classificatore.

Resume-Message

Come riprendere i messaggi

Come inviare nuovamente i messaggi nelle code

Resume-Queue

Consente di riprendere il recapito dei messaggi da una coda precedentemente sospesa.

Resume-Queue

Come riprendere le code

Retry-Queue

Consente di imporre un tentativo di connessione di una coda il cui stato corrente è Riprova. Questa connessione tenta di annullare il successivo tentativo di esecuzione pianificato. Inoltre è possibile utilizzare il cmdlet Retry-Queue unitamente al parametro Resubmit per inviare i messaggi presenti nelle code di recapito o nella coda dei messaggi con destinatari non raggiungibili alla coda Invio per la rielaborazione da parte del classificatore.

Retry-Queue

Come eseguire un nuovo tentativo di elaborazione delle code

Come inviare nuovamente i messaggi nelle code

Suspend-Message

Consente di sospendere il recapito di un messaggio che si trova nella coda di un server di trasporto di Exchange 2007.

Suspend-Message

Come sospendere i messaggi

Suspend-Queue

Consente di sospendere le attività in uscita per una coda presente su un server di trasporto di Exchange 2007.

Suspend-Queue

Come sospendere le code

Utilizzo degli insiemi di parametri delle attività delle code

Le attività delle code supportano più insiemi di parametri. Di seguito sono descritti tali insiemi di parametri: Identity, Queue e Filter. L'insieme di parametri Queue è disponibile solo con i comandi relativi ai messaggi. Gli insiemi di parametri Identity, Queue e Filter non possono essere combinati in un comando. Il parametro Server viene utilizzato solo con un'espressione del filtro.

In combinazione con i parametri Identity, Queue e Filter, è inoltre possibile utilizzare i parametri di paging avanzati disponibili in Exchange Management Shell. I parametri di paging avanzati vengono utilizzati con i cmdlet Get-Message e Get-Queue per controllare la modalità di ordinamento e visualizzazione dell'insieme di risultati. I parametri di paging avanzati vengono descritti nella tabella 4 più avanti in questo argomento.

È necessario utilizzare i parametri Identity, Queue e Filter, quando si utilizza un comando che modifica messaggi o code. Se non vengono forniti parametri, i cmdlet Get-Message e Get-Queue consentiranno di visualizzare ogni oggetto coda o messaggio presente sul server locale.

Se l'insieme di risultati di una query relativa a code o messaggi contiene più di 250.000 elementi, si verificherà un errore e verrà richiesto di applicare un filtro per ridurre il numero dei risultati.

Utilizzo del parametro Identity

Utilizzare il parametro Identity quando il messaggio o la coda specifica che si desidera visualizzare o modificare è nota. La ricerca per identità è più rapida rispetto alla formulazione della stessa query con un filtro. Il nome del server può essere espresso come nome host o nome di dominio completo (FQDN, Fully Qualified Domain Name). È possibile immettere il nome di un server remoto come parte dell'identità per avviare una connessione RPC a tale server e poter eseguire query nelle relative code. Se non viene utilizzato un nome server, verrà considerato implicitamente l'host locale. Quando viene fornita un'identità a un'azione di modifica, l'oggetto identificato deve essere completamente definito e univoco. Se l'identità non è esplicita, l'azione non verrà eseguita. Se viene omessa la parte server dell'identità, verrà considerato implicitamente il computer locale.

Quando viene utilizzato come parte di un cmdlet Get-Queue o Get-Message, il parametro Identity supporta l'utilizzo di espressioni con caratteri jolly.

Identità delle code

Le code permanenti dispongono di nomi univoci e possono essere specificate in base al nome. Alle code di recapito viene assegnata un'identità di database univoca. Per specificare una coda, è possibile utilizzare l'identità di database oppure il nome della destinazione di recapito. Per eseguire un'operazione su una coda specificando la relativa identità di database univoca, è necessario prima eseguire il cmdlet Get-Queue. L'identità di database verrà restituita nei risultati. I formati di identità validi per le code sono riportati nella tabella 2.

Tabella 2   Formati di identità delle code

Formato di identità della coda Sintassi

Server\QueueJetID (Int64)

Identità completa e univoca di una coda di recapito.

\QueueJetID

Identità di una coda sul server locale. Il nome server è stato omesso. Pertanto, viene considerato implicitamente il server locale.

Server\*

Qualsiasi coda nel server specificato.

Server\NextHopDomain

Coda sul server specificato che contiene messaggi per il recapito a un dominio remoto specifico.

\NextHopDomain

Una coda sul server locale contenente messaggi destinati a un dominio specifico.

Server\Poison

Coda Messaggi non elaborabili situata sul server specificato.

Server\Submission

Coda che contiene elementi in attesa di elaborazione da parte del classificatore.

Server\Unreachable

Coda sul server specificato che contiene elementi che non possono essere instradati.

La seguente coda è un esempio di come utilizzare l'identità di una coda con il cmdlet Get-Queue. Questo esempio restituisce un elenco di tutte le code contenenti messaggi per il recapito ai nomi di dominio SMTP (Simple Mail Transfer Protocol) che terminano in Contoso.com. Inoltre, l'esempio consente di visualizzare gli insiemi di risultati nel formato di un elenco dettagliato.

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

Identità dei messaggi

L'identità di un messaggio è un'aggregazione dell'elemento posta del database univoco e dell'identità della coda. Un'identità, nel formato di un numero intero, viene assegnata a un messaggio quando questo viene inserito nel database JET di accodamento e il numero intero viene aggiunto all'identità della coda per creare l'identità del messaggio. Per eseguire un'operazione su un messaggio specificando la relativa identità di database, è necessario prima eseguire il cmdlet Get-Message. L'identità viene restituita nei risultati. Per connettersi a un server remoto, è possibile includere il nome server come parte dell'identità del messaggio. Se il nome server viene omesso, viene considerato implicitamente il server locale. Un messaggio inviato a più destinatari potrebbe essere situato in più code. È possibile utilizzare un carattere jolly per specificare che si desidera inserire il messaggio in ogni coda a cui è stato instradato. Nella tabella 3 vengono forniti esempi di identità dei messaggi valide.

Tabella 3   Formati di identità dei messaggi

Formato di identità del messaggio Sintassi

Server\QueueJetId\MessageJetID

Denominazione completa di un messaggio in una coda.

Server\Poison\MessageJetID

Messaggio situato in una coda di messaggi non elaborabili.

MessageJetID

Tutti i messaggi che presentano l'identità del database JET e vengono instradati a una coda sul server locale (un singolo messaggio instradato a più code).

Server\*\MessageJetID

Tutti i messaggi che presentano l'identità del database JET e vengono instradati a una coda sul server specificato.

La seguente coda è un esempio di come utilizzare l'identità di un messaggio con il cmdlet Get-Message. L'esempio restituisce un elenco di tutti i messaggi che presentano l'identità specificata e che sono situati in una coda sul server specificato. Inoltre, questo esempio consente di visualizzare l'insieme di risultati nel formato di un elenco dettagliato:

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

Utilizzo del parametro Filter

Le attività delle code supportano il parametro Filter per consentire la definizione di criteri per il recupero delle code e dei messaggi. Le proprietà dei messaggi e delle code vengono utilizzate come criteri per il filtro. Creare un filtro per visualizzare un set limitato di code o messaggi. Dopo avere individuato le code e i messaggi da monitorare, è possibile visualizzare le informazioni relative alle proprietà di ciascun oggetto. Queste informazioni sono utili durante risoluzione di problemi relativi al flusso di posta.

Utilizzare il parametro Filter per fornire un'espressione con operatori logici e relazionali in modo che vengano visualizzati solo gli oggetti coda e messaggio che soddisfano i criteri del filtro. È possibile utilizzare l'operatore logico -and per specificare più condizioni cui associare i risultati. Se viene utilizzato l'operatore -and, verranno visualizzati solo gli oggetti associati a tutte le condizioni specificate dell'espressione. Per specificare i criteri del filtro, viene utilizzato un sottoinsieme delle proprietà di un messaggio o di una coda. Devono essere specificate proprietà valide per l'oggetto di cui viene eseguita la query e il valore da associare deve essere espresso utilizzando la sintassi corretta. Se il valore di una proprietà non viene espresso nel formato di un numero intero singolo, assicurarsi che il valore venga racchiuso tra virgolette.

Il parametro Server può essere incluso in un comando insieme al parametro Filter. Utilizzare il parametro Server per specificare il nome host o il nome di dominio completo del server a cui si desidera connettersi utilizzando una chiamata RPC per eseguire la query nelle code e nei messaggi presenti sul server e recuperare un insieme di risultati.

Per ulteriori informazioni sulle proprietà utilizzabili per il filtro, sulla sintassi corretta per tali proprietà e sugli operatori supportati, vedere gli argomenti riportati di seguito:

Utilizzo del parametro Queue

Il parametro Queue viene utilizzato solo con i comandi relativi ai messaggi. Utilizzare questo parametro per specificare l'identità della coda da cui vengono recuperati i messaggi. Se si specifica una coda, vengono recuperati tutti i messaggi che contiene. Questo consente di recuperare tutti i messaggi da una determinata coda senza dover utilizzare un'espressione del filtro. È possibile recuperare messaggi presenti in più code utilizzando un carattere jolly. Quando si utilizza il parametro Queue con un comando relativo ai messaggi, utilizzare il formato di identità della coda specificato nella tabella 2. Nel seguente esempio di codice viene illustrato come utilizzare il parametro Queue con un cmdlet Get-Message. L'esempio genera un insieme di risultati contenente solo messaggi situati sul server specificato e accodati per il recapito al dominio SMTP Contoso.com:

Get-message -Queue Server\Contoso.com

Utilizzo dei parametri di paging avanzati

In base al flusso di posta corrente, le query relative a code e messaggi possono restituire un insieme di oggetti di notevoli dimensioni. È possibile utilizzare i parametri di paging avanzati per controllare come verranno recuperati e visualizzati i risultati delle query.

Quando si utilizza Exchange Management Shell per visualizzare le code e i relativi messaggi, viene recuperata una pagina di informazioni alla volta. I parametri di paging avanzati consentono di controllare la dimensione dell'insieme di risultati, ma anche di ordinarli. Tutti i parametri di paging avanzati sono facoltativi e possono essere combinati con qualsiasi insieme di parametri utilizzabile con i cmdlet Get-Queue e Get-Message. Se non viene specificato alcun parametro di paging avanzato, la query restituisce i risultati in ordine crescente in base all'identità. Per impostazione predefinita, quando si specifica un ordinamento, la proprietà relativa all'identità del messaggio viene sempre inclusa e ordinata in ordine crescente. Questa è la relazione di ordinamento predefinita. La proprietà dell'identità del messaggio viene inclusa poiché le altre proprietà che possono essere incluse in un ordinamento non sono univoche. Includendo esplicitamente nell'ordinamento la proprietà relativa all'identità del messaggio, è possibile specificare che nei risultati l'identità del messaggio venga ordinata in ordine decrescente.

I parametri BookmarkIndex e BookmarkObject consentono di segnare una posizione nell'insieme di risultati ordinato. Se l'oggetto segnalibro non esiste più quando viene recuperata la pagina successiva di risultati, la relazione di ordinamento predefinita garantisce che l'insieme di risultati inizi dall'oggetto più vicino al segnalibro. L'oggetto più vicino dipende dall'ordinamento specificato.

Nella tabella 4 sono descritti i parametri di paging avanzati.

Tabella 4   Parametri di paging avanzati

Parametro Descrizione

BookmarkIndex

Il parametro BookmarkIndex consente di specificare la posizione nell'insieme di risultati da cui iniziano i risultati visualizzati. Il valore del parametro BookmarkIndex è un indice in base 1 nell'insieme di risultati totale. Se il valore è inferiore o uguale a zero, verrà restituita la prima pagina completa dei risultati. Se il valore è impostato su Int.MaxValue, verrà restituita l'ultima pagina completa dei risultati.

BookmarkObject

Il parametro BookmarkObject consente di specificare l'oggetto nell'insieme di risultati da cui iniziano i risultati visualizzati. Una volta specificato, l'oggetto segnalibro viene utilizzato come punto per iniziare la ricerca. Verranno recuperate le righe precedenti o successive all'oggetto, in base al valore del parametro SearchForward. Non è possibile combinare il parametro BookmarkObject e il parametro BookmarkIndex in un'unica query.

IncludeBookmark

Il parametro IncludeBookmark consente di specificare se includere l'oggetto segnalibro nell'insieme di risultati. Per impostazione predefinita, questo valore è impostato su $true e l'oggetto segnalibro è incluso. È possibile eseguire una query relativa a una dimensione dei risultati limitata e specificare l'ultimo elemento nell'insieme di risultati come segnalibro per la query successiva. In questo caso, è possibile impostare IncludeBookmark su $false in modo che l'oggetto non sia incluso in entrambi gli insiemi di risultati.

ResultSize

Il parametro ResultSize consente di specificare il numero di risultati da visualizzare per pagina. Se non si specifica un valore, viene utilizzata la dimensione predefinita di risultati pari a 1.000 oggetti. In Exchange Server 2007 l'insieme di risultati è limitato a 250.000 oggetti.

ReturnPageInfo

ReturnPageInfo è un parametro nascosto che restituisce informazioni sul numero totale di risultati e sull'indice del primo oggetto della pagina corrente. Il valore predefinito è $false.

SearchForward

Il parametro SearchForward consente di specificare se cercare in avanti o all'indietro nell'insieme di risultati. Questo parametro non influisce sull'ordine in cui viene restituito l'insieme di risultati. Consente di determinare la direzione della ricerca in relazione all'oggetto o all'indice del segnalibro. Se questi non vengono specificati, il parametro SearchForward consente di determinare se la ricerca inizia dal primo o dall'ultimo oggetto nell'insieme di risultati. Il valore predefinito per questo parametro è $true. Se il parametro SearchForward è impostato su $true e viene specificato un segnalibro, la query esegue una ricerca in avanti a partire dal segnalibro. Se si utilizza questa configurazione e non è presente alcun risultato oltre il segnalibro, la query restituisce l'ultima pagina completa di risultati. Se il parametro SearchForward è impostato su $false e viene specificato un segnalibro, la query esegue una ricerca all'indietro a partire dal segnalibro. Se si utilizza questa configurazione ed è presente meno di una pagina completa di risultati oltre il segnalibro, la query restituisce la prima pagina completa di risultati.

SortOrder

Il parametro SortOrder consente di specificare una matrice di proprietà dei messaggi che vengono utilizzate per controllare l'ordinamento dell'insieme di risultati. Le proprietà dell'ordinamento sono specificate in ordine decrescente in base alla priorità. Ogni proprietà è separata da una virgola e presenta il simbolo + per l'ordine crescente oppure il simbolo - per l'ordine decrescente. Se non viene specificato un ordinamento in modo esplicito tramite questo parametro, i record che soddisfano la query vengono visualizzati e ordinati in base al campo Identità del relativo tipo di oggetto. Quando l'ordinamento non viene specificato in modo esplicito, i risultati vengono sempre ordinati in base all'identità in ordine crescente.

Nel seguente esempio di codice viene illustrato come utilizzare i parametri di paging avanzati in una query. In questo esempio, il comando esegue la connessione al server specificato e recupera un insieme di risultati contenente 500 oggetti. I risultati vengono visualizzati in base a un ordinamento, prima in ordine crescente per indirizzo del mittente, quindi in ordine decrescente per dimensione del messaggio:

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

Per visualizzare le pagine successive, è possibile impostare un segnalibro per l'ultimo oggetto recuperato in un insieme di risultati ed eseguire un'ulteriore query. Per completare la procedura, è necessario utilizzare le funzionalità di scripting di Exchange Management Shell.

Nell'esempio riportato di seguito viene utilizzato lo scripting per recuperare la prima pagina di risultati, impostare l'oggetto segnalibro, escludere l'oggetto segnalibro dall'insieme di risultati e recuperare i 500 oggetti successivi sul server specificato.

Esempio: utilizzo dello scripting per impostare un oggetto segnalibro

  1. Aprire Exchange Management Shell e digitare il seguente comando per recuperare la prima pagina di risultati:

    $Results=Get-message -Server Exchange.Contoso.com -ResultSize 500 -SortOrder +FromAddress,-Size
    
  2. Per impostare l'oggetto segnalibro, digitare il seguente comando per salvare l'ultimo elemento della prima pagina in una variabile:

    $temp=$results[$results.length-1]
    
  3. Per recuperare i 500 oggetti successivi sul server specificato e per escludere l'oggetto segnalibro, digitare il seguente comando:

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

Ulteriori informazioni