【问题标题】:Using powershell, how to modify and save a client-side outlook rule, from the client-side?使用powershell,如何从客户端修改和保存客户端outlook规则?
【发布时间】:2021-04-13 02:44:36
【问题描述】:

PS 5.1, 视窗 10, Outlook o365 桌面客户端

你好,

修改属性后如何保存规则?我是 Outlook o365 用户,而不是 Exchange 管理员,我想修改并保存自己现有的客户端规则。

此时,我知道如何获取规则属性并设置其中的一些,但我还没有弄清楚如何成功保存规则。我从 $rules.Save() 得到以下错误

“您无法添加其他规则,因为您已超出此商店的最大规则数。”

但是,我没有超过商店的最大规则数,因为我可以使用 gui 手动创建更多规则。我什至没有尝试创建新规则,而是修改现有规则的属性。 下面的代码应该只是禁用所有启用的规则,但它没有。

cls
#Add Outlook Library
    Add-Type -AssemblyName microsoft.office.interop.outlook
    $outlook = New-Object -ComObject outlook.application
#Get Your Rules
    $rules = $outlook.session.DefaultStore.GetRules()
#Disable enabled rules
    ForEach($rule in $rules){
        if($rule.enabled -eq $true){
            $rule.Enabled = $false
        }
    }
    $rules.Save()

【问题讨论】:

    标签: powershell outlook rules


    【解决方案1】:

    Exchange 服务器限制存储可以支持的最大规则数。 Rules.Save 达到此限制时返回错误。

    定义规则后,还应通过将Rule.Enabled 属性设置为True 来启用它,然后使用Rules.Save 保存该规则,以便该规则及其启用状态将持续超过当前会议。规则只有在成功保存后才会启用。请注意,Rules.Save 在与 Exchange 服务器的慢速连接上的性能方面可能是一项代价高昂的操作;您可以选择为用户显示一个进度对话框以取消操作。通过True 显示进度对话框,False 保存规则而不显示进度。当用户在Rules and Alerts Wizard 中编辑相同的规则或用户取消进度对话框时,保存失败。在这种情况下,Rules.Save 将引发错误,用户将通过响应Rules and Alerts Wizard 引发的错误对话框来解决冲突。

    【讨论】:

      【解决方案2】:

      要保存修改后的规则,我需要做的就是将 $true 或 $false 作为参数放入 $rules.save() 方法中。所以,$rules.save($true) 会显示一个进度弹出窗口,而 $false 不会。

      https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.outlook._rules.save?view=outlook-pia#Microsoft_Office_Interop_Outlook__Rules_Save_System_Object_

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-06
        • 1970-01-01
        • 1970-01-01
        • 2017-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多