Come ripristinare una cassetta postale eliminata con PowerShell

Indipendentemente dal modo in cui hai eliminato accidentalmente la cassetta postale di una persona in Exchange , probabilmente puoi ripristinarla utilizzando PowerShell ( PoSh ). La chiave è farlo non appena ti rendi conto che la casella di posta è stata eliminata. 

È un momento da brivido quando ci rendiamo conto di averlo fatto accidentalmente. Se hai eliminato solo alcuni messaggi di posta elettronica, possiamo mostrarti come recuperare i messaggi di posta elettronica eliminati(how to recover deleted emails in Office 365) anche in Office 365.

Prima di iniziare, tieni presente che questo è pensato per ripristinare le cassette postali eliminate in Exchange Online per l'ambiente Office 365 ed Exchange 2010 . Si presume inoltre che tu disponga dei diritti amministrativi per utilizzare i metodi descritti e che tu abbia eseguito alcuni script di PowerShell di base(basic PowerShell scripting)

Cosa succede quando una casella di posta viene eliminata?(What Happens When a Mailbox Is Deleted?)

La cassetta postale viene spostata nel Cestino di Azure Active Directory (AD) in (Azure Active Directory )Exchange Online o nella directory Cassette postali disconnesse(Disconnected Mailboxes ) in Exchange 2010.

Può rimanere lì per un massimo di 30 giorni a seconda delle politiche di conservazione in vigore. Questo ci dà un periodo di grazia per riconoscere il nostro errore e riprenderci da esso.

Ripristina una cassetta postale eliminata in Exchange Online(Restore a Deleted Mailbox In Exchange Online)

Connetti a Exchange Online tramite PowerShell(Connect To Exchange Online Via PowerShell)

Nella tua sessione locale, apri la console di Powershell e usa il comando seguente per impostare le tue credenziali di accesso nella variabile.

$userCredential

Questo rende più facile lavorare con altri script in un secondo momento.

$userCredential = get-Credential

Si aprirà una finestra in cui inserire il nome utente e la password per la gestione di Exchange Online(Exchange Online) .

Quindi, imposta il livello della politica di esecuzione in modo che possiamo effettivamente fare le cose nella nostra sessione. Questo ci consente di eseguire i nostri comandi non firmati. Ma potresti anche voler imparare le migliori pratiche per la firma di script di PowerShell(best practices for signing PowerShell scripts) .

set-ExecutionPolicy Unrestricted

Quando richiesto, premere Y per Sì.

Ora creeremo la variabile $session da utilizzare per aprire una connessione tra il computer locale ed Exchange Online .

$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $userCredential -Authentication Basic -AllowRedirection

Powershell-liveid è l'ID del tuo sito Office . Di solito si tratta di una variazione del nome della tua azienda. 

Utilizzare il comando seguente per aprire una sessione PoSh su Exchange Online :

import-PSSession $Session -DisableNameChecking

Ora stiamo lavorando con PowerShell direttamente in Exchange Online , anche se siamo seduti al nostro computer.

Ripristina una cassetta postale eliminata con PowerShell(Restore a Deleted Mailbox With PowerShell)

La parte successiva è semplicissima. Fare la connessione ci avrà impiegato molto più tempo. 

Tutto quello che dobbiamo fare è eseguire il cmdlet mostrato di seguito:

undo-SoftDeletedMailbox [email protected] -WindowsLiveID [email protected] -Password (ConvertTo-SecureString -String 'newpassword' -AsPlainText -Force)

Modificare entrambe le istanze di [email protected] con il nome della cassetta postale e il Windows(Windows LiveID) LiveID appropriati della cassetta postale che si desidera ripristinare. Nota che potrebbero non essere la stessa cosa. 

Dobbiamo anche impostare una nuova password per la casella di posta. Cambia newpassword nello script con la password di tua scelta. Dovrai trasmetterlo all'utente e chiedere loro di cambiare la password al prossimo accesso.

Infine, usa il cmdlet successivo per verificare che abbia funzionato. 

get-Mailbox [email protected]

