Очень медленно перебираем электронные письма - PullRequest
1 голос
/ 23 декабря 2009

Используя COM-доступ через PowerShell, я хочу получить определенные свойства из элементов папки Outlook. Папка является общей папкой Exchange, которая была синхронизирована в автономном режиме, а внешний вид переведен в автономный режим (не должно быть доступа к серверу). Я использую этот запрос, где $ pt - MAPIFolder

$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 + Outlook жует все ресурсы ЦП. Наблюдая за выходным темпом, кажется, что он выводит дюжину целых, затем останавливается, затем выводит, останавливается, до тошноты .

Как ускорить это? Моя конечная цель состоит в том, чтобы импортировать его в какой-то SQL, а следовательно, экспортировать в CSV.

1 Ответ

2 голосов
/ 23 декабря 2009

Задумывались ли вы о запросе поискового индекса? Он уже содержит большинство свойств всех элементов, довольно быстр и знает, как работать в режиме простоя / сохранения процессора. Существует простой API для запроса, и вы можете экспортировать свои результаты в CSV или DB. Просто мысль.

...