powershell将所有Outlook收件箱电子邮件导出到Excel文件

时间:2016-10-26 13:33:15

标签: powershell

我正在编写一个powershell脚本,用于将所有outlook-2013收件箱内容导出到Excel工作表。我尝试了很多代码,但我收到错误或无关紧要的输出。请帮助。

1 个答案:

答案 0 :(得分:0)

感谢发布您的代码,因为这可以帮助您。通过将最后一行更改为$folders.items | Get-Member,这会列出我看不到SenderAddress的所有可用属性,但我确实看到SenderEmailAddress

其次,您希望在Outlook中打开包含完整详细信息的输出。用Out-File管道最后一行将发送格式化为字符串表的数据。因此,让我们使用Export-CSV cmdlet,以您可以在Excel中打开的格式导出它。 (请注意,如果您愿意,可以使用某些Excel Modules直接将其传输到xlsx,如果您愿意的话。

两个旁注。您仍然需要将XXXX/trial.csv替换为您希望保存的位置。请注意,运行此时,PowerShell会话提升状态与Outlook匹配。如果PowerShell以管理员身份提升/运行而Outlook未提升,则无法正常工作。

Function Get-OutlookInBox { 
    Add-Type -AssemblyName "Microsoft.Office.Interop.Outlook" | out-null 
    $olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type]
    $Outlook = New-Object -ComObject Outlook.Application
    $Namespace = $Outlook.GetNameSpace("MAPI")
    $Folder = $Namespace.GetDefaultFolder($olFolders::olFolderInBox) 
    $Folder.Items | Select-Object -Property Subject, ReceivedTime, SenderName, SenderEmailAddress | Export-CSV -NoTypeInformation XXXX\Trial.csv 
}