查看有效权限

适用于:Exchange Server 2013

Microsoft Exchange Server 2013 中的权限是使用分配给管理角色组、管理角色分配策略、通用安全组 (USG) 或直接分配给用户的管理角色授予的。 如果用户是角色组或 USG 的成员,或分配有角色分配策略,则用户将被授予权限。

大多数权限是根据角色组成员身份或分配策略分配给最终用户授予的。 尽管使用角色组和分配策略可以轻松向大量用户授予权限,但你可能不知道谁是角色组的成员,或者谁已分配分配策略。 这是 Get-ManagementRoleAssignment cmdlet 上的 GetEffectiveUsers 开关非常有用的地方。 它显示通过分配给他们的角色组、分配策略和 USG,向哪些用户授予了管理角色授予的权限。

使用 Role 参数时,GetEffectiveUsers 开关与 Get-ManagementRoleAssignment cmdlet 一起使用。 通过指定具有特定角色的此开关, Get-ManagementRoleAssignment cmdlet 将检查分配给该角色的所有角色被分配者,例如角色组、分配策略和 USG,并列出每个角色的成员。

注意

GetEffectiveUser 开关不会列出属于链接外部角色组成员的用户。 如果找到链接的角色组,则显示 “所有链接组成员 ”,而不是用户列表。 有关多个林中权限的详细信息,请参阅 了解多林权限

有关管理角色、角色组和分配策略的详细信息,请参阅了解基于角色访问控制。 有关管理角色分配的详细信息,请参阅了解管理角色分配

是否正在寻找与管理权限相关的其他管理任务? 请查看权限

开始前,有必要了解什么?

  • 估计完成每个步骤时间:5 分钟

  • 您必须先获得权限,然后才能执行此过程或多个过程。 若要查看所需的权限,请参阅 角色管理权限主题中的"角色组"或"角色分配策略"条目。

  • 本主题中的过程只能在 Shell 中执行。 无法使用 Exchange 管理中心 (EAC) 查看有效权限。

  • 若要了解本主题中的过程可能适用的键盘快捷键,请参阅 Exchange 管理中心内的键盘快捷键

提示

是否有任何疑问? 在 Exchange 论坛中寻求帮助。 访问 Exchange Server 的论坛。

使用命令行管理程序列出所有有效用户

若要列出授予管理角色提供的权限的所有用户,请使用以下语法。

Get-ManagementRoleAssignment -Role <role name> -GetEffectiveUsers

此示例列出了授予由"邮件收件人"角色提供的权限的所有用户。

Get-ManagementRoleAssignment -Role "Mail Recipients" -GetEffectiveUsers

如果要更改列表中返回的属性或将列表导出到逗号分隔值 (.csv) 文件,请参阅本主题后面的使用命令行管理程序自定义输出并显示该输出。

有关语法和参数的详细信息,请参阅 Get-ManagementRoleAssignment

使用命令行管理程序查找角色中的特定用户

若要查找管理角色授予权限的特定用户,必须使用 Get-ManagementRoleAssignment cmdlet 检索所有有效用户的列表,然后将该 cmdlet 的输出通过管道传递到 Where cmdlet。 Where cmdlet 筛选输出并仅返回指定的用户。 请使用以下语法:

Get-ManagementRoleAssignment -Role <role name> -GetEffectiveUsers | Where {$_.EffectiveUserName -Eq "<name of user>"}

此示例查找日记角色中的用户 David Strome。

Get-ManagementRoleAssignment -Role Journaling -GetEffectiveUsers | Where {$_.EffectiveUserName -Eq "David Strome"}

如果要更改列表中返回的属性或将列表导出到 .csv 文件,请参阅本主题后面的使用命令行管理程序自定义输出并显示该输出。

有关语法和参数的详细信息,请参阅 Get-ManagementRoleAssignment

使用命令行管理程序查找所有角色中的特定用户

若要了解用户从中接收权限的每个角色,必须使用 Get-ManagementRoleAssignment cmdlet 检索所有管理角色上的所有有效用户,然后将 cmdlet 的输出通过管道传输到 Where cmdlet。 Where cmdlet 筛选输出,仅返回授予用户权限的角色分配。

Get-ManagementRoleAssignment -GetEffectiveUsers | Where {$_.EffectiveUserName -Eq "<name of user>"}

此示例查找向用户 Kim Akers 授予权限的所有角色分配。

Get-ManagementRoleAssignment -GetEffectiveUsers | Where {$_.EffectiveUserName -Eq "Kim Akers"}

如果要更改列表中返回的属性或将列表导出为 CSV 文件,请参阅本主题后面的使用命令行管理程序自定义输出并显示该输出。