Se è stato ripristinato, il cmdlet restituirà informazioni sulla cassetta postale ripristinata. Se restituisce un errore, eseguire nuovamente i comandi e assicurarsi che vengano utilizzati  la cassetta postale e Windows LiveID corretti.(Windows LiveID)

Se ancora non funziona, dovremo ripristinare la casella di posta da un backup di sistema. Esistono molti tipi di backup di sistema, quindi questo va oltre lo scopo di ciò che stiamo facendo oggi.

Quando abbiamo finito, dobbiamo chiudere la sessione PoSh . Il numero di sessioni PoSh che abbiamo in esecuzione è limitato. Lasciarlo aperto utilizza una di quelle sessioni. A meno che non lo chiudiamo, dovremo aspettare che la sessione scada prima di poterne iniziare un'altra.

remove-PSSession $Session

Questo è tutto. Potresti anche voler eseguire lo script in un modulo PowerShell(PowerShell Module) per facilità d'uso se si verifica di nuovo.

Ripristina una cassetta postale eliminata in Exchange 2010(Restore a Deleted Mailbox In Exchange 2010)

Questo non funziona per Office 365 o ambienti ibridi. Funziona solo per Exchange 2010 in locale. 

Sul server di posta, aprire Exchange Management Console (EMC). 

Passare a Configurazione destinatario(Recipient Configuration ) > Cassetta postale disconnessa(Disconnected Mailbox) . Dovremmo vedere la casella di posta dell'utente lì. 

In caso contrario, il processo di pulizia del database delle cassette postali non è ancora avvenuto. Va bene, possiamo forzarlo.

  • Aprire Exchange Management Shell ( EMS ) come amministratore. È qui che possiamo eseguire il lavoro di PowerShell specifico per Exchange(Exchange-specific PowerShell) .
  • Ora entriamo nel cmdlet: 
Get-MailboxDatabase | Clean-MailboxDatabase

  • Fatto ciò, torniamo all'EMC(EMC) e facciamo clic con il pulsante destro del mouse su Disconnected Mailbox , quindi clicchiamo su Refresh
  • Dovremmo vedere la casella di posta lì ora, ed è, insieme a un'altra che è stata eliminata di recente.

  • Torna a EMS e inserisci il cmdlet: 
Connect-Mailbox -Identity "username" -Database "Mailbox Database" -User "username"
  • Nome utente(Username) è il nome dell'account Windows della persona (come Utente di prova(Test User) ) e il (,)database delle cassette postali(Mailbox Database) è il nome del database elencato accanto al nome nella finestra Cassetta postale disconnessa(Disconnected Mailbox) in EMC. 
  • Aggiorna la casella di posta disconnessa(Disconnected Mailbox) e dovresti vedere che la loro casella di posta non è più visualizzata lì. Passare a Configurazione destinatario(Recipient Configuration ) > Cassetta postale(Mailbox ) e assicurarsi che la cassetta postale dell'utente sia presente.

Controllalo per assicurarti che tutte le impostazioni siano corrette, come l'indirizzo e-mail e l'alias. Se sembra a posto, la prossima volta che l'utente aprirà il proprio Outlook , tutto sarà lì come prima.

Casella di posta ripristinata(Mailbox Restored)

Ecco come utilizzare PowerShell per ripristinare le cassette postali in Exchange Online ed Exchange 2010 . Se hai un ambiente ibrido, è un po' più complicato ma si può fare. 

Il solo fatto di sapere che questi diversi cmdlet esistono ti mette in una buona posizione per lavorare con Exchange , indipendentemente dalla versione o dalla configurazione.



About the author

Sono un ingegnere software esperto, con oltre 10 anni di esperienza nello sviluppo e nella manutenzione di applicazioni Microsoft Office. Ho una forte passione per aiutare gli altri a raggiungere i loro obiettivi, sia attraverso il mio lavoro come ingegnere del software che attraverso le mie capacità di parlare in pubblico e di networking. Sono anche estremamente esperto in hardware e driver della tastiera, avendo sviluppato e testato molti di loro io stesso.



Related posts