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

[玩转系统] Office 365:如何使用 PowerShell 检查邮箱权限?

作者:精品下载站 日期:2024-12-14 06:22:29 浏览:15 分类:玩电脑

Office 365:如何使用 PowerShell 检查邮箱权限?


作为 Office 365 管理员,管理邮箱权限是一项基本任务。跟踪谁有权访问哪个邮箱可能是一项艰巨的任务,尤其是在处理多个用户和共享邮箱时。在本指南中,我们将探讨如何使用 Office 365 中的 Microsoft 365 管理中心、Exchange 管理中心和 PowerShell 脚本检查邮箱权限。

Office 365 中邮箱权限简介

Office 365 中的邮箱权限决定谁可以访问邮箱以及他们拥有什么级别的访问权限。邮箱权限有多种类型,包括完全访问权限、代理发送和代表发送。完全访问权限允许用户查看、编辑和删除邮箱中的项目,而代理发送和代表发送允许用户代表邮箱所有者发送电子邮件。

管理邮箱权限对于确保敏感数据的安全和隐私至关重要。跟踪谁有权访问哪个邮箱并定期检查和更新权限以确保只有授权用户才能访问非常重要。

不同类型的邮箱权限

Exchange Online 提供各种类型的邮箱权限,为用户或组提供不同级别的访问权限。最常见的权限类型包括完全访问权限、代理发送和代表发送。

  • 完全访问:此权限授予用户对邮箱的完全控制权,允许他们在邮箱中执行任何操作,包括创建、修改和删除项目。
  • 发送为:通过“发送为”权限,用户可以从另一个邮箱发送电子邮件,就好像他们是该邮箱的实际所有者一样。当多个人需要代表共享邮箱或同事发送电子邮件时,这非常有用。
  • 代表发送:与“代理发送”权限不同,“代表发送”权限允许用户代表另一个邮箱发送电子邮件,但收件人可以看到该电子邮件是由该用户代表另一个邮箱发送的邮箱所有者。

如何使用 Microsoft 365 管理中心检查邮箱权限?

