如何使用PowerShell获取outlook 2003收件箱

时间:2014-09-12 05:53:43

标签: powershell outlook powershell-v2.0 outlook-2003

我使用以下代码使用Powershell获取Outlook收件箱信息。

Function Get-OutlookInBox 
{
    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") 
 $folder = $namespace.getDefaultFolder($olFolders::olFolderInBox) 
 $folder.items |  
 Select-Object -Property Subject, ReceivedTime, Importance, SenderName 
}
$inbox=Get-OutlookInBox
$inbox | Group-Object -Property senderName -NoElement | Sort-Object count

这在Outlook 2007,Win7中运行得非常好。但是,Outlook 2003 XP会出现以下错误。

Add-Type : Could not load file or assembly 'Microsoft.Office.Interop.Outlook, Version=12.0.0.0, Culture=neutral, PublicKey
Token=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified.

首先,Outlook 2003是版本11.0,错误地显示版本12.0.0.0。 还有什么我应该做的。

1 个答案:

答案 0 :(得分:1)

尝试明确指定所需的互操作程序集的版本:

Add-Type -AssemblyName ('Microsoft.Office.Interop.Outlook, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c')

检查您的GAC内容,看看您的互操作程序集的版本。