Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
通过 SharePoint 2010 中的 PowerShell 向 Web 应用程序策略添加自定义声明
我发现此过程比预想得难得多,但在完成后发现比预期得容易得多,因此我认为应该针对它快速发布一篇文章。其中,迫切的任务是通过 PowerShell 向 Web 应用程序策略添加自定义声明。通过管理中心 UI,一切都变得易如反掌。进入 PowerShell 后,我最初采用创建 New-SPClaimsPrincipal 的方法添加到区域的策略中。以下是我尝试的各种方法(并且完全不是我查看的各种不同组合),仅供您参考:
#$tp = Get-SPTrustedIdentityTokenIssuer -Identity "ADFS with Roles"
#$cp = Get-SPClaimProvider -Identity "BasketballTeamProvider"
#$account = New-SPClaimsPrincipal -ClaimValue "DVK Jovenut" -ClaimType "Role" -TrustedIdentityTokenIssuer $tp
#$account = New-SPClaimsPrincipal -Identity "DVK Jovenut" -TrustedIdentityTokenIssuer $tp
#$account = New-SPClaimsPrincipal -Identity "c:0ǹ.c|basketballteamprovider|dvk jovenut" -IdentityType EncodedClaim
#$account = New-SPClaimsPrincipal -ClaimValue "DVK Jovenut" -ClaimType "https://schema.steve.local/teams" -ClaimProvider $cp.ClaimProvider
#$account = New-SPClaimsPrincipal -EncodedClaim "c:0ǹ.c|basketballteamprovider|dvk jovenut"
许多方法都成功添加了声明,但由于未实现策略,因此它显然不是正确的标识符(即,我授予“完全控制”权限,但具有该声明的用户无法登录)。这才是“比预想更难”的阶段。它的正常工作表明,我根本不需要 New-SPClaimsPrincipal 对象,而是需要下面可正确添加声明并使其正常运行的 PowerShell:
$WebAppName = "https://fc1"
$wa = get-SPWebApplication $WebAppName
$account = "c:0ǹ.c|basketballteamprovider|dvk jovenut"
$zp = $wa.ZonePolicies("Default")
$p = $zp.Add($account,"Claims Role")
$fc=$wa.PolicyRoles.GetSpecialRole("FullControl")
$p.PolicyRoleBindings.Add($fc)
$wa.Update()
因此,在当天结束时,只需将该自定义声明添加为简单字符串即可。请注意,为获得该 $account 值,我首先通过管理中心添加了策略,然后在完成时复制显示的声明值。希望将来您需要执行此操作时,本文可节省您的时间。
这是一篇本地化的博客文章。请访问 Adding A Custom Claim to a Web App Policy via PowerShell in SharePoint 2010 以查看原文