Concetti di base relativi a Exchange Management Shell

 

Ultima modifica dell'argomento: 2007-01-31

Di David Strome

Una novità di Microsoft Exchange Server 2007 è Exchange Management Shell, una potente interfaccia di gestione basata sulla tecnologia Microsoft Windows PowerShell. Exchange Management Shell consente di eseguire tutte le attività disponibili in Exchange Management Console e anche una serie di ulteriori attività che non sono eseguibili in Exchange Management Console. Inoltre, quando un'attività viene eseguita in Exchange Management Console, lo stesso comando viene reso disponibile in Management Shell e chiamato per elaborare la richiesta.

Nella figura 1 viene illustato il funzionamento di Exchange Management Shell.

Figura 1   Exchange Management Shell

Spostamento della cassetta postale visualizzato in Exchange Management Shell

A prima vista, la shell può sembrare difficile da utilizzare per gli utenti che non hanno dimestichezza con la riga di comando. In realtà, la shell consente di eseguire diverse attività ed è molto semplice avviarla, come descritto di seguito:

  • Script più semplici e sicuri   Exchange Management Console non utilizza semplicemente Exchange Management Shell per eseguire le operazioni. Nelle procedure guidate vengono mostrati i comandi di Exchange Management Shell che vengono utilizzati. I comandi creati dalle procedure guidate possono essere copiati e incollati direttamente nella riga di comando o in uno script. Una volta modificati i parametri in base alle proprie esigenze, verificare gli script o i comandi utilizzando il parametro WhatIf che consente di visualizzare i risultati prima di apportare qualsiasi modifica all'ambiente.

    Se la modifica dei parametri WhatIf risulta complicata, è sufficiente vedere la sezione "Using the Exchange Management Shell" nella documentazione di Microsoft Exchange Server 2007 (informazioni in lingua inglese). Le informazioni contenute in questa sezione consentiranno all'utente di utilizzare immediatamente Exchange Management Shell.

  • Semplicità e chiarezza   Sono state utilizzate coppie di verbo e nome coerenti per identificare in modo chiaro la funzionalità o il componente da gestire e l'azione da eseguire. La stessa chiarezza è stata utilizzata per la descrizione dei cmdlet. Quando viene visualizzato il cmdlet Move-Mailbox, l'utente ne conosce perfettamente la funzione, ovvero lo spostamento delle cassette postali.

  • Ottimizzazione di tempo e risorse   Exchange Management Shell fornisce una piattaforma di script potente e flessibile da integrare con le soluzione di script correnti e consente di comunicare in modalità nativa con le origini dati COM e Gestione strumentazione Windows. Le risorse e il tempo a disposizione vengono utilizzati razionalmente per creare soluzioni utili anziché creare una struttura che li supporti.

  • Non è necessaria alcuna analisi del testo   Basati su Microsoft .NET, i cmdlet di Exchange Management Shell accettano e restituiscono dati strutturati anziché testo normale. In questo modo, i dati possono essere elaborati facilmente più volte senza complicate analisi del testo. È inoltre possibile trasformare i file CSV e XML in oggetti che possono essere modificati e utilizzati in una sola riga.

Pochi concetti fondamentali

