Microsoft Exchange Server 2010: Introduzione a Exchange Management Shell

Exchange Management Shell offre un controllo completo su tutti gli aspetti dell'infrastruttura di Exchange, grazie alla tecnologia Windows Powershell.

Tratte da "Exchange 2010 – un pratico Approach", pubblicato dalla documentazione di Red Gate (2009).

Jaap Wesselius

Exchange Management Shell (EMS) è un'interfaccia di gestione completa che consente di gestire tutti gli aspetti di un'organizzazione di Exchange. I servizi di gestione Emergenze è l'interfaccia di gestione primario. Viene creato il Exchange Management Console (EMC) "in primo piano" di esso. Ogni azione che intrapresa nel EMC viene tradotto in tempo reale in un comando di servizi di gestione Emergenze ed eseguito.

Dietro le quinte, EMS utilizza Windows PowerShell 2.0. In combinazione con le funzionalità di gestione remota di Windows Server 2008 e Windows Server 2008 R2, è possibile gestire l'ambiente di Exchange in modalità remota. EMS è effettivamente un soprainsieme dei comandi basato sulla parte superiore di Windows PowerShell.

Oltre all'interfaccia della riga di comando, Windows PowerShell 2.0 dispone inoltre un ambiente di Scripting integrato, che è un'interfaccia grafica integrata. È possibile utilizzarla per creare facilmente degli script Windows PowerShell. Inoltre è integrato con la gestione remota Windows, pertanto è possibile utilizzare Windows PowerShell per la gestione remota dell'ambiente Exchange 2010 utilizzando il protocollo HTTPS standard. Tutto ciò che serve è una workstation o un server che esegue Windows PowerShell 2.0.

Avviare la Shell

Quando viene avviata l'EMS, fondamentalmente vedrà una casella vuota con un prompt di comando, esattamente come il prompt dei comandi di Windows. È possibile ottenere un elenco dei comandi disponibili in questa fase immettendo il comando Get.

A favore di tali amministratori GUI die-hard, un comando di Windows PowerShell è costituita da due parti: un sostantivo che un verbo. I verbi possono essere istruzioni come get, set, nuovo, rimuovere, abilitare, disabilitare e così via. Il componente sostantivo può essere qualsiasi oggetto in Exchange Server. Combinare semplicemente il sostantivo e verbo simile al seguente:

  • Get-ExchangeServer: recuperare un elenco di tutti i server di Exchange 2010 all'interno dell'organizzazione.
  • Set-MailboxDatabase: impostare una proprietà su un Database delle cassette postali.
  • Nuovo-Mailbox: creare un nuovo utente abilitato alla cassetta postale.
  • Rimuovi-Mailbox: eliminare un oggetto utente e delle rispettive cassette postali.

Se si ha familiarità con Windows PowerShell, per ulteriori informazioni sui comandi dei punteggi di risorse di formazione si trasforma una rapida ricerca sul Web. Impossibile avviare anche dopo il Windows PowerShell colonne su TechNet.

Guida in linea di servizi di gestione Emergenze

Se non vi è nulla di cui non si è sicuri quando si utilizzano i servizi di gestione Emergenze, consultare la Guida di riferimento rapido. Questo si trova in C:\Program Files\Microsoft\ExchangeServer\v14\bin\en\ExQuick.htm. Questo file contiene i cmdlet più importanti e più utilizzate e le variabili.

Se si necessita di aiuto in tempo reale, è possibile utilizzare la funzione di Guida in linea incorporata nello SME. Per ottenere un elenco di tutti gli elementi della Guida disponibile, è sufficiente digitare "help *". Se si necessita di aiuto su uno specifico cmdlet, digitare help e il nome del cmdlet. Per ottenere informazioni sull'abilitazione della posta un utente esistente, ad esempio, è sufficiente digitare "help enable-cassetta postale".

Il pipelining

Un'altra ottima caratteristica in Windows PowerShell e i servizi di gestione Emergenze è il pipelining. L'output di un cmdlet viene utilizzato come input per un secondo. Ciò consente di ridurre drasticamente la quantità di lavoro che è necessario inserire attività relativamente complessa. Esso è limitato solo dalla creatività.