有关语法和参数的详细信息,请参阅 Get-ManagementRoleAssignment

使用命令行管理程序自定义输出并显示该输出

Get-ManagementRoleAssignment cmdlet 的默认输出可能没有所需的信息。 cmdlet 的输出包含更多可以访问的属性。 下面是一些可能有用的属性:

  • EffectiveUserName:用户的名称。

  • 角色:授予权限的角色。

  • RoleAssigneeName:分配给角色的角色组、分配策略或 USG,并在 属性中包含 EffectiveUserName 用户。

  • RoleAssigneeType:指示角色分配是角色组、分配策略、USG 还是用户。

  • AssignmentMethod:指示角色与角色被代理人之间的分配是直接或间接的。

  • CustomRecipientWriteScope:指示在创建角色分配时应用于角色分配的自定义收件人写入范围(如果有)。 此属性中指定的范围将替代 属性中指定的 RecipientWriteScope 隐式收件人写入范围。

  • CustomConfigWriteScope:指示在创建角色分配时应用于角色分配的自定义配置写入范围(如果有)。 此属性中指定的范围将替代 属性中指定的 ConfigWriteScope 隐式配置写入范围。

  • RecipientReadScope:指示应用于角色的隐式收件人读取范围。

  • RecipientWriteScope:指示应用于角色的隐式收件人写入范围。

  • ConfigReadScope:指示应用于角色的隐式配置读取范围。

  • ConfigWriteScope:指示应用于角色的隐式配置写入范围。

若要选择要在列表中显示的属性,请使用类似于“使用 Shell 列出所有有效用户”、“使用 Shell 查找角色的特定用户”和“使用 Shell 查找所有角色上的特定用户”部分中使用的命令。 不同之处在于,通过管道将这些命令的结果传递给 Format-TableSelect-Object cmdlet。 Format-Table cmdlet 可用于将结果列表输出到屏幕。 Select-Object cmdlet 可用于将结果列表输出到.csv文件。

这两个 cmdlet 都允许你指定要查看的属性,以及按要查看它们的顺序。 当将结果列出到屏幕时, Format-Table cmdlet 提供了更多选项,而 Select-Object 不以任何方式修改输出,这在将列表管道连接到.csv文件时很有用。

有关 Format-TableSelect-Object cmdlet 的详细信息,请参阅 使用命令输出

将自定义列表输出到屏幕上

  1. 选择要查看的信息并从以下某个步骤中查找相关的命令:

    • Use the Shell to list all effective users

    • Use the Shell to find a specific user a role

    • Use the Shell to find a specific user on all roles

  2. 选择要在列表中看到的属性。

  3. 使用以下语法查看列表:

    <command to retrieve list > | Format-Table <property 1>, <property 2>, <property ...>
    

此示例在所有角色上查找用户 David Strome,并显示 EffectiveUserNameRoleCustomRecipientWriteScopeCustomConfigWriteScope 属性。

Get-ManagementRoleAssignment -GetEffectiveUsers | Where {$_.EffectiveUserName -Eq "David Strome"} | Format-Table EffectiveUserName, Role, CustomRecipientWriteScope, CustomConfigWriteScope

有关语法和参数的详细信息,请参阅 Get-ManagementRoleAssignment

将自定义列表输出到 .csv 文件

若要将列表导出到.csv文件,需要通过管道将 Get-ManagementRoleAssignment 命令的结果从前面列出的相应过程传递给 Select-Object cmdlet。 然后, Select-Object cmdlet 的输出通过管道传输到 Export-CSV cmdlet,后者会将.csv输出保存到指定的文件名。

  1. 选择要查看的信息并从以下某个步骤中查找相关的命令:

    • Use the Shell to list all effective users

    • Use the Shell to find a specific user a role

      • Use the Shell to find a specific user on all roles
  2. 选择要在列表中看到的属性。

  3. 使用以下语法将列表导出到 .csv 文件:

    <command to retrieve list > | Select-Object <property 1>, <property 2>, <property ...> | Export-CSV <filename>
    

此示例在所有角色上查找用户 David Strome,并显示 EffectiveUserNameRoleCustomRecipientWriteScopeCustomConfigWriteScope 属性。

Get-ManagementRoleAssignment -GetEffectiveUsers | Where {$_.EffectiveUserName -Eq "David Strome"} | Select-Object EffectiveUserName, Role, CustomRecipientWriteScope, CustomConfigWriteScope | Export-CSV c:\output.csv

现在,您可以在所选查看器中查看 .csv 文件。

有关语法和参数的详细信息,请参阅 Get-ManagementRoleAssignment