Prima di utilizzare Exchange Management Shell, può essere utile conoscere alcuni concetti fondamentali.

  • Tecnologia Windows PowerShell sottostante   Windows PowerShell è una nuova interfaccia della riga di comando potente ed estremamente flessibile basata su .NET Framework. Combina le funzioni migliori di diverse shell, più alcune ottime nuove funzionalità. PowerShell è stata progettata per ospitare altre applicazioni e come Microsoft Management Console (MMC) agisce in qualità di host per i vari snap-in forniti con le applicazioni installate in un computer. Exchange Management Shell è il primo snap-in di Microsoft PowerShell a essere rilasciato.

  • Cmdlet   Pronunciato "command-let", è la più piccola unità funzionale in Exchange Management Shell. I cmdlet sono simili ai comandi incorporati in altre shell, ad esempio il comando Dir che si trova in cmd.exe. Allo stesso modo, i cmdlet possono essere richiamati direttamente dalla riga di comando in Exchange Management Shell ed eseguiti nel contesto della shell, non come un processo separato. Diversamente dalle altre shell, in Exchange Management Shell i cmdlet dispongono di nomi descrittivi che sono combinazioni di verbo e nome. Il verbo descrive l'azione eseguita dal cmdlet e il nome descrive il componente o la funzionalità eseguita. Ad esempio, il cmdlet New-SystemMessage consente di creare nuove notifiche sullo stato del recapito (DSN) o messaggi di quota nei computer in cui è installato il ruolo del server Trasporto Hub.

    Per ulteriori informazioni su cmdlet specifici, vedere la sezione "Exchange Management Shell" nel nodo di riferimento tecnico della Guida di Exchange 2007 (informazioni in lingua inglese).

  • Parametri di identità e di posizione   I parametri sono elementi che forniscono informazioni sul cmdlet, identificando un oggetto e i relativi attributi applicati o controllando il modo in cui il cmdlet esegue l'attività. Il parametro Identity può essere utilizzato con la maggior parte dei cmdlet di Exchange. Il parametro Identity consente l'accesso agli identificatori univoci che fanno riferimento a un particolare oggetto in Exchange 2007. Ciò consente di eseguire azioni su un oggetto di Exchange specifico utilizzando il valore univoco più opportuno.

    Il parametro Identity è una raccolta di valori da altri parametri. Viene inoltre garantita l'univocità di questi valori all'interno dell'insieme di oggetti. È possibile specificare i valori degli altri parametri, quali Name e DistriguishedName, oppure è possibile che i valori vengano generati dal sistema come un GUID. I parametri aggiuntivi utilizzati, se presenti, e le relative modalità di riempimento dipendono dall'oggetto a cui si fa riferimento.

    Il parametro Identity è considerato anche un parametro posizionale. Un parametro posizionale è un parametro che consente di specificare il valore del parametro senza specificare il nome del parametro. Un parametro è un parametro posizionale se l'attributo Parameter Position è un numero intero. Il numero intero indica la posizione nella riga di comando in cui il cmdlet può trovare il valore del parametro. Poiché Identity è un parametro di posizione che si trova nella posizione 1 ovvero nella prima posizione, i valori immessi in questa posizione senza un nome per il parametro sono considerati un valore del parametro Identity.

    Quali sono le conseguenze? In questo modo, si riduce il numero di digitazioni quando si digitano comandi. Ad esempio, Get-Mailbox "Kim Akers" consente di eseguire la stessa azione di Get-Mailbox -Identity "Kim Akers".

  • Pipelining    In Exchange Management Shell il pipelining è l'esecuzione di un'operazione da parte di un cmdlet utilizzando l'output di un altro cmdlet quando viene eseguita un'operazione. È possibile utilizzare il pipelining per collegare due o più cmdlet. Ciò significa che è possibile comporre le caratteristiche dei singoli componenti per realizzare una funzionalità più potente. Ad esempio, è possibile utilizzare un cmdlet per raccogliere i dati, passare questi ultimi a un secondo cmdlet per filtrare i dati e ottenerne un sottoinsieme, quindi passare quest'ultimo a un terzo cmdlet per eseguire un'azione su un insieme ristretto di informazioni, come nell'esempio seguente in cui tutte le cassette postali del database Sales vengono spostate nel database Research sullo stesso server:

    Get-MailboxDatabase Sales | Get-Mailbox | Move-Mailbox -TargetDatabase Research
    

    Utilizzo del simbolo barra verticale "|" Il database delle cassette postali Sales viene innanzitutto recuperato utilizzando il cmdlet Get-MailboxDatabase e viene eseguito il piping dell'oggetto risultante al cmdlet Get-Mailbox. Tutte le cassette postali nel database Sales vengono quindi recuperate dal cmdlet Get-Mailbox. Viene quindi eseguito il piping dell'insieme di cassette postali risultante al cmdlet Move-Mailbox, spostando in tal modo le cassette postali nel database delle cassette postali Research. Questo comando è stato illustrato nella figura 1 di questo articolo.

    Tutti i comandi dello stesso insieme nome-cmdlet sono in grado di utilizzare informazioni prodotte da un altro comando tramite il piping. Alcuni insiemi nome-cmdlet consentono inoltre il passaggio dei dati attraverso la pipeline a un altro insieme nome-cmdlet. Che cosa si intende per "insieme nome-cmdlet"? Tutti i cmdlet di Exchange Management Shell che gestiscono una particolare funzionalità condividono lo stesso nome, ad esempio Mailbox o AddressList. Per un elenco di tutti i cmdlet ordinati per nome, vedere Cmdlet List (informazioni in lingua inglese).

