2009-12-23 102 views
1

通过PowerShell使用COM访问,我想从Outlook文件夹项中检索某些属性。该文件夹是一个共享的Exchange文件夹,已在脱机模式下进行了同步,并且Outlook处于脱机状态(应该无法访问服务器)。我用这个查询,其中$ PT是MAPIFolder迭代Outlook电子邮件很慢

$ol = new-object -comobject "Outlook.Application" 
$mapi = $ol.getnamespace("mapi") 
$inbox = $mapi.Folder /* skipped*/ 
$pt.items|select-object Subject, Sendername, SentOn,Recipients,ConversationIndex,ConversationTopic,CC,Bcc,ReceivedTime|export-csv -path pentest.csv -noTypeInformation 

文件夹中有几千项,该查询未完成隔夜和PowerShell +展望咀嚼所有CPU资源。通过观察输出速度,它看起来输出一打,然后失速,然后输出,失速,和恶心

如何加速?我的最终目标是将其导入到某种SQL中,因此导出为CSV。

+0

您是否找到解决方案? – Zubair 2018-03-06 11:23:55

回答

2

您是否想过要查询搜索索引?它已经包含了所有项目的大部分属性,速度非常快,并且知道如何在空闲/ CPU保存模式下工作。有一个简单的API来查询它,你可以将结果导出到CSV或DB。只是一个想法。

+0

Outlook的索引是非常有选择性的 - 它并没有索引这个特定的文件夹出于某种原因:( – Konrads 2009-12-23 10:39:40

+0

该文件夹有什么特别之处?也许你可以明确地包含它。 – 2009-12-23 17:54:41