Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

使用 PowerShell 在 Exchange 2013 中自定义 RBAC 权限

使用 PowerShell 在 Exchange 2013 中自定义 RBAC 权限

Mar 17, 2023

我们继续“Deep Dive”系列。在这里,你可能会找到对一些技术问题的答案。行业专家将就多个主题提供他们的见解,并研究最受欢迎的应用程序的一些新功能。该系列的第一篇文章可在此处找到 这里。另外,请阅读有关 Exchange 2013 CAS 配置(Part 1,Part 2)的更多内容!欢迎发表评论并参与讨论!

RBAC 是 Exchange 2013 中新的权限模型。使用 RBAC 后,我们无需修改和管理访问控制列表(ACLs)。它使我们能够在宏观与细粒度两个层面上控制管理员和终端用户可以执行的操作。在 Exchange 2013 中,RBAC 现在同时控制可执行的管理任务,以及用户可以在多大程度上管理自己的邮箱和分发组。

角色组由以下组件构成,用于定义管理员和专业用户可以执行的操作:

  • 管理角色组:管理角色组是一种特殊的通用安全组(USG),其中包含属于该角色组成员的邮箱、用户、USG 以及其他角色组。你可以在这里添加和移除成员,同时管理角色也会被分配到该角色组。角色组中所有角色的组合,决定了添加到该角色组的用户在 Exchange 组织中可以管理的全部内容。
  • 管理角色:管理角色是管理角色条目分组的容器。角色用于定义分配了角色的组成员可以执行的特定任务。管理角色条目是 cmdlet、脚本或特殊权限,用于启用角色中需要执行的每个指定任务。
  • 管理角色分配:管理角色分配用于将角色与角色组进行关联。将角色分配给角色组后,角色组的成员就能够使用角色中定义的 cmdlet 和参数。角色分配可以使用管理范围来控制该分配可在何处使用。
  • 管理角色范围:管理角色范围是管理角色分配的影响或作用范围。当角色以范围的形式分配到角色组时,管理范围会专门指向该分配被允许管理的对象。然后,会将该分配及其范围提供给角色组的成员,并限制这些成员能够管理的内容。范围可以由服务器或数据库列表、组织单位(OU)或对服务器、数据库或收件人对象的筛选条件构成。下面举一个场景:假设帮助台团队需要提供“收件人管理(Recipient Management)”权限,该权限负责创建和管理邮箱、创建和管理分发组、移动和迁移邮箱,最后还要跟踪邮件消息。但“收件人管理”权限也会提供删除和禁用访问权限。此权限需要对帮助台团队进行限制。请按照以下步骤自定义“收件人管理”权限。

首先,让我们使用下面的命令来了解“Recipient Management(收件人管理)”角色组下的管理角色。

      Get-Rolegroup “Recipient Management” | Select roles).roles | select name
      

Image

我们只需要从上面的命令结果中选取所需的管理角色,并对其进行定制以满足我们的要求。

  • 通讯组(Distribution Groups)—需要定制。
  • 邮件收件人创建 —需要定制。
  • 邮件收件人 —需要定制。
  • 邮件跟踪(Message Tracking)– 无需进行自定义。
  • 移动邮箱(Move Mailboxes)– 无需进行自定义。
  • 收件人策略(Recipient Policies)— 不需要管理角色。
  • 团队邮箱(Team mailboxes)— 不需要管理角色。

按照以下步骤创建并自定义“Recipient Management(收件人管理)”角色组。

1. 使用下面的 PowerShell 命令创建一个新的角色组 “Helpdesk Administrator”。

      New-RoleGroup “HelpDesk Administrator”
      

2. 现在,我们来处理“Distribution Groups”管理角色,并在对其进行自定义之前,查找 Distribution Group 可用的所有 cmdlet。下面的 PowerShell 命令将为管理角色“Distribution Groups”获取所有 ManagementRoleEntry。

Image
      Get-ManagementRole “Distribution Groups” | Get-ManagementRoleEntry
      

3. 使用下面的命令创建新的管理角色“Distribution Groups with no Remove”。该命令将创建新的管理角色“Distribution Groups with no Remove”,并且会把“Distribution Groups”中可用的所有 cmdlet 复制到“Distribution Groups with no Remove”管理角色中。