Avvio di Exchange Management Shell

Gli snap-in di Windows PowerShell sono insiemi di cmdlet utilizzati per amministrare un'applicazione o un componente principale. Se lo snap-in per l'applicazione specifica non è stato caricato, non è possibile utilizzare i cmdlet associati.

Conseguenze: se PowerShell viene avviato senza caricare lo snap-in di Exchange Management Shell e si cerca di inviare un cmdlet di Exchange Management Shell, ad esempio Get-Mailbox, verrà visualizzato un messaggio di errore. Cause: il cmdlet Get-Mailbox non esiste nell'insieme dei cmdlet fondamentali di PowerShell.

Operazioni preliminari: aprire Exchange Management Shell. Fare clic sul pulsante Start, scegliere Programmi, Microsoft Exchange Server 2007, quindi Exchange Management Shell.

Per ulteriori informazioni preliminari e introduttive, vedere Nuova funzionalità amministrativa in Exchange Management Shell.

Visualizzazione della Guida

Per Exchange 2007, il team per la formazione utenti di Microsoft Exchange ha sviluppato una esauriente documentazione disponibile all'interno di Exchange Management Shell e nel file della Guida di Exchange Server 2007 disponibile in Exchange Management Console e in linea.

Nella shell, il cmdlet Get-Help rappresenterà una risorsa di valore inestimabile per spostarsi all'interno di Exchange Management Shell. Si consiglia di consultare la sezione Operazioni nel file della Guida di Exchange Server 2007. Sono incluse decine di argomenti relativi alle procedure che consentiranno di eseguire la maggior parte delle attività amministrative utilizzando Exchange Management Shell ed Exchange Management Console. È possibile accedere al file della Guida di Exchange Server 2007 dal menu Start di Exchange 2007 e in linea all'indirizzo Microsoft Exchange Server 2007 (informazioni in lingua inglese).

Guida nella shell

All'interno della shell, utilizzare il cmdlet Get-Help per accedere alla Guida specifica per i cmdlet in vari formati. Digitando Get-Help vengono visualizzate le informazioni generali della Guida. Il cmdlet Get-Help è più efficace quando si forniscono i parametri.

Per visualizzare la Guida per un cmdlet specifico, digitare Get-Help seguito dal cmdlet sul quale si desidera ottenere informazioni, ad esempio Get-Help Get-SystemMessage. Per impostazione predefinita, nella shell viene visualizzata una descrizione del cmdlet e della relativa sintassi. Sono state eliminate le altre sezioni che potrebbero non essere utilizzate da tutti gli amministratori.

È possibile controllare le informazioni presentate utilizzando i parametri Detailed, Full ed Example. È sufficiente aggiungerli alla fine del comando. Ad esempio, Get-Help –Full restituisce tutte le sezioni della Guida disponibili per un cmdlet. Provare a inviare dei comandi per visualizzare le informazioni relative ai cmdlet più utilizzati.

Se si desidera recuperare le informazioni su un parametro o su parametri specifici per un cmdlet, è possibile utilizzare il parametro Parameters con il cmdlet Get-Help. Ad esempio, per visualizzare tutti i parametri e le relative descrizioni del cmdlet Set-Mailbox che contiene il termine “quota”, digitare Get-Help Set-Mailbox –Parameter *quota*.

