如何通过PowerShell调用Interop.Outlook创建仅OOF触发的Outlook规则
解决PowerShell调用Outlook Interop创建仅OOF生效规则的方法
核心实现逻辑
Outlook Interop库原生提供了对应st_only_when_oof标记的内置规则条件,无需依赖Redemption等第三方组件,只需启用规则的OutOfOffice条件即可实现仅外出模式下触发的效果。
修改后的完整脚本
Add-Type -Assembly "Microsoft.Office.Interop.Outlook" $Outlook = New-Object -ComObject "Outlook.Application" $Namespace = $Outlook.GetNamespace("MAPI") $Rules = $Namespace.DefaultStore.GetRules() # 创建接收类规则 $Rule = $Rules.Create("Gestion Absence",[Microsoft.Office.Interop.Outlook.OlRuleType]::olRuleReceive) # 配置发件人地址条件 $Condition = $Rule.Conditions.SenderAddress $Condition.Enabled = $true $Condition.Address = @("xxx@xxx.com") # 新增仅OOF模式生效的条件(核心改动) $OofCondition = $Rule.Conditions.OutOfOffice $OofCondition.Enabled = $true # 配置删除动作 $Action = $Rule.Actions.Delete $Action.Enabled = $true # 保存规则 $Rules.Save()
注意事项
- 运行脚本的PowerShell位数需要与本地安装的Office/Outlook位数一致(32位对应32位,64位对应64位),否则会出现COM组件调用失败的问题
- 规则保存后可手动打开Outlook的「规则和通知」设置,确认对应规则的条件列表中已出现仅在我开启外出回复时的选项,验证配置生效
- 该规则仅对Exchange/Office 365类型的邮箱账号生效,POP3/IMAP账号本身不支持外出(OOF)功能,无法使用该条件
内容的提问来源于stack exchange,提问作者Ludovick L
相关产品推荐
相关产品推荐

