Set-CsAdminRole

 

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

修改现有的基于角色的访问控制 (RBAC) 角色。RBAC 角色用于指定允许用户执行的管理任务,以及确定允许用户执行这些任务的作用域。

语法

Set-CsAdminRole -Identity <String> [-ConfigScopes <PSListModifier>] [-Confirm [<SwitchParameter>]] [-Force <SwitchParameter>] [-UserScopes <PSListModifier>] [-WhatIf [<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 中的用户帐户。

所创建的任何自定义角色都必须基于模板:现有 RBAC 角色。例如,要创建电话拨入式会议管理员角色,必须实际克隆现有 RBAC 角色(例如,可以在现有的语音管理员角色基础上创建电话拨入式会议管理员角色)。在创建自定义角色后,便可以使用 Set-CsAdminRole 修改该新角色的属性。

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

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

参数

参数 必需 类型 描述

Identity

必需

字符串

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

ConfigScopes

可选

PS 列表修饰符

将 cmdlet 的作用域限制为指定站点中的配置设置。要将 cmdlet 作用域限制为单个站点,请使用以下类似语法:-ConfigScopes site:Redmond。可以使用以逗号分隔的列表指定多个站点:-ConfigScopes "site:Redmond, "site:Dublin"。此外,还可以将 ConfigScopes 属性设置为“global”。

为 ConfigScopes 参数指定值时,必须在站点的 SiteId 属性值前面使用前缀“site:”;前缀,后跟站点的 SiteId 属性的值;SiteId 值不一定与站点的 Identity 值或站点的 DisplayName 值相同。要确定给定站点的 SiteId,请使用类似如下的命令:

Get-CsSite "Redmond" | Select-Object SiteId

您必须为 ConfigScopes 和 UserScopes 属性中的任意一个(或同时为两者)指定值。

UserScopes

可选

PS 列表修饰符

将 cmdlet 的作用域限制为指定 OU 中的用户管理活动。要将 cmdlet 作用域限制为单个 OU,请使用以下类似语法:-UserScopes "OU:ou=Redmond,dc=litwareinc,dc=com"。可以使用以逗号分隔的列表指定多个 OU:-UserScopes "OU:ou=Redmond,dc=litwareinc,dc=com", "OU:ou=Dublin,dc=litwareinc,dc=com"。要在角色中添加新作用域(或删除现有作用域),可使用 Windows PowerShell 列表修饰符语法。有关详细信息,请参阅本帮助主题中的示例部分。

您必须为 ConfigScopes 和 UserScopes 属性中的任意一个(或同时为两者)指定值。

Force

可选

开关参数

禁止显示运行此命令时可能出现的任何非严重错误消息。

WhatIf

可选

开关参数

描述如果执行命令会发生什么情况(无需实际执行命令)。

Confirm

可选

开关参数

在执行命令之前提示您进行确认。

输入类型

无。

返回类型

Set-CsAdminRole 不会返回值或对象。此 cmdlet 会配置 Microsoft.Rtc.Management.WritableConfig.Settings.Roles.Role 对象的实例。

示例

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

Set-CsAdminRole -Identity "RedmondVoiceAdministrators" -UserScopes @{Add="OU:ou=Portland,dc=litwareinc,dc=com"}

上述命令为 RBAC 角色 RedmondVoiceAdministrators 的 UserScopes 属性添加一个新 OU (Portland)。为执行此操作,该命令中包括 UserScopes 参数和以下参数值:@{Add="OU:ou=Portland,dc=litwareinc,dc=com"}。此语法会将可分辨名称为“ou=Portland,dc=litwareinc,dc=com”的 OU 添加到 UserScopes 属性中已存在的 OU。

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

Set-CsAdminRole -Identity "RedmondVoiceAdministrators" -UserScopes @{Remove="OU:ou=Portland,dc=litwareinc,dc=com"}

示例 2 中显示的命令从 RBAC 角色 RedmondVoiceAdministrators 删除 Portland OU。为执行此操作,该命令中包括 UserScopes 参数和以下参数值:@{Remove="OU:ou=Portland,dc=litwareinc,dc=com"}。此语法会从 UserScopes 属性中已存在的 OU 集合删除可分辨名称为“ou=Portland,dc=litwareinc,dc=com”的 OU。

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

Set-CsAdminRole -Identity "RedmondVoiceAdministrators" -ConfigScopes @{Add="site:Redmond"}

在示例 3 中,为 RBAC 角色 RedmondVoiceAdministrators 的 ConfigScopes 属性添加一个新站点(SiteId 为 Redmond)。为执行此操作,该命令中包括 ConfigScopes 参数和以下参数值:@{Add="OU:ou=Portland,dc=litwareinc,dc=com"}。此语法将 Redmond 站点添加到 ConfigScopes 属性中已存在的任何项。

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

Set-CsAdminRole -Identity "RedmondVoiceAdministrators" -ConfigScopes @{Remove="siteRedmond"}

示例 4 中显示的命令从 RBAC 角色 RedmondVoiceAdministrators 删除 Redmond 站点。为执行此操作,该命令中包括 ConfigScopes 参数和以下参数值:@{Remove="site:Redmond"}。此参数会从 ConfigScopes 属性中已存在的项目集合删除 Redmond 站点。请注意,如果 Redmond 站点是 ConfigScopes 属性中的唯一站点,此命令将失败。如果要删除 ConfigScopes 属性中的唯一站点,您应使用类似如下的命令(此命令会将 ConfigScopes 中的所有项替换为 Global 属性):

Set-CsAdminRole -Identity "RedmondVoiceAdministrators" -ConfigScopes @{Replace="Global"}