我一直在为Powershell搞清楚Outlook对象。我想创建Outlook规则,我让它工作。将项目搁置一段时间。 当我选择备份时,我无法创建Outlook规则。请注意,我没有更改代码中的任何内容。
$rules = $ol.Session.DefaultStore.GetRules()
$rule = $rules.Create("spamfilter",[Microsoft.Office.Interop.Outlook.OlRule Type]::olRuleReceive)
$condition = $rule.Conditions.SenderAddress
$condition.Enabled = $true
$condition.Address = @("<sender>")
$action = $rule.Actions.MoveToFolder
$action.Enabled = $true
[Microsoft.Office.Interop.Outlook._MoveOrCopyRuleAction].InvokeMember("Folder",[System.Reflection.BindingFlags]::SetProperty,$null,$action,$junk)
$rules.Save()
使用“5”参数调用“InvokeMember”的异常:“找不到成员。(HRESULT异常:0x80020003(DISP_E_MEMBERNOTFOUND))” 在线:22 char:5
- [Microsoft.Office.Interop.Outlook._MoveOrCopyRuleAction] .InvokeMember(“Folde ...
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CategoryInfo:NotSpecified:(:) [],MethodInvocationException
- FullyQualifiedErrorId:COMException
有人请帮助我。这似乎是什么问题?我迷路了,谢谢。
答案 0 :(得分:0)
我发现了问题。我使用Redemption outlook库定义了$junk
变量。
这样它就不是合法的MAPI对象,因此它不会被识别为有效参数。
我必须使用$junk = $routlook.GetDefaultFolder(23)
$junk = $ol.Session.DefaultStore.GetDefaultFolder([Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderJunk)
但是当然我没有在问题中提供这些信息,因为我觉得它看起来并不相关,因为我的脚本中没有任何其他内容会产生如何定义此文件夹的问题。