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

[玩转系统] 使用 PowerShell 导出 Office 365 日历权限报告

作者:精品下载站 日期:2024-12-14 20:39:09 浏览:14 分类:玩电脑

使用 PowerShell 导出 Office 365 日历权限报告


委派日历访问是流行的 Exchange 功能之一。它允许与具有特定访问权限的其他人共享日历。用户可以轻松委派对其日历的访问权限。

由于邮箱日历可以与内部和外部用户共享,因此管理日历权限需要额外小心。

如何使用 PowerShell 查看 Office 365 中的日历权限?

尽管是管理员,您仍无法通过管理中心查看邮箱的共享日历设置。剩下的唯一选择是 PowerShell。不幸的是,PowerShell 需要多个 PowerShell cmdlet 来检索日历权限。

  • 一个邮箱可以有多个日历,包括内置日历和用户创建的日历。要列出用户的所有日历,您可以使用“Get-MailboxFolderStatistics”
  • 对于每个日历文件夹,您需要使用‘Get-MailboxFolderPermission’来查看共享日历权限。
  • 如果您想查看几个邮箱的日历权限,上述 cmdlet 就足够了。但是,如果您需要查看所有邮箱,则必须使用“Get-Mailbox” cmdlet。

为了简化您的工作,我们创建了一个 PowerShell 脚本来生成 6 个不同的日历权限报告。通过使用内置的过滤参数,您可以导出所需的报告。

脚本下载:GetMailboxCalendarPermissions.ps1

脚本亮点:

  • 生成 6 不同的邮箱日历权限报告。
  • 该脚本使用新式身份验证来检索日历权限。
  • 该脚本也可以使用启用 MFA 的帐户来执行。
  • 将报告结果导出到 CSV 文件。
  • 允许您跟踪所有日历的权限
  • 帮助查看所有邮箱的默认日历权限
  • 显示用户有权访问的所有邮箱日历。
  • 列出与外部用户共享的日历
  • 通过输入 CSV 帮助查找邮箱列表的日历权限。
  • 在您确认后自动安装 EXO V2 模块(如果尚未安装)。
  • 该脚本适合调度程序。即,凭证可以作为参数传递,而不是保存在脚本内。

获取邮箱日历权限报告 - 脚本概述

使用该脚本,您可以获得有关日历和其他 Office 365 用户的访问权限的详细数据。您可以快速生成各种日历权限报告。我们在下面列出了一些重要的用例,

  • 获取所有用户的日历权限
  • 导出与外部用户共享的日历
  • 列出用户有权访问的所有日历
  • 查看所有日历的共享权限(包括默认共享和匿名共享)
  • 获取默认日历权限
  • 检索邮箱列表的日历权限(输入 CSV)
  • 安排日历权限报告

获取 Office 365 中所有用户的日历权限:

出于商业目的,邮箱日历可以委托给其他 Office 365 用户。因此,管理员对数据安全和隐私负责。他们应该知道授予的日历访问权限是否适当且完全符合组织的政策。您可以使用以下格式获取具有委派访问权限的所有共享日历。

.\GetMailboxCalendarPermissions.ps1

使用上述格式,您可以快速获取日历中的所有权限。报告中的“访问权限”、“共享对象”和“共享权限标志”栏可帮助您获取日历共享的主要信息。

注意:该报告不包含默认和匿名日历共享权限。您可以使用-ShowAllPermission开关运行脚本来查看所有权限,包括默认和匿名日历允许。

示例输出:

[玩转系统] 使用 PowerShell 导出 Office 365 日历权限报告

导出与外部用户共享的日历:

有时,Office 365 用户会与组织外部的人员共享日历,以找到共同的会议时间。活动完成后,邮箱所有者负责撤销授予外部用户的日历访问权限。

要查看组织外部共享的日历,您可以使用 - ExternalUsersCalendarPermissions 运行脚本 参数。

.\GetMailboxCalendarPermissions.ps1 -ExternalUsersCalendarPermissions

以上格式列出了所有已与外部用户共享的日历以及访问权限。通过参考此报告,管理员/邮箱所有者可以删除共享权限。

示例输出:

[玩转系统] 使用 PowerShell 导出 Office 365 日历权限报告

列出用户有权访问的所有日历:

如何查看用户有权访问的所有日历? - 我在很多论坛上都看到过这个问题。因此,我决定也包含该用例。要显示用户有权访问的所有邮箱日历,请运行带有 - DisplayAllCalendarsSharedTo param 的脚本与用户的身份。

.\GetMailboxCalendarPermissions.ps1 -DisplayAllCalendarsSharedTo [email protected]

上面的示例检索与 John 共享的所有日历以及允许的访问级别。

示例输出:

[玩转系统] 使用 PowerShell 导出 Office 365 日历权限报告

查看所有日历的共享权限:

默认情况下,该脚本会排除所有其他用例中的默认和匿名日历权限。要查看具有所有共享权限(包括默认权限和匿名权限)的日历,请使用 -ShowAllPermissions 运行脚本> 切换参数

默认 - 显示您组织中的用户或经过身份验证的用户的权限。

匿名 - 显示外部和未经身份验证的用户的权限。

.\GetMailboxCalendarPermissions.ps1 -ShowAllPermissions

通过引用此报告,管理员可以更改默认日历权限并修改/禁用匿名日历共享。

示例输出:

[玩转系统] 使用 PowerShell 导出 Office 365 日历权限报告

获取默认日历权限:

默认日历权限是组织内部人员允许的访问级别。默认情况下,该值设置为“AvailabliityOnly”。由于数据可见性,大多数组织更喜欢“LimitedDetails”而不是默认的“AvailabilityOnly”。

要查看所有 Office 365 用户日历的默认共享策略,请使用 -DefaultCalendarPermissions 执行脚本切换参数。

.\GetMailboxCalendarPermissions.ps1 -DefaultCalendarPermissions

通过此报告,管理员可以识别默认日历权限并根据需要进行修改。

示例输出:

[玩转系统] 使用 PowerShell 导出 Office 365 日历权限报告

使用输入 CSV 文件查找邮箱列表的日历权限:

为所有用户生成日历权限报告非常耗时,特别是在大型环境中。要验证几个邮箱的日历文件夹权限,您可以传递带有特定邮箱标识的输入 CSV 文件。

.\GetMailboxCalendarPermissions.ps1 -CSVIdentityFile C:/InputFile.csv

邮箱名称 CSV 文件必须遵循以下格式: 邮箱标识由换行符分隔,不带标题。身份可以是显示名称/别名/可分辨名称/规范 DN/电子邮件地址或邮箱的 GUID。

注意:您可以将其他参数与 -CSVIdentityFile 获取更详细的日历权限报告。

例如,

.\GetMailboxCalendarPermissions.ps1 -CSVIdentityFile C:/InputFile.csv -ExternalUsersCalendarPermissions

此示例处理 CSV 文件中的邮箱并导出与外部用户共享的日历。

安排 Office 365 日历权限报告:

定期验证日历共享设置非常重要,因为用户可以更改这些设置。要自动生成报告,您可以在 Windows 任务计划程序中将脚本作为 PowerShell 计划任务运行。

.\GetMailboxCalendarPermissions.ps1 -UserName [email protected] -Password XXX -ShowAllPermissions

上述格式检索所有邮箱的日历权限,包括默认和匿名访问权限。

注意:如果管理员帐户具有 MFA,则您无法直接使用它进行安排。相反,您必须根据条件访问策略禁用 MFA 才能使其正常工作。


我们希望这篇博客可以帮助您详细了解日历权限。让我们知道您的问题和意见。

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

取消回复欢迎 发表评论:

关灯