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

[玩转系统] 使用 PowerShell 列出用户有权访问的所有邮箱

作者:精品下载站 日期:2024-12-14 18:25:31 浏览:15 分类:玩电脑

使用 PowerShell 列出用户有权访问的所有邮箱


在Exchange中,我们可以获取邮箱权限。如果您想知道哪个用户可以访问哪个邮箱,那就太好了。您可以直接分配安全组而不是用户作为邮箱权限。如果您想反转它并获取用户有权访问的所有邮箱怎么办?在本文中,您将了解如何使用 PowerShell 列出用户有权访问的所有邮箱。

获取邮箱权限

登录 Exchange 管理中心。单击功能窗格中的收件人,然后单击选项卡中的邮箱。在列表视图中找到该用户并双击它。

[玩转系统] 使用 PowerShell 列出用户有权访问的所有邮箱

检查哪些邮箱可以访问Amanda Morgan的邮箱:

  • 作为访问权限发送:Boris Campbell、Kylie Davidson

  • 代表发送:克里斯托弗·佩恩

  • 完全访问权限:Benetiz Anees

[玩转系统] 使用 PowerShell 列出用户有权访问的所有邮箱

上面的信息非常好,但这不是我们想知道的。我们想知道用户 Amanda Morgan 可以访问哪些邮箱。

列出用户有权访问的所有邮箱

您可以打开每个邮箱并查看是否在“发送为”/“代表发送”/“完全访问”权限中找到该用户。我们不想一一打开所有邮箱并检查是否可以在列表中找到该用户,因为这非常耗时。

获取发送为权限

用户对这些邮箱具有发送为权限。

[PS] C:\>Get-Mailbox | Get-ADPermission | Where-Object { $_.ExtendedRights -like "*send*" -and ($_.User -match "Amanda.Morgan")} | ft User,Identity

User                Identity
----                --------
EXOIP\Amanda.Morgan exoip.local/Company/Users/IT/Kylie Davidson
EXOIP\Amanda.Morgan exoip.local/Company/Users/IT/Richard Grant

获取代表发送权限

列出用户拥有代表发送权限的邮箱。

[PS] C:\>Get-Mailbox -ResultSize Unlimited | Where-Object {$_.GrantSendOnBehalfTo -match "Amanda Morgan"} | ft GrantSendOnBehalfTo,Name

GrantSendOnBehalfTo                               Name
-------------------                               ----
{exoip.local/Company/Users/Finance/Amanda Morgan} Grace Rees

获得完全访问权限

以管理员身份运行 Exchange 命令行管理程序。使用获取邮箱 cmdlet。用户对这些邮箱拥有完全访问权限。

[PS] C:\>Get-Mailbox -ResultSize Unlimited | Get-MailboxPermission -User "Amanda Morgan" | ft User,Identity,AccessRights

User                Identity                                          AccessRights
----                --------                                          ------------
EXOIP\Amanda.Morgan exoip.local/Company/Users/Finance/Sebastian Nolan {FullAccess}
EXOIP\Amanda.Morgan exoip.local/Company/Users/Finance/Dylan Piper     {FullAccess}
EXOIP\Amanda.Morgan exoip.local/Company/Exchange/Resources/Room Tokyo {FullAccess}

使用 RecipientTypeDetails 参数过滤邮箱

使用 RecipientTypeDetails 参数。 RecipientTypeDetails 参数按指定的邮箱子类型筛选结果。有效值为:

  • 发现邮箱

  • 设备邮箱

  • 群组邮箱

  • 旧版邮箱

  • 联动邮箱

  • 联房邮箱

  • 客房邮箱

  • 调度邮箱

  • 共享邮箱

  • 团队邮箱

  • 用户邮箱

用户对这些会议室邮箱具有完全访问权限。

[PS] C:\>Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails RoomMailbox | Get-MailboxPermission -User "Amanda Morgan" | ft User,Identity,AccessRights

User                Identity                                          AccessRights
----                --------                                          ------------
EXOIP\Amanda.Morgan exoip.local/Company/Exchange/Resources/Room Tokyo {FullAccess}

您始终可以将结果列为列表,而不是表格。

[PS] C:\>Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails RoomMailbox | Get-MailboxPermission -User "Amanda Morgan" | fl


RunspaceId      : 5325c6df-036a-4de4-b07f-6273c28ad286
AccessRights    : {FullAccess}
Deny            : False
InheritanceType : All
User            : EXOIP\Amanda.Morgan
Identity        : exoip.local/Company/Exchange/Resources/Room Tokyo
IsInherited     : False
IsValid         : True
ObjectState     : Unchanged

这是否有助于您列出用户有权使用 PowerShell 访问的所有邮箱?

了解更多:将邮箱文件夹权限导出到 CSV 文件 »

结论

您学习了如何使用 PowerShell 列出用户有权访问的所有邮箱。在 Exchange 管理中心中查找用户有权访问的邮箱需要一些时间。使用 PowerShell 中的 Get-Mailbox cmdlet 并获取权限。

您喜欢这篇文章吗?您可能还喜欢在 Exchange 中创建发送连接器。不要忘记关注我们并分享这篇文章。

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

取消回复欢迎 发表评论:

关灯