Backup PST de email via Powershell

Backup de Email sempre será a dor de cabeça de inúmeras empresas. Infelizmente todas as versões do Exchange, incluindo a 2019 e 2016, possuem poucos recursos para backup. Basicamente, a única opção granular de Backup é o export para arquivos PST. Isto pode ser executado via Outlook, Powershell e em alguns casos através do Exchange Management Console / Control Panel.
Neste artigo vamos aprender como realizar Backup PST do Outlook com os recursos disponíveis via Powershell para: Exchange 2019, Exchange 2016, Exchange 2013 e Exchange 2010.

Leia Mais:

Recuperando itens deletados no novo Exchange Admin Center
Curso de Exchange Online Grátis para fazer na quarentena
Erro de recebimento após Restore de Mailbox
Backup PST de email via Powershell
A importância da auditoria de email

Exportar uma Mailbox para arquivo PST

A exportação do conteúdo da caixa de correio para um arquivo PST é obtida usando o cmdlet MailboxExportRequest . Ele possui apenas 2 parâmetros obrigatórios: – FilePath – define o caminho de compartilhamento de rede do arquivo PST para o qual você deseja exportar os dados; e – Mailbox – define o alias, o endereço SMTP ou o nome de exibição da caixa postal que você exportará.
Requisitos:

  • O usuário que está executando a exportação deve ser membro de um grupo de funções ao qual foi adicionada a função
    Mailbox Import Export. A maneira mais fácil de conseguir isso é executando este script:
New-ManagementRoleAssignment -Role "Mailbox Import Export" -User "<user name or alias>"
  • O local de destino do Backup PST do Outlook deve ser uma pasta compartilhada.

#DicaProfissa: Faça um curso profissionalizante!
Garanta um curso certificado na área de TI e Software pela plataforma de estudos online Udemy.
Clique aqui e confira todos os cursos mais recentes em tecnologia!

Sintaxe:
Segue abaixo um exemplo de uma solicitação de export de Mailbox, na qual faz Backup PST de uma caixa de email completa.

New-MailboxExportRequest -Mailbox <user> -FilePath \\<server FQDN>\<shared folder name>\<PST name>.pst

É possível limitar o escopo do conteúdo exportado usando parâmetros adicionais, por exemplo:

-ContentFilter
Especifica quais condições o conteúdo de uma caixa de correio deve corresponder para ser exportado para o arquivo PST. As condições são fornecidas na forma de cláusulas lógicas padrão do PowerShell com várias propriedades de itens disponíveis para filtragem (os caracteres curinga são suportados). Exemplo de script que exporta itens recebidos antes de 01-01-2013 com assuntos começando com fwd:

New-MailboxExportRequest -Mailbox <user> -ContentFilter {(Received -lt '01 / 01/2013 ') - e (Assunto semelhante a' fwd * ')} -FilePath \\ <FQDN do servidor> \ <nome da pasta compartilhada> \ <Nome do PST> .pst

-ExcludeFolders e -IncludeFolders
É exatamente o que parece. Você pode escolher entre todas as pastas da caixa de correio do Exchange. Há também dois recursos interessantes disponíveis:

  • A capacidade de filtrar pastas pessoais localizadas em pastas raiz usando a sintaxe <FolderName> / *.
  • A capacidade de filtrar pastas de caixa de correio conhecidas do Exchange, independentemente do nome em um idioma local, usando a sintaxe # <FolderName> # / *.

Aqui está um exemplo de um script que exporta apenas as pastas Caixa de entrada e Itens enviados:

New-MailboxExportRequest -IncludeFolders "#Inbox # / *", "# SentItems #" -Mailbox <user> -FilePath \\ <FQDN do servidor> \ <nome da pasta compartilhada> \ <nome do PST> .pst

-IsArchive
Um parâmetro de opção, que define o arquivo morto como a única fonte da exportação. Exemplo:

New-MailboxExportRequest -Mailbox <user> -IsArchive -FilePath \\ <FQDN do servidor> \ <nome da pasta compartilhada> \ <nome do PST> .pst

