如何从Sharepoint在线获取“除外部用户之外的所有人”

时间:2018-01-29 13:47:35

标签: sharepoint-online

我正在开展一项任务,要求我使用c#从Sharepoint Online获取“除外部用户以外的所有人”组。

我在网上发现的一些文章提到我必须使用“c:0-.f | rolemanager | spo-grid-all-users / $ authRealm”来获取“除外部用户之外的所有人”。获得$ authRealm guid的课程有额外的步骤。

但我发现 clientContext.Web.EnsureUser(“除了外部用户以外的所有人”); 工作得很好。我找到了同一个用户。

正在使用clientContext.Web.EnsureUser(“除外部用户外的所有人”);足够?还是我错过了什么?

我正在学习分享,所以请耐心等待。

1 个答案:

答案 0 :(得分:0)

我们可以使用以下代码获取“除外部用户外的所有人”。

$siteUrl = "https://sharepointsite.sharepoint.com/sites/subsite"

# Set headers
$headers = @{
    "Authorization"="Bearer ";
}

$authRealm = "";
# Make an invalid request. We will extract the GUID from the Response.
try {
    Invoke-WebRequest $("$siteUrl/_vti_bin/client.svc") -Method POST -Headers $headers
}
catch [exception] {
    # Extract Authentication Realm GUID from Response headers
    $_.Exception.Response.Headers["WWW-Authenticate"] -match '(?<=Bearer realm=")\w+-\w+-\w+-\w+-\w+(?=")'
    $authRealm = $matches[0];
}

$everyoneExceptExternal = "c:0-.f|rolemanager|spo-grid-all-users/$authRealm"
$everyoneExceptExternalPrincipal = $web.EnsureUser($everyoneExceptExternal);
$ctx.Load($everyoneExceptExternalPrincipal);
$ctx.ExecuteQuery();

参考https://gist.github.com/davehax/bf60c002bd58faf65f067cf8e27f422d#file-geteveryoneexceptexternalusersprincipal-ps1