在我们的 Office365 环境中,我正在尝试以编程方式创建规则,该规则将根据收到邮件的分发列表移动传入邮件。
然而,在进行原型设计时,以下命令始终会产生错误:
New-InboxRule -Mailbox alias -Name RuleName -SentTo [email protected] -MoveToFolder \Archive\DLName
错误是:
警告:发生了意外错误,正在生成 Watson 转储:无法对此对象执行操作,因为其状态无效。
这里指的是什么对象?我在哪里可以看到 Watson 转储?它有什么用处吗?
目标文件夹确实存在。
我是否应该使用不同的语法来引用所涉及的任何部分(邮箱、收件人、文件夹)?
Get-Mailbox alias
正确返回了预期的邮箱对象,所以这似乎没问题......(我也尝试了该邮箱的完整 SMTP 地址)Get-Recipient [email protected]
正确解析了预期的接收者对象,所以这似乎没问题......
目前对我来说最有可能的罪魁祸首似乎是目标文件夹。如果我将语法更改为mailbox-alias:\Path\To\Target
或,mailbox-smtp-address:\Path\To\Target
则会收到“无法打开邮箱”错误而不是上述错误。当我省略邮箱名称时,它是否会在我的管理员用户邮箱中查找该文件夹路径?这肯定会失败,因为管理员用户实际上首先没有邮箱……如果是这样,我还应该如何引用该文件夹?
附加信息:
- 我尝试添加此规则的邮箱(当前)是普通用户邮箱,但最终可能会转换为共享邮箱。
- 我们尚未完成向 Office365 的迁移,因此我们的 SMTP 域的 MX 记录尚未调整为直接指向 Exchange Online。但是,在成功连接的 PowerShell 会话中,DNS 不应该成为问题,或者应该成为问题?无论如何,我已经使用相应的 *.onmicrosoft.com 地址尝试了上述所有操作。
- 正如我所提到的正在进行的迁移:所讨论的邮箱尚未迁移,而是从头创建的。
- 在 Outlook 中完全手动创建规则非常完美,我也可以使用以下方式查询其属性
Get-InboxRule -Mailbox alias
答案1
我终于设法编写了规则创建脚本。显然,运行脚本的管理员用户帐户必须……:
- 拥有自己的邮箱(=> 需要 Office365 许可证,特别是 Exchange Online 许可证)
- 对目标邮箱拥有完全访问权限
据我所知,还需要直接向相应用户授予完全访问权限。通过组成员身份间接授予权限不起作用。
以前,我的管理员用户没有分配 Office365 许可证,因此也没有邮箱的明确权限。