Get-CsAdminRole

 

上一次修改主题: 2012-03-23

返回组织中使用的基于角色的访问控制 (RBAC) 角色的信息。RBAC 角色用于指定允许用户执行的管理任务,以及确定允许用户执行这些任务的作用域。

语法

Get-CsAdminRole [-Identity <String>] [-LocalStore <SwitchParameter>]

Get-CsAdminRole [-Sid <String>] [-LocalStore <SwitchParameter>]

Get-CsAdminRole [-Filter <String>] [-LocalStore <SwitchParameter>]

详细说明

管理员可以使用基于角色的访问控制 (RBAC) 在 Microsoft Lync Server 2010 中委派特定管理任务的控制。例如,不必为组织的技术支持授予完全管理员权限,可以为这些员工授予很具体的权限,例如仅管理用户帐户的权限、仅管理企业语音组件的权限以及仅管理存档和存档服务器的权限。此外,还可将这些权限限制在以下作用域:可以给予某人管理企业语音的权限,但仅限于在 Redmond 站点中;可以给予其他人管理用户的权限,但仅当这些用户帐户处于 Finance 组织单位 (OU) 中才能进行管理。

RBAC 的 Lync Server 2010 实现基于两个关键元素:Active Directory 安全组和 Windows PowerShell cmdlet。安装 Lync Server 2010 时,会为您创建很多通用安全组,如 CsAdministrator、CsArchivingAdministrator 和 CsViewOnlyAdministrator。这些通用安全组与 RBAC 角色具有一对一的对应关系;这意味着,处于 CsArchivingAdministrator 安全组中的任何用户都具有授予给 CsArchivingAdministrator RBAC 角色的所有权限。相应地,授予给 RBAC 角色的权限基于分配给该角色的 cmdlet(cmdlet 可以分配给多个 RBAC 角色)。例如,假设为角色分配了以下 cmdlet:

Get-ArchivingPolicy

Grant-ArchivingPolicy

New-ArchivingPolicy

Remove-ArchivingPolicy

Set-ArchivingPolicy

Get-ArchivingConfiguration

New-ArchivingConfiguration

Remove-ArchivingConfiguration

Set-ArchivingConfiguration

Get-CsUser

Export-CsArchivingData

Get-CsComputer

Get-CsPool

Get-CsService

Get-CsSite

上述列表代表仅允许分配了假设性 RBAC 角色的用户在远程 Windows PowerShell 会话中运行的 cmdlet。如果用户尝试运行 Disable-CsUser cmdlet,则该命令将失败;这是因为分配了假设性角色的用户无权运行 Disable-CsUser。这同样适用于 Lync Server 控制面板。例如,存档管理员无法使用 Lync Server 控制面板禁用用户,原因是 Lync Server 控制面板遵守 RBAC 角色。(任何时候您在 Lync Server 控制面板中运行命令,实际上都是在调用 Windows PowerShell cmdlet。)如果系统不允许您运行 Disable-CsUser,那么无论是直接从 Windows PowerShell 的远程会话运行该 cmdlet,还是从 Lync Server 控制面板内间接运行该 cmdlet,实际上没有什么区别;该命令都会失败。

请注意,RBAC 仅适用于远程管理。如果您登录到运行 Lync Server 2010 的计算机并打开 Lync Server 命令行管理程序,将不会强制执行 RBAC 角色。而是,将主要通过 RTCUniversalServerAdmins、RTCUniversalUserAdmins 和 RTCUniversalReadOnlyAdmins 安全组强制执行安全性。

安装 Lync Server 2010 时,安装程序会创建多个内置 RBAC 角色。这些角色涵盖常见的管理领域,例如语音管理、用户管理、响应组管理等。无法通过任何方式修改这些内置角色:无法在这些角色中添加或删除 cmdlet,并且无法删除这些角色。(删除内置角色的任何尝试都将导致产生错误消息。)但是,可以使用内置角色来创建自定义 RBAC 角色。然后,可以通过更改管理作用域来修改这些自定义角色。例如,可以将角色限制为管理特定 Active Directory OU 中的用户帐户。

Get-CsAdminRole cmdlet 返回有关可供在组织中使用的所有 RBAC 角色的信息。

谁能运行此 cmdlet:默认情况下,以下各组的成员有权在本地运行 Get-CsAdminRole cmdlet:RTCUniversalUserAdmins、RTCUniversalServerAdmins 和 RTCUniversalReadOnlyAdmins。要返回所有已分配此 cmdlet 的 RBAC 角色(包括您自己创建的所有自定义 RBAC 角色)列表,请根据 Windows PowerShell 提示运行以下命令:

