Como restaurar uma caixa de correio excluída com o PowerShell

Não importa como você excluiu acidentalmente a caixa de correio de uma pessoa no Exchange , você provavelmente pode restaurá-la usando o PowerShell ( PoSh ). A chave está fazendo isso assim que você perceber que a caixa de correio foi excluída. 

É um momento de coração pulou na minha garganta quando percebemos que acidentalmente fizemos isso. Se você excluiu apenas algumas mensagens de email, também podemos mostrar como recuperar emails excluídos no Office 365(how to recover deleted emails in Office 365) .

Antes de começarmos, observe que isso se destina à restauração de caixas de correio excluídas no Exchange Online para o ambiente do Office 365 e no Exchange 2010 . Também estamos supondo que você tenha os direitos administrativos para usar os métodos descritos e tenha feito alguns scripts básicos do PowerShell(basic PowerShell scripting)

O que acontece quando uma caixa de correio é excluída?(What Happens When a Mailbox Is Deleted?)

A caixa de correio é movida para a lixeira do Azure Active Directory (AD) no (Azure Active Directory )Exchange Online ou para o diretório de caixas de correio desconectadas(Disconnected Mailboxes ) no Exchange 2010.

Ele pode ficar lá por até 30 dias, dependendo das políticas de retenção em vigor. Isso nos dá um período de graça para reconhecer nosso erro e nos recuperarmos dele.

Restaurar uma caixa de correio excluída no Exchange Online(Restore a Deleted Mailbox In Exchange Online)

Conecte-se ao Exchange Online via PowerShell(Connect To Exchange Online Via PowerShell)

Em sua sessão local, abra o console do Powershell e use o comando a seguir para definir suas credenciais de login na variável.

$userCredential

Isso facilita o trabalho com outros scripts posteriormente.

$userCredential = get-Credential

Uma janela será aberta onde você poderá inserir seu nome de usuário e senha para gerenciar o Exchange Online .

Em seguida, defina o nível da política de execução para que possamos realmente fazer as coisas em nossa sessão. Isso nos permite executar nossos comandos não assinados. Mas você também pode querer aprender as práticas recomendadas para assinar scripts do PowerShell(best practices for signing PowerShell scripts) .

set-ExecutionPolicy Unrestricted

Quando solicitado, pressione Y para Sim.

Agora vamos criar a variável $session a ser usada para abrir uma conexão entre o computador local e o Exchange Online .

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

Powershell-liveid é o id do seu site do Office . Geralmente esta é uma variação do nome da sua empresa. 

Use o seguinte comando para abrir uma sessão PoSh no (PoSh)Exchange Online :

import-PSSession $Session -DisableNameChecking

Agora estamos trabalhando com o PowerShell diretamente no Exchange Online , embora estejamos sentados em nosso próprio computador.

Restaurar uma caixa de correio excluída com o PowerShell(Restore a Deleted Mailbox With PowerShell)

A próxima parte é super fácil. Fazer a conexão nos levará muito mais tempo. 

Tudo o que precisamos fazer é executar o cmdlet mostrado abaixo:

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

Altere as duas instâncias de [email protected] para o nome de caixa de correio apropriado e o Windows LiveID(Windows LiveID) da caixa de correio que desejamos restaurar. Observe que eles podem não ser iguais. 

Também temos que definir uma nova senha para a caixa de correio. Altere newpassword no script para a senha de sua escolha. Você precisará retransmitir isso para o usuário e pedir que ele altere a senha na próxima vez que fizer login.

Por fim, use o próximo cmdlet para verificar se funcionou. 

get-Mailbox [email protected]

Se tiver sido restaurado, o cmdlet retornará informações sobre a caixa de correio restaurada. Se ele retornar um erro, execute os comandos novamente e verifique se a caixa de correio correta e o Windows LiveID(Windows LiveID) estão sendo usados. 

Se isso ainda não funcionar, precisaremos restaurar a caixa de correio de um backup do sistema. Existem muitos tipos de backups do sistema, então isso está além do escopo do que estamos fazendo hoje.

Quando terminarmos, devemos fechar a sessão PoSh . O número de sessões PoSh que temos em execução é limitado. Deixá-lo aberto usa uma dessas sessões. A menos que a fechemos, teremos que esperar o tempo limite da sessão antes de podermos iniciar outra.

remove-PSSession $Session

É isso. Você pode até querer fazer um script em um módulo do PowerShell(PowerShell Module) para facilitar o uso se isso acontecer novamente.

Restaurar uma caixa de correio excluída no Exchange 2010(Restore a Deleted Mailbox In Exchange 2010)

Isso não funciona para o Office 365 ou ambientes híbridos. Ele só funciona para o Exchange 2010 local. 

No servidor de email, abra o Exchange Management Console (EMC). 

Navegue até Configuração do destinatário(Recipient Configuration ) > Caixa de correio desconectada(Disconnected Mailbox) . Devemos ver a caixa de correio do usuário lá. 

Se não o fizermos, o processo de limpeza do banco de dados da caixa de correio ainda não aconteceu. Tudo bem, podemos forçá-lo.

  • Abra o Shell de Gerenciamento do Exchange(Exchange Management Shell ) ( EMS ) como administrador. É aqui que podemos fazer o trabalho do PowerShell específico do Exchange(Exchange-specific PowerShell) .
  • Agora entramos no cmdlet: 
Get-MailboxDatabase | Clean-MailboxDatabase

  • Feito isso, voltemos ao EMC e clique com o botão direito do mouse em Disconnected Mailbox , depois clique em Refresh
  • Devemos ver a caixa de correio lá agora, e está, junto com outra que foi excluída recentemente.

  • Volte para o EMS e digite o cmdlet: 
Connect-Mailbox -Identity "username" -Database "Mailbox Database" -User "username"
  • Username é o nome da conta do Windows da pessoa (como Test User ) e (,)Mailbox Database é o nome do banco de dados listado ao lado de seu nome na janela Disconnected Mailbox no EMC. 
  • Atualize a caixa de correio desconectada(Disconnected Mailbox) e você verá que a caixa de correio não é mais exibida lá. Navegue até Configuração do Destinatário(Recipient Configuration ) > Caixa(Mailbox ) de Correio e certifique-se de que a caixa de correio do usuário esteja lá.

Verifique se todas as configurações estão corretas, como endereço de e-mail e alias. Se parecer bom, na próxima vez que o usuário abrir o Outlook , tudo estará lá como estava.

Caixa de correio restaurada(Mailbox Restored)

É assim que usar o PowerShell para restaurar caixas de correio no Exchange Online e no Exchange 2010 . Se você tem um ambiente híbrido, é um pouco mais complicado, mas pode ser feito. 

O simples fato de saber que esses diferentes cmdlets existem coloca você em uma boa posição para trabalhar com o Exchange , independentemente da versão ou configuração.



About the author

Eu sou um programador de computador, e tenho sido há mais de 15 anos. Minhas habilidades estão no desenvolvimento e manutenção de aplicativos de software, além de fornecer suporte técnico para esses aplicativos. Também ensinei programação de computadores para alunos do ensino médio e atualmente sou instrutor profissional.



Related posts