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 属性中包含的所有项。