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

[玩转系统] 获取用户在 Exchange/Microsoft 365 中有权访问的邮箱列表

作者:精品下载站 日期:2024-12-14 23:22:28 浏览:13 分类:玩电脑

获取用户在 Exchange/Microsoft 365 中有权访问的邮箱列表


审核 Exchange Server 组织或 Microsoft 365 租户 (Exchange Online) 中的邮箱权限时,管理员需要查找特定用户有权访问的所有邮箱。在本文中,我们将了解一些 PowerShell 脚本,用于获取特定用户具有访问权限的邮箱(以及特定 Outlook 文件夹)列表。

列出用户可以访问的所有 Exchange 或 Microsoft 365 邮箱

使用Get-MailboxPermission cmdlet 获取分配给邮箱的权限列表。

之前,我们展示了如何在 Exchange/Microsoft 365 中管理邮箱和文件夹权限。

打开 PowerShell 控制台并远程连接到本地 Exchange Server 或 Microsoft 365 (Exchange Online)。

以下命令显示有权访问指定邮箱的用户列表:

get-mailboxpermission -identity [email protected] |ft -AutoSize

[玩转系统] 获取用户在 Exchange/Microsoft 365 中有权访问的邮箱列表

在此示例中,您可以看到 Grady 和 Henrietta 已为指定邮箱分配了完全访问权限。权限是手动分配的(不是继承的),因为

IsInherited = False

您可以显示分配给邮箱的权限的完整报告,并将其显示在方便的 Out-GridView 表中:

Get-Mailbox | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | Out-GridView

使用以下 PowerShell 命令,您可以查找并列出 Exchange 组织或租户中特定用户具有完全访问权限的邮箱:

Get-Mailbox -ResultSize Unlimited | Get-MailboxPermission -User Henrietta | ft User,Identity,AccessRights

[玩转系统] 获取用户在 Exchange/Microsoft 365 中有权访问的邮箱列表

在此示例中,我们发现已为用户分配了三个邮箱(“身份”列)的完全访问权限。

在 Microsoft 365 中,您可以使用新的 Exchange Online PowerShell v2 (EXO V2) 模块 cmdlet 来获取此列表:

Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxPermission -Identity $_.Identity | Where-Object {$_.User -eq "[email protected]"}

您可以按邮箱类型使用过滤器。它将使您的搜索更快。为此,请添加

-RecipientTypeDetails

Get-EXOMailbox 或 Get-Mailbox 命令的选项并指定要搜索的邮箱类型:

  • DiscoveryMailbox
  • EquipmentMailbox
  • GroupMailbox
  • LegacyMailbox
  • LinkedMailbox
  • LinkedRoomMailbox
  • RoomMailbox
  • SchedulingMailbox
  • SharedMailbox
  • TeamMailbox
  • UserMailbox

例如:

Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails SharedMailbox| Get-MailboxPermission -User "Henrietta" | ft User,Identity,AccessRights

要查找用户具有 SendAs 权限的邮箱:

Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited | Get-RecipientPermission -Trustee Henrietta

您还可以查找启用了代表发送权限的邮箱:

Get-Mailbox | ? {$_.GrantSendOnBehalfTo -match "Henrietta"}

您可以使用 Exchange 审核日志记录和 Azure 登录日志来获取有关其他用户邮箱中的用户活动的信息。

如何列出用户可以在 Exchange/Microsoft 365 上访问的邮箱文件夹?

除了分配对整个 Exchange (Microsoft 365) 邮箱的权限之外,您还可以授予对特定邮箱文件夹的访问权限。例如,仅对

Inbox

或者

Calendar

文件夹。审核用户权限时,有时您不仅需要查找具有 FullAccess 权限的邮箱,还需要查找用户邮箱中其他用户有权访问的特定文件夹。

您可以使用 Get-MailboxFolderStatistics cmdlet 获取指定邮箱中的文件夹列表。然后您可以使用 Get-MailboxFolderPermission 列出文件夹权限。

以下 PowerShell 脚本检查组织中的所有邮箱并列出用户有权访问的文件夹(包括子文件夹)。

在具有大量邮箱的 Exchange 组织中,该脚本可能运行缓慢。建议预先过滤邮箱列表或分部分检查。当您使用 Get-MailboxFolderStatistics 获取有关文件夹的信息时,邮箱的大小和其中的文件夹数量也会影响脚本性能。

$user_find_permissions= "*Henrietta Fischer*"
$allpermissions = @()
$MBXs= Get-Mailbox -ResultSize Unlimited
Foreach ($MBX in $MBXs){
$MBXfolders=Get-MailboxFolderStatistics $MBX.PrimarySmtpAddress |select Name
Foreach ($MBXfolder in $MBXfolders){
try {
$folder=$MBX.PrimarySmtpAddress + ":\" + $MBXfolder.name
$folderpermessions= Get-MailboxFolderPermission -Identity $folder -ErrorAction Stop | where {($_.user -like $user_find_permissions)}
$allpermissions += $folderpermessions
}
catch {
Continue
}
}
}
$allpermissions | select Identity, FolderName, User,AccessRights

[玩转系统] 获取用户在 Exchange/Microsoft 365 中有权访问的邮箱列表

此 PowerShell 脚本将列出特定用户有权访问的其他用户邮箱中的所有文件夹。显示邮箱名称(身份)、文件夹名称和分配的文件夹权限(编辑者、审阅者等)。

您可以使用 Search-Mailbox 或 New-ComplianceSearch cmdlet 搜索和删除用户邮箱中的特定电子邮件。

另外,您还可以使用新的

Get-EXOMailbox

,

Get-EXOMailboxFolderPermission

, 和

Get-EXOMailboxFolderStatistics

Microsoft 365 的 EXOv2 模块中的 cmdlet。

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

取消回复欢迎 发表评论:

关灯