【发布时间】:2011-07-25 12:13:36
【问题描述】:
我正在尝试使用以下代码通过 Powershell 从共享日历中获取日历项:
$outlook = new-object -ComObject Outlook.application
$session = $outlook.Session
$session.Logon("Outlook")
$namespace = $outlook.GetNamespace("MAPI")
$recipient = $namespace.CreateRecipient("John Smith")
$theirCalendar = $namespace.GetSharedDefaultFolder($recipient, "olFolderCalendar")
但我收到类型不匹配错误:
无法将参数“0”转换为值:“System.__ComObject”,以便“GetSharedDefaultFolder”键入“Microsoft.Office.I nterop.Outlook.Recipient": "无法转换类型为“System.__ComObject#{00063045-0000-00”的“System.__ComObject”值 00-c000-000000000046}”键入“Microsoft.Office.Interop.Outlook.Recipient”。 在行:1 字符:34 + $namespace.GetSharedDefaultFolder
我尝试将 $recipient 直接转换为 Microsoft.Office.Interop.Outlook.Recipient,但这不起作用,我还尝试了 invoke-method() 过程,这里有详细记录:http://www.mcleod.co.uk/scotty/powershell/COMinterop.htm
似乎后者应该可以工作,但它似乎没有为GetSharedDefaultFolder() 所需的多个参数提供规定。
【问题讨论】:
标签: com powershell outlook