Я создал очень простой сценарий powershell, чтобы собрать основную информацию обо всех электронных письмах в папке общего почтового ящика.Список всех писем в общем почтовом ящике с именем вложений
Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null
$olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type]
$outlook = new-object -comobject outlook.application
$namespace = $outlook.GetNameSpace("MAPI")
$Inbox = $namespace.pickfolder()
$Inbox.items | Select-Object -Property Categories, Attachments, Subject, ReceivedTime
Это работает, как ожидалось, печать таблицы, которая может быть экспортирована в формате CSV, но Attachments
свойства просто напечатать System.__ComObject
. Таким образом, мне нужно заменить столбец «Вложения» со списком имен вложений ($_.Attachments::DisplayName
)
Я пытался перебирать результаты, чтобы это исправить, что-то вроде:
$Inbox.items | Select-Object -Property Categories, Attachments,
Subject, ReceivedTime | ForEach-Object -Process {$_.Attachments::DisplayName}
Но только эта печать информацию о вложении, а не остальные данные. Кроме того, добавление всех полей между {} вызывает powershell для печати одного поля на строку, поэтому его нельзя экспортировать как CSV.
Не могли бы вы помочь мне правильно заменить столбец «Вложения»?
Спасибо, это то, что я искал! – lithiium