-Name
Define o nome de uma solicitação de exportação. Útil para rastreamento ou se você deseja definir mais de 10 solicitações de exportação por uma única caixa de correio. Isso ocorre porque, por padrão, o Exchange atribui apenas 10 nomes consecutivos para exportar solicitações relacionadas a uma única caixa de correio (começando com MailboxExport a MailboxExport9) e depois finaliza. Para continuar quando todos os 10 nomes de solicitação de exportação padrão tiverem sido obtidos, você deve liberar suas solicitações de exportação ou começar a atribuir seus próprios nomes usando o parâmetro Name. Exemplo:

New-MailboxExportRequest -Name <unique name> -Mailbox <user> -IsArchive -FilePath \\<server FQDN>\<shared folder name>\<PST name>.pst

Informação adicional

Um único script MailboxExportRequest pode, é claro, conter vários parâmetros, incluindo aqueles que não mencionei. Para obter uma lista completa dos parâmetros disponíveis, bem como informações de sintaxe e outros detalhes, consulte o link abaixo. TechNet: exportação de caixa de correio única para detalhes do PST.

#DicaProfissa: Faça um curso profissionalizante!
Garanta um curso certificado na área de TI e Software pela plataforma de estudos online Udemy.
Clique aqui e confira todos os cursos mais recentes em tecnologia!

Exportar Mailbox em massa para arquivo PST

Os requisitos aqui são idênticos aos das exportações de caixa de correio única:

  • O usuário que está executando a exportação deve ser membro de um grupo de funções ao qual foi adicionada a função
    Mailbox Import Export.
  • O local de destino do Backup PST deve ser uma pasta compartilhada.

Método 1

Salve todas as caixas de correio em uma variável (no meu caso, são AllMailboxes):

$ AllMailboxes = Get-Mailbox

Exporte todas as caixas de correio para arquivos PST com nomes baseados em aliases de caixa de correio (para usar uma propriedade de caixa de correio diferente, substitua a frase “Alias” por seu nome):

$ AllMailboxes |% {$ _ | New-MailboxExportRequest -FilePath \\ <FQDN do servidor> \ <nome da pasta compartilhada> \ $ ($ _. Alias) .pst}

Parâmetros adicionais podem ser usados ​​como nas exportações de caixa de correio única (consulte a primeira seção deste artigo).

Método 2

Execute o script abaixo para o mesmo efeito que no método 1 (a única diferença é o uso do comando foreach em vez do Pipe):

foreach ($ Mailbox in (Get-Mailbox)) {New-MailboxExportRequest -Mailbox $ Mailbox -FilePath "\\ <FQDN do servidor> \ <nome da pasta compartilhada> \ $ ($ Mailbox.Alias) .pst"}

Limitando o escopo das caixas de correio exportadas

Você notará que os métodos que descrevo resultam na exportação de todas as caixas de correio localizadas em seus servidores. Se você deseja limitar o escopo das caixas de correio exportadas, pode fazê-lo, por exemplo, usando o parâmetro Get-Mailbox -Filter. Aqui está um exemplo de um script que lista as caixas de correio pertencentes a um grupo de segurança chamado export1 .

Get-Mailbox -Filter {MemberOfGroup -ne $ export1}

NOTA: O uso do parâmetro -Filter com o cmdlet Get-Mailbox resulta na exclusão de caixas de correio definidas no parâmetro. É por isso que, para limitar o escopo das caixas de correio exportadas para, por exemplo, Lote1, você deve usar o parâmetro -Filter para excluir todas as caixas de correio que não fazem parte do Lote1 – daí o uso do operador -ne (não é igual). Adicionar o parâmetro -Filter aos cmdlets Get-Mailbox nos scripts do Método 1 e do Método 2 resultará na limitação do escopo das caixas de correio exportadas. Veja a lista completa de propriedades filtráveis ​​da Get-Mailbox explicadas.

Este artigo foi útil?

Para manter um padrão de qualidade para vocês, investimos em um ótimo plano de hospedagem, CDN Pago, Plugins de Otimização para o Site, etc…

Ajude-nos a manter o projeto ativo! 

Acompanhe as novidades em tempo real. Siga nosso perfil no Instagram..

Felipe Santos
Felipe Santos é Arquiteto de Cloud e Segurança, com vivência em Administração de Ambientes Windows Server, Cluster, Storages, Backups Veeam e Office 365.
pt_BRPortuguese

ATÉ 90% DE DESCONTO

DECOLE SUA CARREIRA!!

Quer dar um upgrade na sua carreira? 

Invista em você e saia na frente! Conquiste aquele emprego dos sonhos em 2022!