Os ficheiros PST são o legado mais problemático em qualquer migração para Exchange Online. Espalhados por PCs de utilizadores, servidores de ficheiros e discos externos, podem estar corrompidos, bloqueados pelo Outlook, demasiado grandes para importar directamente ou simplesmente impossíveis de localizar. A Microsoft disponibiliza três métodos de importação, cada um com casos de uso específicos, limitações e requisitos técnicos distintos.
Este artigo cobre os três métodos de migração de PST para Exchange Online — importação via Outlook, Network Upload com AzCopy e importação PowerShell com New-MailboxImportRequest — com pré-requisitos, armadilhas comuns e monitorização de progresso.
⚠ PSTs nunca devem ficar na pasta OneDrive
O Outlook mantém o ficheiro PST aberto em modo exclusivo — o OneDrive não consegue sincronizá-lo e pode corrompê-lo ao tentar. Localizar todos os PSTs e movê-los para fora da pasta OneDrive antes de iniciar qualquer migração.
Neste artigo
- Comparar os três métodos
- Pré-requisitos e preparação dos PSTs
- Método 1 — Importação via Outlook (pequena escala)
- Método 2 — Network Upload com AzCopy (recomendado)
- Ficheiro CSV de mapeamento PST → caixa de correio
- Método 3 — PowerShell com New-MailboxImportRequest
- Monitorizar e gerir importações em curso
- Armadilhas comuns e como evitá-las
- Após a migração — o que fazer com os PSTs originais
1. Comparar os três métodos
| Método | Escala | Custo | Complexidade | Ideal para |
|---|---|---|---|---|
| Outlook Import/Export | 1–5 PSTs | Gratuito | Baixa | Utilizador individual, PST pessoal, migração pontual |
| Network Upload (AzCopy + Purview) | Muitos PSTs | Gratuito | Média-Alta | Migração organizacional — método recomendado para múltiplos utilizadores |
| Drive Shipping | >1 TB | $2/GB | Alta | Volumes muito grandes sem largura de banda adequada. Disponibilidade limitada por país |
| PowerShell (New-MailboxImportRequest) | Qualquer | Gratuito | Média | PSTs acessíveis via SMB ou SharePoint Online; automatização e bulk imports |
2. Pré-requisitos e preparação dos PSTs
Para os métodos Network Upload e PowerShell, o administrador precisa da role Mailbox Import Export — não está atribuída por defeito, nem ao Global Admin.
Connect-ExchangeOnline -UserPrincipalName [email protected] # Atribuir role Mailbox Import Export New-ManagementRoleAssignment -Role "Mailbox Import Export" -User "[email protected]" # Fazer logout e login — a role demora até 60 minutos a propagar # Inventariar PSTs em todos os PCs (executar em cada PC ou via RMM) Get-ChildItem -Path "C:\" -Recurse -Filter *.pst -ErrorAction SilentlyContinue | Select-Object FullName, @{N="TamanhoGB";E={[math]::Round($_.Length/1GB,2)}} | Format-Table -AutoSize
| Verificação | Como fazer | Porquê |
|---|---|---|
| Reparar com ScanPST.exe | C:\Program Files\Microsoft Office\root\Office16\SCANPST.EXE → abrir PST → reparar |
PSTs corrompidos falham sem mensagem clara |
| Verificar tamanho — idealmente <20 GB | Explorador de ficheiros → propriedades | PSTs grandes têm maior probabilidade de falhar. Dividir com OutlookSplit |
| Fechar o PST no Outlook antes do upload | File → Account Settings → Data Files → remover o PST da lista | Outlook mantém lock exclusivo — AzCopy falha se o ficheiro estiver aberto |
3. Método 1 — Importação via Outlook (pequena escala)
O método mais simples para 1 a 5 PSTs. O utilizador importa directamente através do Outlook — os itens são copiados para a caixa de correio Exchange Online. Requer Outlook instalado e conta Exchange Online configurada no perfil.
- Outlook: File → Open & Export → Import/Export
- Seleccionar “Import from another program or file” → Next
- Seleccionar “Outlook Data File (.pst)” → Next
- Navegar até ao ficheiro PST → seleccionar Do not import duplicates
- Seleccionar pasta de destino — a caixa de correio Exchange Online do utilizador
- Clicar Finish — o Outlook sincroniza os itens com o servidor Exchange Online
4. Método 2 — Network Upload com AzCopy (recomendado)
Caminho: compliance.microsoft.com → Data lifecycle management → Microsoft 365 → Import → Import PST files → Upload your data
- Criar novo Import Job e seleccionar “Upload your data”
- Copiar o SAS URL apresentado pelo portal (válido 30 dias) e fazer download do AzCopy
- Fazer upload dos PSTs com AzCopy (ver comando abaixo)
- Preparar o ficheiro CSV de mapeamento (ver Secção 5)
- Fazer upload do CSV no portal e iniciar a importação
# Upload de pasta com PSTs para Azure Storage (substituir URL pelo SAS URL do portal) .\azcopy copy "C:\PSTs_para_migrar\" "https://[tenant].blob.core.windows.net/ingestiondata?[SAS-token]" --recursive # Verificar o que foi carregado .\azcopy list "https://[tenant].blob.core.windows.net/ingestiondata?[SAS-token]"
⚠ Prazo de 30 dias: Os PSTs carregados para o Azure Storage têm de ser mapeados num Import Job dentro de 30 dias. Após esse prazo são eliminados automaticamente.
5. Ficheiro CSV de mapeamento PST → caixa de correio
O ficheiro CSV define qual PST vai para qual caixa de correio e para qual pasta de destino. Guardar em codificação UTF-8 sem BOM — usar Notepad++ ou VS Code, não o Excel (que adiciona BOM e invalida o CSV).
# Cabeçalho obrigatório (copiar exactamente) Workload,FilePath,Name,Mailbox,IsArchive,TargetRootFolder,ContentCodePage,SPFileContainer,SPManifestContainer,SPSiteUrl # Importar para caixa principal (raiz) Exchange,,joao.ferreira.pst,[email protected],FALSE,/,,,, # Importar para o arquivo online Exchange,,joao.ferreira_old.pst,[email protected],TRUE,/,,,, # Importar para pasta específica Exchange,,joao.ferreira_2020.pst,[email protected],FALSE,/Arquivo PST 2020,,,, # Importar para shared mailbox Exchange,,geral.pst,[email protected],FALSE,/,,,,
6. Método 3 — PowerShell com New-MailboxImportRequest
Ideal para PSTs acessíveis via partilha de rede (UNC) — permite automação e bulk imports sem passar pelo portal Purview. O ficheiro PST tem de estar acessível a partir de uma partilha de rede, não de um caminho local.
⚠ Requisito crítico: O cmdlet acede ao PST via UNC — não funciona com caminhos locais C:\. O ficheiro tem de estar numa partilha de rede acessível pelo serviço Exchange Online.
# Importar PST via UNC para caixa principal New-MailboxImportRequest -Mailbox "[email protected]" ` -FilePath "\\servidor\psts\joao.ferreira.pst" ` -Name "Import-JoaoFerreira" ` -TargetRootFolder "/" # Importar para arquivo online New-MailboxImportRequest -Mailbox "[email protected]" ` -FilePath "\\servidor\psts\joao.antigo.pst" ` -Name "Import-JoaoFerreira-Arquivo" ` -IsArchive -TargetRootFolder "/" # Bulk import de todos os PSTs numa pasta (nome_ficheiro = UPN sem domínio) Get-ChildItem "\\servidor\psts\" -Filter *.pst | ForEach-Object { $mailbox = $_.BaseName + "@empresa.pt" New-MailboxImportRequest -Mailbox $mailbox -FilePath $_.FullName ` -Name "Import-$($_.BaseName)" -TargetRootFolder "/" Write-Host "Iniciado: $($_.Name) → $mailbox" }
7. Monitorizar e gerir importações em curso
# Ver estado de todos os pedidos Get-MailboxImportRequest | Select-Object Name, Mailbox, Status, PercentComplete | Format-Table -AutoSize # Detalhe de um pedido específico Get-MailboxImportRequestStatistics -Identity "Import-JoaoFerreira" | Select-Object Name, StatusDetail, PercentComplete, BytesTransferred, ItemsTransferred, FailedItemCount # Importações falhadas Get-MailboxImportRequest -Status Failed | Select-Object Name, Mailbox, StatusDetail # Retomar importação falhada Resume-MailboxImportRequest -Identity "Import-JoaoFerreira" # Limpar pedidos concluídos Get-MailboxImportRequest -Status Completed | Remove-MailboxImportRequest -Confirm:$false
8. Armadilhas comuns e como evitá-las
| Armadilha | Como se manifesta | Prevenção / Resolução |
|---|---|---|
| PST corrompido | Importação falha ou completa parcialmente sem mensagem clara | Executar ScanPST.exe antes de qualquer migração |
| PST aberto pelo Outlook | AzCopy falha com “file locked” | Remover o PST do perfil Outlook antes de qualquer upload |
| Role Mailbox Import Export não activa | Erro “insufficient access rights” | Atribuir a role e fazer logout + login novamente (pode demorar 60 min) |
| Quota da caixa insuficiente | Importação para com FailedItemCount elevado | Verificar quota antes da migração. Importar para arquivo online com -IsArchive |
| CSV com codificação errada | Validação do CSV no portal falha | Guardar em UTF-8 sem BOM — usar Notepad++ ou VS Code, não Excel |
| SAS URL expirado | AzCopy falha com erro 403 após 30 dias | Gerar novo SAS URL no portal Purview e repetir o upload |
9. Após a migração — o que fazer com os PSTs originais
- Período de quarentena (30–60 dias): Manter os PSTs acessíveis mas desligados do Outlook. Se o utilizador reportar emails em falta, a migração pode ser complementada
- Confirmar com o utilizador: Verificar emails importantes, pastas críticas e contactos antes de considerar a migração concluída
- Desligar os PSTs do Outlook: File → Account Settings → Data Files → remover o PST. O utilizador trabalha apenas com Exchange Online
- Arquivo ou eliminação: Após quarentena, mover para NAS de backup ou eliminar conforme política de retenção
- Bloquear criação de novos PSTs: Configurar GPO com políticas “Prevent users from adding new content to existing .pst files” e “Prevent users from creating new .pst files” (ADMX Office16)