Get-CsAdminRole | Where-Object {$_.Cmdlets –match "Get-CsAdminRole\b"}

参数

参数 必需 类型 描述

Identity

可选

字符串

要返回的 RBAC 角色的唯一标识符。RBAC 角色的 Identity 必须与 Active Directory 通用安全组(与该角色关联的通用安全组)的 SamAccountName 相同。例如,技术支持角色的 Identity 等于 CsHelpDesk;CsHelpDesk 也是与该角色关联的 Active Directory 安全组的 SamAccountName。

Filter

可选

字符串

使您可以使用通配符,以便指定要返回的 RBAC 角色。例如,要返回其 Identity 中包含字符串值“Redmond”的所有角色,可以使用以下语法:-Filter "*Redmond*"。

Sid

可选

安全标识符

使您可以使用安全标识符 (SID) 来指定要检索的 RBAC 角色。SID 由 Lync Server 2010 在创建 RBAC 角色时分配,类似如下内容:S-1-5-21-1573807623-1597889489-1765977225-1145.

此同一 SID 也可以在对应的 Active Directory 安全组中找到。

LocalStore

可选

开关参数

从中央管理存储的本地副本,而非中央管理存储本身检索 RBAC 数据。

输入类型

无。

返回类型

Get-CsAdminRole 返回 Microsoft.Rtc.Management.WritableConfig.Settings.Roles.Role 对象的实例。

示例

-------------------------- 示例 1 --------------------------

Get-CsAdminRole

示例 1 中显示的命令返回有关配置为在组织中使用的所有 RBAC 角色的信息。这是通过调用不带任何参数的 Get-CsAdminRole 实现的。

-------------------------- 示例 2 --------------------------

Get-CsAdminRole -Identity "CsHelpDesk"

在示例 2 中,将返回单个 RBAC 角色:Identity 为 CsHelpDesk 的角色。

-------------------------- 示例 3 --------------------------

Get-CsAdminRole -Filter "*Voice*"

上述命令返回其 Identity 中某位置包含字符串值“Voice”的所有 RBAC 角色(如 CsVoiceAdministrator、RedmondVoiceAdministrators)。为执行此操作,调用了带有 Filter 参数的 Get-CsAdminRole;筛选器值“*Voice*”将返回的数据限制为在 Identity 中某位置包含字符串值“Voice”的 RBAC 角色。

-------------------------- 示例 4 --------------------------

Get-CsAdminRole | Where-Object {$_.IsStandardRole -eq $False}

示例 4 返回已创建为在组织中使用的所有自定义 RBAC 角色。为了执行此任务,该命令首先使用 Get-CsAdminRole 返回当前使用的所有 RBAC 角色的集合。然后,将该集合通过管道传递到 Where-Object cmdlet,后者会仅选择 IsStandardRole 属性等于 False 的角色。根据定义,符合该条件的任何角色都为自定义 RBAC 角色。

-------------------------- 示例 5 --------------------------

Get-CsAdminRole | Where-Object {$_.Cmdlets -match "Set-CsUser\b"}

示例 5 中显示的命令返回包括 Set-CsUser cmdlet 的所有 RBAC 角色。为执行此操作,该命令首先调用不带任何参数的 Get-CsAdminRole,以便返回组织中所有 RBAC 角色的集合。然后,将该集合通过管道传递到 Where-Object,后者会挑选出 Cmdlets 属性包含字符串值“Set-CsUser\b”的所有角色。(\b 是一个单词分界标记,指示“Set-CsUser”代表整个字符串值。)

-------------------------- 示例 6 --------------------------

Get-CsAdminRole | Where-Object {$_.UserScopes -match "OU: ou=Redmond,dc=litwareinc,dc=com"}

示例 6 返回有关在其 UserScopes 属性中包含指定的 OU(ou=Redmond,dc=litwareinc,dc=com)的所有 RBAC 角色。为了执行此任务,该命令首先调用 Get-CsAdminRole,以便返回当前配置供使用的所有 RBAC 角色的集合。然后,将该集合通过管道传递到 Where-Object,后者会选择在 UserScopes 属性中包含字符串值“OU:ou=Redmond,dc=litwareinc,dc=com”的所有角色。

-------------------------- 示例 7 --------------------------

Get-CsAdminRole -Identity "CsVoiceAdministrator" | Select-Object -ExpandProperty Cmdlets

上述命令返回 CsVoiceAdministrator 角色中包含的所有 cmdlet 的列表。为执行此操作,该命令首先使用 Get-CsAdminRole 返回 CsVoiceAdministrator 的所有属性和属性值。然后,将该信息通过管道传递到 Select-Object cmdlet,后者会使用 ExpandProperty 参数显示 Cmdlets 属性中包含的所有项。