Office 365: connessione alla Powershell

Gioxx  —  31/03/2014 — 2 Comments

Powershell_512px-GWallMettetevi il cuore e l’anima in pace: se decidete di avere a che fare con Office 365 e non vi basta l’interfaccia grafica messa a disposizione da Microsoft dovrete fare i conti con la PowerShell di Windows. Connettersi in PowerShell al proprio Exchange Online richiede alcuni comandi basilari e specifici pacchetti di sistema che se non presenti andranno installati.

Tutto gratuito e ampiamente documentato in maniera ufficiale e non (il web è davvero pieno di persone come me e community che parlano di questo argomento per aiutare il prossimo) ;-)

Da dove cominciare

Va capito innanzi tutto se il vostro sistema è provvisto di PowerShell (da Windows 7 in poi è generalmente presente). Dovreste trovare il prompt andando in Start / Tutti i programmi / Accessori / Windows PowerShell. Alla classica PowerShell già presente in Windows conviene già aggiungere il modulo Azure per Active Directory, come riportato in questo documento di Technet: technet.microsoft.com/en-us/library/jj151815.aspx#bkmk_installmodule. Scegliete la vostra versione (32 o 64 bit), scaricatela ed installatela a bordo della vostra macchina, vi servirà sicuramente in futuro (anche per quello che riguarda miei script o piccoli snippet). Occhio perché per l’installazione del modulo Azure per AD serve prima avere installato l’Assistente per l’accesso a Microsoft Online Services (anch’esso disponibile a 32 o 64 bit).

Update

Attenzione: dal 19/1/2015, Microsoft ha smesso di supportare (e far scaricare dalla pagina principale) il modulo di collegamento all’Active Directory di Azure per macchine a 32 bit. Per scaricare l’ultima versione (quella più aggiornata) su macchine x86, dovrai passare dalla pagina social.technet.microsoft.com/wiki/contents/articles/28552.microsoft-azure-active-directory-powershell-module-version-release-history.aspx#Where_can_I_find_the_latest_version_of_AAD_PowerShell. Se vuoi far prima, fai clic direttamente qui :-)

Update

Aggiornamento 03/04/2014
Anche se nessuno lo ha notato / segnalato, prima di poter lanciare script o comandi in PowerShell sarà necessario abilitare la stessa a ricevere / eseguire comandi e script senza alcuna restrizione, come spiegato all’interno di un documento di Technet disponibile all’URL technet.microsoft.com/en-us/library/ee176847.aspx. Il comando da lanciare è quindi semplice (e dovrà essere fatto da PowerShell, ndr):

Set-ExecutionPolicy Unrestricted

Fatto una volta, non andrà poi ripetuto in futuro e vi permetterà di utilizzare comandi e script senza ulteriori esitazioni. Se la shell dovesse restituirvi un errore provate a chiuderla e rilanciarla con privilegi amministrativi (tasto destro / Esegui come amministratore).

Il collegamento alla PowerShell si effettua attraverso tre semplici righe da immettere nel prompt, vi conviene salvarle in un file .ps1 (estensione dedicata agli script PowerShell) così da richiamarlo più facilmente ogni volta che ne avete bisogno.

Qualche riga per il collegamento rapido

Giusto per capire meglio l’ultima riga del precedente paragrafo: aprite un editor di testo (Notepad++ è perfetto anche per questo) e incollate questo codice:

$UserCredential = Get-Credential -Credential utente@dominio.tld
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session

Avendo cura di sostituire “utente@dominio.tld” con un utente realmente esistente sul vostro Office 365 che abbia diritti amministrativi della parte Exchange. Così facendo vi comparirà un popup dove inserire la password dell’account per permettere così al prompt di creare un ponte verso la vostra console:

Lo trovate anche sul Wiki: public.gfsolone.com/wiki/doku.php?id=o365:pshellconnect. Comodo e rapido da richiamare ogni volta che si ha necessità di collegarsi. Eseguire uno script in PowerShell è facile, basta iniziare a scrivere il nome del file ps1 e lasciarlo completare al tabulatore (sulla tastiera), quindi un invio per confermare l’esecuzione.

Una volta dentro ogni comando sarà a vostra disposizione e potrete effettuare qualsiasi operazione sui vostri dati, caselle, domini, ecc., questo ovviamente è un altro argomento e per oggi si parla solo dei fondamentali “prima di partire con il lavoro sporco“.

Ricordati di chiudere la porta

Come in ogni casa che si rispetti, occorre ricordarsi di chiudere la porta prima di abbandonare il locale. Ogni sessione aperta verso la vostra console deve avere un inizio ed una fine, per questo motivo esiste un semplice comando che vi permetterà di controllare il numero di sessione a voi assegnato, quindi un secondo per chiuderla:

Get-PSSession
Remove-PSSession 1

Esattamente come mostrato qui di seguito (dove il numero 1 dopo il Remove-PSSession è dovuto a quello che vedete qui in immagine nella colonna “Id”):

Questo perché c’è un numero massimo di sessioni aperte verso Exchange per ciascuna persona (se la memoria non inganna sono 3 simultanee, chiedo l’aiuto del pubblico per questa volta) e ogni tanto non chiuderne una potrebbe obbligarvi a star fermi, chiusi fuori casa in attesa del timeout di una delle sessioni per poter rientrare.

Questo è ciò che vi serve per partire, il collegamento alla PowerShell è la porta verso il mondo dell’amministrazione Exchange non grafica, la migliore quando serve mettere pesantemente mano alla vostra nuova infrastruttura di posta elettronica.

Benvenuti a bordo.

ATTENZIONE: Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :)

Condividi l'articolo con i tuoi contatti: