重新创建PST文件

时间:2015-08-04 09:52:19

标签: powershell outlook pst

我正在将PST提取到Enterprise Vault中,并且我有一些失败。 在某些情况下,我必须通过在Outlook中打开它并将内容导出到新的PST文件来重新创建PST文件。

是否可以使用PowerShell执行此操作? 我正在从现有的PST创建新的PST,而不是从Exchnage创建新的PST,所以据我所知,new-mailboxexportrequest不会工作

TIA

安迪

1 个答案:

答案 0 :(得分:1)

您可以使用Outlook Interop (ComObject)以编程方式与Outlook进行交互,并添加新的PST文件存储

之后将旧PST中的所有文件夹复制到其中。

我为每一步添加了评论,以便您了解它在做什么......

当然,检查此过程对丢失物品的可靠性是您的工作,因此,这里是:

$NewPSTFilePath = "C:\PST\Backup.pst" ## add Your new PST file name path

$outlook = New-Object -ComObject outlook.application
$namespace  = $Outlook.GetNameSpace("MAPI")

$OLDStore = $namespace.Stores | Select -First 1 ## get your old PST Store (select the first 1 only)
$NameSpace.AddStore($NewPSTFilePath) ## Add the new PST to the Current profile
$NEWStore = $namespace.Stores | ? {$_.filepath -eq $NewPSTFilePath} ## Get the New Store

$OLDPSTFolders = $OLDStore.GetRootFolder().Folders ## Get the list of folders from the PST
foreach ($folder in $OLDPSTFolders)
{
"Copy $($folder.name)"
[void]$folder.CopyTo($NEWStore)
}
  

注意:

该脚本使用您的默认展示配置文件,以连接到不同的个人资料,在$namespace.Logon("OtherProfileName")

之后添加行$namespace = $Outlook.GetNameSpace("MAPI")