当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 当管理员分配邮箱权限时通知所有者

作者:精品下载站 日期:2024-12-14 04:05:35 浏览:14 分类:玩电脑

当管理员分配邮箱权限时通知所有者


确保用户知道谁可以访问他们的邮箱

读者询问当管理员向其他人授予其邮箱的权限时,是否可以让 Microsoft 365 通知用户(通过电子邮件)。尽管用户可以使用 PowerShell 进行自我检查(见下文),但任何 Outlook 客户端中都没有选项可以突出显示其他用户的访问。但我们可以使用一些 PowerShell 魔法来生成有关权限授予的通知。

授予邮箱权限

为了进行级别设置,让我们回顾一下管理员如何向邮箱授予权限。本文介绍的是为用户邮箱授予的权限,但 Exchange Online 还支持为共享邮箱和组邮箱授予权限。 Microsoft 365 管理中心和 Exchange 管理中心 (EAC) 均包含用于此目的的 GUI。在 EAC 中,选择用户邮箱并访问邮箱权限。提供了三种权限,所有这些权限都是 Exchange 管理员所熟知的,因为他们已经在该产品中使用了很多年。

  • 阅读和管理。
  • 发送为。
  • 代发。

总的来说,这些权限称为委托权限,因为它们允许用户将某些电子邮件处理委托给其他人。选择所需的权限并搜索要接收该权限的用户(图 1),然后单击“保存”进行分配。

[玩转系统] 当管理员分配邮箱权限时通知所有者

PowerShell 选项

Microsoft 365 管理中心界面有所不同,但具有相同的效果。在这两种情况下,这些选项相当于使用 Add-MailboxPermission cmdlet 授予对邮箱的完全访问权限(读取和管理),并使用 Add-RecipientPermission 允许某人使用 SendAs(模拟邮箱所有者)或代表发送(标记为由分配了权限的用户发送)从邮箱发送电子邮件。

要查看为邮箱设置的权限,请使用 Get-ExoMailboxPermissionGet-RecipientPermission cmdlet:

Get-ExoMailboxPermission -Identity [email protected]

User                             AccessRights
----                             ------------
NT AUTHORITY\SELF                {FullAccess, ReadPermission}
[email protected]   {FullAccess}
[email protected]   {FullAccess}
[email protected] {FullAccess}
[email protected]   {FullAccess}

Get-RecipientPermission -Identity [email protected]

Identity      Trustee                          AccessControlType AccessRights Inherited
--------      -------                          ----------------- ------------ ---------
Terry.Hegarty NT AUTHORITY\SELF                Allow             {SendAs}     False
Terry.Hegarty [email protected] Allow             {SendAs}     False

代表发送权限是通过运行 Set-Mailbox cmdlet 设置的,因此要检索此权限,我们使用 Get-ExoMailbox cmdlet。

Get-ExoMailbox -Properties GrantSendOnBehalfTo -Identity Tom.Tierney | Format-List GrantSendOnBehalfTo

GrantSendOnBehalfTo : {James.Ryan, Brian Weakliam, Andy.Ruth}

现在我们了解了邮箱权限的分配,让我们考虑如何通知邮箱所有者添加的权限。

检测邮箱权限更改

通过检查邮箱并将邮箱的权限集与以前存在的权限集进行比较,可以检测权限更改。当然,您必须知道以前的权限是什么,并且跟踪数千个邮箱的更改很快就会成为一场噩梦。另一个想法是创建邮箱权限报告并检查该报告以突出显示问题。这两种方法都无法很好地扩展。

使用审计记录

检测权限更改的最有效方法是使用 Office 365 审核日志中捕获的审核记录。在本次讨论中,我重点关注完全访问权限的分配和作为权限发送,因为为这些操作捕获的审核数据是相似的。 Exchange Online 捕获邮箱“代表发送”权限更新的审核记录,但审核数据不包括接收该权限的用户的名称。相反,它包含在最新分配后拥有权限的人员列表。

检查审核日志以获取最近 90 天的相关审核记录(如果租户拥有 Office 365 E5 许可证,则可以返回 365 天),接下来需要解析内容以提取有关新受让人(即已分配的受让人)的信息。权限和目标邮箱。某些Add-MailboxPermission审核记录必须被丢弃,因为它们是通过后台处理创建的,以确保系统邮箱存在正确的权限。这些记录是通过查找 NT AUTHORITY\SYSTEM 作为用户标识符来识别的。

由于分配可能与已删除的邮箱相关,因此需要一些代码来处理这种情况。毕竟,向不再存在的邮箱发送通知是没有意义的。

发送有关邮箱权限更新的通知

一旦我们处理了权限更改的审核记录集,下一步就是通知用户其邮箱的更新权限。由于不想做不必要的工作,我重新调整了用于演示如何使用 Microsoft Graph PowerShell SDK 发送电子邮件的代码。简而言之,向每个用户发送电子邮件的步骤是:

  • 设置他们的电子邮件地址。
  • 自定义邮件的 HTML 内容,以包含为其邮箱授予的权限的详细信息。通过运行 Get-ExoMailboxPermission(完全访问权限)或 Get-ExoRecipientPermission(发送方式)cmdlet 可以获得当前拥有邮箱权限的用户组的详细信息。
  • 在运行脚本的用户的邮箱中创建草稿消息。
  • 发送消息。

最大的代码更改是在电子邮件的 HTML 内容中包含权限更新的详细信息。图 2 显示了发送给用户的消息示例。我认为文本清楚地表明了发生的事情以及谁可以访问他们的邮箱。

[玩转系统] 当管理员分配邮箱权限时通知所有者

您可以从 GitHub 下载该脚本的副本。

增强功能

就像任何为说明原理而编写的脚本一样,可以进行改进。基本的错误检查是一个明显的例子,但您也可以研究增强功能,例如:

  • 向用户发送一条消息,其中包含该时间段内所有权限更改的详细信息,而不是每次权限更新发送一条消息。
  • 处理代表发送任务。
  • 为管理员创建摘要报告并通过电子邮件发送给他们。
  • 检查分配的权限是否处于有效使用状态,如果没有,则自动删除它们(有关 SendAs 权限,请参阅此示例)。
  • 更新代码以在 Azure 自动化 Runbook 中运行。事实上,这种脚本非常适合使用计划的 Runbook 运行,其中该脚本除了发送电子邮件之外,还可能每周运行一次并将其结果存储在 SharePoint Online 文档库中。

我将让读者决定他们想要对代码进行什么样的增强。请通过添加评论让我们知道。你永远不知道一个共同的想法可以在多大程度上帮助其他人解决他们多年来一直在努力解决的问题。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