我正在寻找一种使用Outlook的“导出到PST”功能进行自动化的方法,以便将名为AZ的公共文件夹作为单独的PST文件进行拉出(因为存在PST大小限制),我希望使用一种纯Powershell方法。
到目前为止,我发现的内容不是自动的,但是当我不得不快速地复制某人的文件夹时,这很有帮助。
Add-Type -assembly "Microsoft.Office.Interop.Outlook"
$Outlook = New-Object -ComObject Outlook.Application
$namespace = $Outlook.GetNameSpace("MAPI")
#Get the public folder ID
$SourceFolder = $namespace.PickFolder() | Select EntryID
#Get the destination folder ID
$DestinationFolder = $namespace.PickFolder() | Select EntryID
$namespace.GetFolderFromID($SourceFolder).CopyTo($DestinationFolder)
这里的第二篇帖子https://serverfault.com/questions/180916/export-exchange-public-folder-to-pst-from-powershell似乎很有帮助,但是我遇到了有关自动发现URL和/或可能的权限问题的错误。
还发现了this看上去不错,但我不希望在我的前景中附加PST。
任何指针将不胜感激!
答案 0 :(得分:0)
将Exchange本地公用文件夹复制到本地Outlook PST文件。 感谢:https://github.com/misterGF/DevOps-PowerShell/blob/master/export-PFdata.ps1 https://www.vistax64.com/threads/looping-through-outlook-folders-and-subfolders-returning-numberof-e-mails.249828/
How to disconnect PST file from Outlook using Powershell?
设法做到这一点,并使它具有某些功能,请自行承担使用风险。不执行任何错误处理。
function Get-MailboxFolder($folder)
{
Begin{
$Outlook = New-Object -ComObject Outlook.Application
$namespace = $Outlook.GetNameSpace("MAPI")
}
Process{
New-Item -Path 'E:\PST.archive\Full Backup\Enterprise West' -Name "$($folder.Name)" -ItemType Directory
foreach ($f in $folder.folders) {
#Location of PST files
$PSTPath = 'E:\PST.archive\Full Backup\Enterprise West' + '\' + "$($folder.Name)"
$PSTName = $($f.name) + '.pst'
$FullPST = $PSTPath + '\' + $PSTName
$namespace.AddStore("$FullPST")
$pstFolder = $namespace.Session.Folders.GetLast()
"Start Public Folder copy to local PST"
[void]$f.CopyTo($pstFolder)
}
}#End process block
End{
"Removing attached PSTs from Outlook"
$RemPST = $Outlook.Session.Stores | Where DisplayName -EQ 'Outlook Data File'
foreach ($pst in $RemPST){
$Outlook.Session.RemoveStore($pst.GetRootFolder())
}
}#end End Block
}
$WestFolders = $Outlook.Session.Folders.Item('Public Folders - YourNameHERE!!!!!').folders.item('All Public Folders').Folders.Item('Level-1').folders.item('Level-2').folders.item('Level-3')
Get-MailboxFolder $WestFolders
答案 1 :(得分:0)
没有将公用文件夹导出到PST的自动方法:
导出邮箱命令不适用于公用文件夹。
您可以使用以下方法来实现:
1)使用Outlook:导入/导出向导
2)使用第三方工具