Image
      Get-ManagementRole "Distribution Groups" | New-ManagementRole "Distribution Groups with no Remove"
      

4. 然后,使用下面的 PowerShell 命令,从管理角色“Remove-*””中移除所有 cmdlet:“Distribution Groups with no Remove”。

      Get-ManagementRole "Distribution Groups with no Remove" | Get-ManagementRoleEntry | Where {$_.Name -like "remove*"} | Remove-ManagementRoleEntry -confirm:$false
      

5. 最后,使用下面的命令将自定义的管理角色 “Distribution Groups with no Remove” 分配给角色组 “HelpDesk Administrator” 。

Image
      New-ManagementRoleAssignment -SecurityGroup "HelpDesk Administrator" -Role "Distribution Groups with no Remove" 
      

6. 通过这一点,我们已经自定义了 “Distribution Groups” 管理角色。现在,我们需要自定义 “Mail Recipient Creation” 和 “Mail Recipients” 管理角色。

7. 下面是一组用于自定义 “Mail Recipient Creation” 管理角色的 PowerShell 命令。它会创建一个新的自定义管理角色——“Mail Recipient Creation with no Remove”,并将其分配给 “HelpDesk Administrator” 角色组。

      Get-ManagementRole "Mail Recipient Creation" | New-ManagementRole "Mail Recipient Creation with no Remove"

Get-ManagementRole "Mail Recipient Creation with no Remove" | Get-ManagementRoleEntry | Where {$_.Name -like "remove*"} | Remove-ManagementRoleEntry -confirm:$false

New-ManagementRoleAssignment -SecurityGroup "HelpDesk Administrator" -Role "Mail Recipient Creation with no Remove"
      

8. 同样,下面是一组用于自定义 “Mail Recipients” 管理角色的 PowerShell 命令。它会创建一个新的自定义管理角色——“Mail Recipients with no Remove”,并将其分配给 “HelpDesk Administrator” 角色组。

Image
      Get-ManagementRole "Mail Recipients" | New-ManagementRole "Mail Recipients with no Remove" 

Get-ManagementRole "Mail Recipients with no Remove" | Get-ManagementRoleEntry | where {$_.Name -like "remove*"} | Remove-ManagementRoleEntry -confirm:$false 

New-ManagementRoleAssignment -SecurityGroup "HelpDesk Administrator" -Role "Mail Recipients with no Remove"
      

Image

9. “Message Tracking” 和 “Move Mailboxes” 管理角色不需要任何自定义,因为它们具有执行这些操作所必需的 cmdlet。下面的命令将默认角色 “Message Tracking” 和 “Move Mailboxes” 分配给角色组 “HelpDesk Administrator”。

      New-ManagementRoleAssignment –SecurityGroup “HelpDesk Administrator” –Role “Message Tracking”

New-ManagementRoleAssignment –SecurityGroup “HelpDesk Administrator” –Role “Move Mailboxes”
      

10. 最后,使用下面的 PowerShell 命令将成员添加到角色组 “HelpDesk Administrator”。

Image
      Get-RoleGroup “HelpDesk Administrator” | Add-RoleGroupMember –Member Krishna.kumar
      

Image

最后,我们拥有完全自定义的角色组“HelpDesk Administrator”。“HelpDesk Administrator”组成员将拥有创建和修改邮箱、通讯组等的权限,但没有“移除”权限。希望您已经很好地理解了如何使用 PowerShell 自定义 RBAC 权限。

分享到

了解更多

关于作者

Asset Not Found

Krishna Kumar

不适用

Krishna 拥有 10 年以上的 IT 经验,并且在 Microsoft Exchange、Active Directory、Office 365、PowerShell 和 VMware 方面具备实操经验。Krishna 拥有 MCITP 认证,曾在 PowerShell 领域获得 MVP 身份。Krishna 还为各类 Exchange 和 PowerShell 主题提供培训。他同时维护个人博客,内容涵盖多个 IT 主题的数十篇技术文章。Krishna 喜欢打板球和羽毛球,也喜欢在自家露台花园种植有机蔬菜。