如何使用Veeam o365通过PowerShell批量导出指定邮箱为.pst文件
Veeam for Office 365 批量导出指定邮箱PST的实现方案
前置准备工作
- 准备CSV格式的目标邮箱列表,表头设置为
EmailAddress,每行填入一个需要导出的邮箱完整地址,保存为target_mailboxes.csv即可 - 提前挂载好对应的Office 365备份还原点,确认当前账号拥有Veeam Explorer for Microsoft Exchange的操作权限
- 在本地提前创建好PST文件的导出存储目录,避免脚本执行时报路径不存在的错误
可直接使用的PowerShell脚本
# 导入目标邮箱CSV列表 $targetMailboxList = Import-Csv -Path "C:\Veeam\target_mailboxes.csv" # 配置导出根路径 $exportOutputPath = "C:\Veeam\PST导出结果" # 获取已挂载的Veeam Exchange备份会话 $exchangeBackupSession = Get-VEXExchange # 遍历批量执行导出 foreach ($mailbox in $targetMailboxList) { $currentMail = $mailbox.EmailAddress Write-Host "正在处理邮箱:$currentMail" # 匹配备份库中的对应邮箱 $matchedMailbox = Get-VEXMailbox -Session $exchangeBackupSession -Name $currentMail if ($null -ne $matchedMailbox) { $pstName = $currentMail.Replace("@", "_") + ".pst" $fullExportPath = Join-Path $exportOutputPath $pstName # 执行PST导出,可根据需求调整参数 Export-VEXItem -Mailbox $matchedMailbox -ExportFormat PST -Path $fullExportPath Write-Host "$currentMail 导出完成,文件保存至:$fullExportPath" } else { Write-Warning "未在备份中找到邮箱 $currentMail,已跳过该任务" } }
常见调整项说明
- 如果需要导出指定时间范围内的邮件,可在
Export-VEXItem命令后增加时间过滤参数,示例:-StartTime (Get-Date "2023-01-01") -EndTime (Get-Date "2023-12-31") - 如果需要导出邮箱内的特定文件夹(仅收件箱、已发送等),可增加
-Folder参数指定对应文件夹路径 - 批量执行前建议先在CSV中放2-3个测试邮箱验证逻辑正常,再导入全部100个邮箱执行全量导出
内容的提问来源于stack exchange,提问作者Sonya
相关产品推荐
相关产品推荐

