Можно ли записывать открытые электронные письма в Outlook 2010 с помощью PowerShell, чтобы их можно было открыть позже? - PullRequest
0 голосов
/ 01 августа 2011

Этот вопрос очень похож на https://stackoverflow.com/questions/6839516/outlook-2010-reopen-messages, который был закрыт как не являющийся вопросом.

У меня плохая привычка хранить открытые электронные письма в Outlook 2010 в качестве напоминания о том, что нужно делать в течение дня, поскольку меня постоянно прерывают. Я хотел бы использовать PowerShell для получения списка открытых электронных писем, чтобы при необходимости закрыть Outlook я знал, над чем работал раньше.

Меня не беспокоит сбой Outlook. Обычно Outlook повторно открывает все электронные письма, над которыми я работал; Я использую случай использования, когда мне нужно вручную закрыть Outlook для исправления или решить какую-то другую проблему.

Что я хотел бы сделать, это запросить запущенный процесс Outlook и посмотреть, какие сообщения открыты; открытие нового процесса Outlook через COM не будет работать, так как у него будет другой список открытых сообщений.

Кто-нибудь знает способ сделать это в PowerShell? При необходимости я могу использовать другой язык, но, по возможности, пытаюсь стандартизировать PowerShell, чтобы другие люди могли повторно использовать любой код, который я пишу.

Одна из рассмотренных мною возможностей - запустить Outlook через PowerShell, чтобы у меня был способ взаимодействия с запущенным процессом.

1 Ответ

0 голосов
/ 01 августа 2011

Прежде всего, вам нужно получить ссылку на работающий экземпляр Outlook.

$outlook = [System.Runtime.InteropServices.Marshal]::GetActiveObject('Outlook.Application')

Используя объект приложения, вы затем

  • Перебираете коллекцию outlook.Inspectors
  • Спросите у каждого Inspector его CurrentItem
  • Сохраните любые свойства, которые вам нужны от этого предмета (дата? Тема? Идентификатор записи?)
...