是否可以使用PowerShell在Outlook 2010中记录打开的电子邮件,以便以后可以再次打开它们?

时间:2011-08-01 14:48:34

标签: powershell outlook

这个问题与https://stackoverflow.com/questions/6839516/outlook-2010-reopen-messages非常相似,因为这不是一个问题而被关闭。

我养成了在Outlook 2010中保持电子邮件打开的坏习惯,以提醒我,因为我不断被打断,白天需要做些什么。我想做的是使用PowerShell获取打开的电子邮件列表,这样如果我需要关闭Outlook,我就知道我之前在做什么。

我并不担心Outlook崩溃,Outlook通常会重新打开我自动处理的所有电子邮件;我正在处理的用例是我必须手动关闭Outlook以获取补丁或解决其他问题。

我想要做的是查询正在运行的Outlook进程并查看哪些消息是打开的;通过COM打开一个新的Outlook进程将无法工作,因为它将有一个不同的打开消息列表。

有没有人知道在PowerShell中执行此操作的方法?如果需要,我可以使用其他语言,但在可能的情况下尝试对PowerShell进行标准化,以便其他人可以重用我编写的任何代码。

我考虑过的一种可能性是通过PowerShell启动Outlook,以便我有办法与正在运行的进程进行交互。

1 个答案:

答案 0 :(得分:0)

首先,您需要获取对正在运行的Outlook实例的引用。

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

然后使用应用程序对象

  • 遍历outlook.Inspectors集合
  • 向每个人Inspector询问其CurrentItem
  • 从此项目中存储您需要的任何属性(日期?主题?条目ID?)