您可以使用 Microsoft 365 管理中心检查邮箱权限。步骤如下:

  1. 导航到 Microsoft 365 管理中心:打开 Web 浏览器并导航到 Microsoft 365 管理中心 (https://admin.microsoft.com/)。使用您的管理员凭据登录。
  2. 选择用户:在左侧导航窗格中,单击“用户”和“活跃用户”。找到并单击您要检查其邮箱权限的用户。这将在右侧打开一个包含更多选项的窗格。
  3. 邮件设置:单击“邮件”选项卡。查找“邮箱权限”。在这里您将看到三类权限:“读取和管理”、“发送为”和“代表发送”。每个类别都会向您显示谁对所选邮箱具有这些权限。

    [玩转系统] Office 365:如何使用 PowerShell 检查邮箱权限?

您可以单击“读取和管理权限”等链接来获取每个类别的用户。

使用 Exchange 管理中心获取邮箱权限

要获取 Exchange Online 中的邮箱权限,请按照下列步骤操作:

  1. 通过登录 Office 365 门户,选择“管理”磁贴,然后从管理中心列表中选择 Exchange,打开 Exchange 管理中心。
  2. 在 Exchange 管理中心中,导航到“收件人”部分并选择“邮箱”选项卡。
  3. 找到您要查看权限的邮箱并选择它。单击工具栏中的“邮箱委派”。 (您还可以单击邮箱打开其属性,然后选择“邮箱委派”选项卡)。

    [玩转系统] Office 365:如何使用 PowerShell 检查邮箱权限?

  4. 在“邮箱委派”选项卡上,您将看到三个部分:“发送为”、“代表发送”和“完全访问”。

    [玩转系统] Office 365:如何使用 PowerShell 检查邮箱权限?

  5. 这些部分显示已被授予所选邮箱相应权限的用户。

    [玩转系统] Office 365:如何使用 PowerShell 检查邮箱权限?

通过执行以下步骤,您可以轻松检查组织中任何用户的邮箱权限

如何在 Office 365 PowerShell 中检查邮箱权限?

要使用 PowerShell 检查邮箱权限,您必须使用以下步骤:

  1. 连接到 Exchange Online:打开 PowerShell 终端并运行以下命令:Connect-ExchangeOnline -UserPrincipalName [email protected] -ShowProgress $true 系统会提示您输入管理员凭据。
  2. 检查邮箱权限:要检查特定邮箱的权限,请使用 Get-MailboxPermission cmdlet:Get-MailboxPermission -Identity [email protected] | Format-List[email protected] 替换为您要检查的邮箱的电子邮件地址。此命令将显示对指定邮箱拥有权限的所有用户的列表以及这些权限是什么。

获取邮箱的完全访问权限

要获取邮箱的所有读取和管理权限,请使用以下 PowerShell 脚本:


#Connect to Exchange Online
Connect-ExchangeOnline -UserPrincipalName [email protected] -ShowBanner:$false

#Get permissions of a mailbox
Get-MailboxPermission -Identity "[email protected]" | Where { $_.User -ne "NT AUTHORITY\SELF"}

在这里,邮箱所有者的用户对象将为“NT AUTHORITY\SELF”,因此我们将其排除!

获取分配给邮箱的所有“发送为”权限

要查看有关所有邮箱的“发送为”权限的信息,请使用 Get-RecipientPermission cmdlet:


Get-Mailbox -resultsize unlimited | Get-RecipientPermission | where {($_.trustee -ne "NT AUTHORITY\SELF")} | Select Identity,Trustee,AccessControlType,AccessRights,IsInherited

对于特定邮箱,例如:[email protected],您可以使用:


#Get SendAs permissions for a mailbox
Get-Mailbox -Identity "[email protected]" | Get-RecipientPermission | where {($_.trustee -ne "NT AUTHORITY\SELF")} | Export-Csv -Path "c:\temp\sendaspermissions.csv" -NoTypeInformation

获取所有“代表发送”权限

同样,要获取特定邮箱的所有“代表发送”权限,请使用:


#Get "Send on Behalf of"
Get-Mailbox -Identity "[email protected]" | where {($_.GrantSendOnBehalfTo -ne $null)} | select Name,Alias,UserPrincipalName,PrimarySmtpAddress,@{l='SendOnBehalfOf';e={$_.GrantSendOnBehalfTo -join ";"}}

Office 365 中邮箱权限的最佳实践

在 Office 365 中管理邮箱权限可能是一项复杂的任务,但有一些最佳实践可以帮助简化该过程。这些最佳实践包括:

  • 定期检查和更新邮箱权限,确保只有授权用户才能访问。
  • 使用组来管理多个用户的权限,而不是单独分配权限。
  • 限制完全访问权限的使用,因为它们授予对邮箱的完全访问权限。
  • 使用审核日志跟踪邮箱权限的更改。

通过遵循这些最佳实践,您可以确保组织的邮箱权限安全且最新。

Exchange Online 邮箱权限报告

以下是一个 PowerShell 脚本,用于为 Microsoft 365 环境中的所有邮箱生成邮箱权限报告。


# Step 1: Connect to Exchange Online
Connect-ExchangeOnline -UserPrincipalName [email protected] -ShowBanner:$false

# Step 2: Get All Mailboxes
$Mailboxes = Get-Mailbox -ResultSize Unlimited | Where {$_.DisplayName -ne "Discovery Search Mailbox"}
$ReportData = @()
$MailboxCount = $Mailboxes.count

# Step 3: Gather Mailbox Permissions
$MailboxCounter = 0
ForEach ($Mailbox in $Mailboxes) {
    #Get All Full Permissions - Other than Mailbox Owners
    $Permissions = Get-MailboxPermission -Identity $Mailbox.UserPrincipalName | Where {$_.User -ne "NT AUTHORITY\SELF" }  
    foreach ($Permission in $Permissions) {
        $info = New-Object PSObject -Property @{
            Mailbox        = $mailbox.UserPrincipalName
            UserName       = $mailbox.DisplayName
            UserID         = $permission.User
            AccessRights   = $Permission | Select -ExpandProperty AccessRights
            MailboxType    = $Mailbox.RecipientTypeDetails
        }
        $ReportData += $info
    }

    #Get all "Send as" Permissions
    $SendAsPermissions = Get-RecipientPermission -Identity $Mailbox.UserPrincipalName | Where {$_.Trustee -ne "NT AUTHORITY\SELF"}
    ForEach ($Permission in $SendAsPermissions) {
       $info = New-Object PSObject -Property @{
           Mailbox     = $mailbox.UserPrincipalName
           UserName    = $mailbox.DisplayName
           UserID  = $Permission.Trustee
           AccessRights = $Permission | Select -ExpandProperty AccessRights
           MailboxType = $Mailbox.RecipientTypeDetails
         }
        $ReportData += $info
    }

    #Get all "Send on Behald of" permissions
    If ($Mailbox.GrantSendOnBehalfTo -ne $null)
    {
        ForEach ($Permission in $mailbox.GrantSendOnBehalfTo) {
            $info = New-Object PSObject -Property @{
                Mailbox     = $mailbox.UserPrincipalName
                UserName    = $mailbox.DisplayName
                UserID  =  $Permission
                AccessRights = "Send on Behalf Of"
                MailboxType = $Mailbox.RecipientTypeDetails  
                }
        $ReportData += $info
        }
     }

    $MailboxCounter++
    $ProgressStatus = "$($Mailbox.UserPrincipalName) ($MailboxCounter of $MailboxCount)"
    Write-Progress -Activity "Processing Mailbox" -Status $ProgressStatus -PercentComplete (($MailboxCounter/$MailboxCount)*100)
}

# Step 4: Export Report to CSV
$ReportData | Export-Csv -Path "C:\Temp\MailboxPermissionsReport.csv" -NoTypeInformation
$ReportData | Format-Table

# Step 5: Disconnect from Exchange Online
Disconnect-ExchangeOnline -Confirm:$false

该脚本生成以下格式的 CSV 文件:

[玩转系统] Office 365:如何使用 PowerShell 检查邮箱权限?

请注意,此报告不涵盖在文件夹级别分配的权限。要检查文件夹级别权限,您可以使用 Get-MailboxFolderPermission cmdlet。

结论

管理 Office 365 中的邮箱权限是确保敏感数据安全和隐私的一项重要任务。无论您是管理几个邮箱还是管理一个大型组织,了解谁有权访问什么内容至关重要。在本文中,我们介绍了在 Office 365 中检查邮箱权限的方法:使用 Microsoft 365 管理中心、Exchange 管理中心和 PowerShell。

检查 Office 365 中的邮箱权限是维护安全、有组织且高效的电子邮件环境的一个组成部分。无论您选择使用 Office 365 管理中心还是 PowerShell,了解如何管理这些权限都将使您能够更好地控制组织的通信。请记住,维护有效的邮箱权限不是一项一次性任务,而是一个随着组织不断变化的需求而发展的持续过程。

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

取消回复欢迎 发表评论:

关灯