Ad esempio, se si desidera spostare tutte le cassette postali in un database di cassette postali denominato "Database delle cassette postali 1988197524" a un altro database delle cassette postali denominato "0823751426 del Database delle cassette postali", utilizzare il comando riportato di seguito:

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

Ciò avviene:

Get-Mailbox –Database "Database delle cassette postali 1988197524" Recupera un elenco di tutte le cassette postali nel database specifico. L'output di questo cmdlet è utilizzata come input del cmdlet secondo, ovvero la richiesta in linea per spostare le cassette postali in altri database. È inoltre possibile utilizzare le query più specifiche. Ad esempio, per ottenere un elenco di tutte le cassette postali cui nome inizia con "Carlo", utilizzare il comando seguente:

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

È quindi possibile utilizzarla come input per una richiesta per spostare tutte le cassette postali in un altro database:

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

Creazione di massa utenti

Può essere molto utile, in particolare quando è necessario creare una grande quantità di cassette postali in pochissimo tempo. Si supponga che un'unità organizzativa (OU) denominata "Vendite" in Active Directory, che contiene 100 oggetti utente. Questo comando verrà creata una cassetta postale per ciascun utente in questa unità Organizzativa:

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

Quando sono presenti più unità organizzative denominate "Vendite", è necessario specificare il percorso completo dell'unità Organizzativa che si desidera utilizzare:

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

È inoltre possibile filtrare l'output del comando Get-User con il parametro – filter. Ad esempio, per abilitare tutti gli utenti il cui attributo company è impostato su "Inframan", immettere il seguente comando:

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

Se si desidera rendere ancora più specifici, ad esempio, per abilitare tutti gli utenti cui attributo company è impostato su "Inframan" e il cui attributo di reparto è impostato su "Interno", ovvero immettere il seguente comando:

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

Le operazioni riportate di seguito sono disponibili per l'opzione – Filter:

  • - e
  • -oppure
  • -non
  • -eq (uguale)
  • -ne (disuguaglianza)
  • lt-(meno)
  • -gt (maggiore di)
  • -like (confronto tra stringhe)
  • -notlike (confronto di stringhe)

In alcuni casi, risulterà utile per importare un elenco di utenti da un file CSV. È possibile importare questi tipi di elenchi da un altro Active Directory o un'applicazione di risorse umane. È relativamente facile importare un file CSV utilizzando Windows PowerShell. L'unica cosa che è necessario fare attenzione è che l'opzione –Password non accetta input di testo non crittografato. È necessario convertire l'input in questo campo in una stringa protetta:

$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 }

Le prime tre righe, esistono tre set di parametri. Questi parametri vengono utilizzati durante la creazione effettiva dell'utente e la cassetta postale. Il file viene letto in un ciclo ForEach e gli utenti attuali e le cassette postali vengono create durante l'esecuzione del ciclo.

La funzione di SecurePassword legge la password dal file CSV output e lo converte in una stringa protetta, che viene utilizzato, a sua volta, come l'immissione della password durante la creazione degli utenti. Il file CSV è formattato simile al seguente:

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

Per rendere questo script utilizzabile, salvare il file di script come "create.ps1" in una directory come c:\scripts. Inoltre, è necessario salvare il file di output CSV come users.csv nella stessa directory. Per utilizzare effettivamente lo script, aprire un prompt dei comandi di Windows PowerShell, spostarsi nella directory c:\scripts e immettere il seguente comando:

. \create.ps1 users.csv

Queste tecniche consente di ottenere il miglior utilizzo di EMS e utilizzare alcune delle potenzialità di Windows PowerShell di gestire l'infrastruttura di Exchange.

Jaap Wesselius

Jaap Wesseliusè il fondatore di consulenti DM, una società con una grande attenzione sulle soluzioni di messaggistica e collaborazione. Dopo aver lavorato presso Microsoft per otto anni, Wesselius ha deciso di commit più del suo tempo alla Comunità di Exchange nei Paesi Bassi, determinando un award Exchange Server MVP nel 2007. È anche un collaboratore regolare in olandese Unified Communications gruppo utenti e l'autore di una regolare per parlare semplice.

Per ulteriori informazioni su "Exchange 2010 – un pratico approccio" nel red-gate.com/our-company/about/book-store.

Contenuto correlato