Potrebbe inoltre essere necessario visualizzare un elenco dei cmdlet che consentono di gestire un ruolo del server specifico o una funzionalità di un componente o che riguardano gli oggetti in un determinato ambito di funzionalità. È possibile eseguire questa operazione utilizzando il cmdlet Get-Help e i tre parametri. Role, Component e Functionality. Quando si utilizza il cmdlet Get-Help con questi parametri, è necessario racchiudere i valori specificati con tali parametri in caratteri jolly (*). Gli esempi riportati di seguito descrivono come richiamare Get-Help con ciascun parametro:

  • Get-Help -Role *Mailbox*

  • Get-Help -Component *Recipient*

  • Get-Help -Functionality *Server*

Nell'argomento “Visualizzazione della guida” del file della Guida di Exchange Server 2007 sono elencati tutti i valori relativi ai ruoli, ai componenti e alle funzionalità che è possibile utilizzare.

Formattazione dell'output di comando

Per impostazione predefinita, quando l'output di comando viene visualizzato sulla schermata, Exchange Management Shell visualizza solo un sottoinsieme delle proprietà disponibili per ciascun oggetto. Cause Ogni oggetto contiene decine di proprietà e sarà necessario ottimizzare l'output di comando in base alle proprie esigenze. È possibile accedere e visualizzare facilmente tutte le proprietà eseguendo il piping dell'output di un comando ai tre seguenti cmdlet di formattazione: Format-List, Format-Table e Format-Wide.

Format-List e Format-Table sono i cmdlet utilizzati più di frequente. Di seguito ne viene riportata una breve descrizione.

Il cmdlet Format-List riceve l'input dalla pipeline e genera un elenco in colonna verticale di tutte le proprietà specifiche di ciascun oggetto. È possibile specificare le proprietà che si desidera visualizzare utilizzando il parametro Property, ovvero un parametro di posizione. Se il cmdlet Format-List viene richiamato senza alcun parametro specifico, vengono generate tutte le proprietà. Il cmdlet Format-List non tronca le righe, ma ne riporta il testo a capo. L'utilizzo del cmdlet Format-List è utile per ignorare l'output predefinito di un cmdlet consentendo di recuperare informazioni aggiuntive o più dettagliate, come nell'esempio Get-DistributionGroup | Format-List Name, *OnlyFrom, PrimarySmtpAddress, *Size*. Nella figura 2 viene illustrato l'output di questo comando.

Figura 2   Output di esempio Format-List

Output di esempio per il cmdlet Format-Table

Il cmdlet Format-Table consente di visualizzare gli elementi dei dati proprietà in un formato di tabella con intestazioni di etichetta e colonne. Per impostazione predefinita, vari cmdlet quali Get-Mailbox e Get-JournalRule utilizzano il formato di tabella per l'output. Tra i parametri relativi al cmdlet Format-Table sono inclusi i parametri Properties e GroupBy e funzionano esattamente come il cmdlet Format-List. Per visualizzare completamente righe lunghe di informazioni sulle proprietà anziché troncarle alla fine di una riga, utilizzare il parametro Wrap con il cmdlet Format-Table, come illustrato nell'esempio seguente: Get-Mailbox -Database Research | Format-Table Name, ProhibitSendQuota, Database -Wrap. Nella figura 3 viene illustrato l'output di questo comando.

Figura 3   Output di esempio Format-Table

Output di esempio per il cmdlet Format-Table

È inoltre possibile specificare un carattere jolly "*" con un nome proprietà parziale con entrambi i cmdlet Format-List e Format-Table, come illustrato nella figura 2. Se si include un carattere jolly, è possibile applicare delle corrispondenze tra più proprietà senza che sia necessario digitare singolarmente tutti i nomi delle proprietà. Ad esempio, Get-Mailbox | Format-List -Property Email* restituisce tutte le proprietà che iniziano con Email. Viene impiegato meno tempo nella digitazione e si dispone di più tempo per utilizzare Exchange 2007.

Ulteriori informazioni

Per ulteriori informazioni su Exchange 2007 ed Exchange Management Shell, vedere le seguenti risorse:

e20b37a2-3200-4bd5-af71-09c580f78091 David Strome - redattore tecnico, Microsoft Exchange Server

-