首页 > 解决方案 > PnP - 使用 PnP powershell 向 SP 组添加声明值

问题描述

我希望找到一个示例,我可以使用 PnP PowerShell 将特定的自定义声明值添加到 SP 组。基本上使用 PnP PowerShell 执行以下操作

$ClaimValue = $_.ClaimValue
if ($_.ClaimType -eq $ClaimTypeSchema.GroupSID)
{
  $objUserAccount = New-Object System.Security.Principal.NTAccount($EnvUserDomain, $_.ClaimValue)
  $objUserSID = $null
  Write-Output ("Generating Security Identifier for account: '" + $_.ClaimValue + "' ...")
  $objUserSID = $objUserAccount.Translate([System.Security.Principal.SecurityIdentifier])
  if ($objUserSID -eq $null)
  {
    continue
  }
  $ClaimValue = $objUserSID.Value
}
Write-Output ("   Adding Claim: '" + $_.ClaimType + "' with Value: '" + $ClaimValue + "' ...")
$Claim = New-SPClaimsPrincipal -ClaimType $_.ClaimType -ClaimValue $ClaimValue -TrustedIdentityTokenIssuer $AuthenticationProvider
$SPUserClaim = New-SPUser -UserAlias $Claim.ToEncodedString() -Web $RootWeb.Url
$SecurityGroup.AddUser($SPUserClaim)}
Write-Output "Completed"

标签: powershellsharepointcsomspfxsharepoint-2016

解决方案


看起来我可以使用以下内容对预期格式进行硬编码

i:0ǵ.t|custom-adfs|First.Last

有关更多编码,请参阅下面的文章 https://social.technet.microsoft.com/wiki/contents/articles/13921.sharepoint-20102013-claims-encoding.aspx

我仍然认为在 PnP 中有一个等价物会很好。

$Claim = New-SPClaimsPrincipal -ClaimType $_.ClaimType -ClaimValue $ClaimValue -TrustedIdentityTokenIssuer $AuthenticationProvider

$SPUserClaim = New-SPUser -UserAlias $Claim.ToEncodedString() -Web $RootWeb.Url


推荐阅读