【发布时间】:2017-01-22 20:08:28
【问题描述】:
我在 PS 4 中编写了一个脚本,它可以读取 Outlook 文件夹的内容、查找未读电子邮件、处理它们,然后将它们移动到另一个文件夹中。在 PS 5 被推送到我的工作站之前,这个脚本运行良好。现在,我收到以下错误:
Error while invoking [PROPERTYGET, DISPID(0)]. Could not find member. At U:\Powershell\Scripts\Outlook - Process Emails.ps1:214 char:7 + $($folger.Items)[$i].Subject + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [], MissingMemberException + FullyQualifiedErrorId : System.MissingMemberException
这是主要的代码块:
Add-Type -assembly "Microsoft.Office.Interop.Outlook"
$Outlook = New-Object -ComObject Outlook.Application
$NameSpace = $Outlook.GetNameSpace("MAPI")
$folder = $NameSpace.Folders.Item("Scans").Folders.Item("Results")
for ($i = ($folder.Items.Count - 1); $i -ge 0; $i--)
{
if ($($folder.Items)[$i].UnRead) # It breaks on this line
{
# Do stuff
}
}
两个问题:
1) PS 4 和 PS 5 之间发生了什么变化导致了这种情况? PS 5 的发行说明中没有任何内容。
2) 我可以做些什么来让我的脚本备份并运行而没有问题?
【问题讨论】:
标签: powershell outlook powershell-4.0 powershell-5.0