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