You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SharePoint 2013是否有People Picker服务?PowerShell批量验证用户需求

SharePoint 2013中People Picker相关服务及PowerShell批量验证用户方法

没问题,我来帮你梳理清楚这个问题:

首先,SharePoint 2013里确实存在和People Picker相关的Web服务——PeoplePicker.asmx,它部署在每个Web应用的_vti_bin目录下(比如http://你的站点地址/_vti_bin/PeoplePicker.asmx)。这个Web服务提供了一系列方法来处理用户解析、搜索等操作,完全可以满足你批量验证用户是否存在的需求。

接下来,我给你一套用PowerShell调用这个Web服务来验证CSV中用户的具体方案:

步骤1:准备CSV文件

先整理好你的用户列表,CSV里只需要一列存储用户标识(比如用户主体名、邮箱或者显示名称),示例格式如下:

UserPrincipalName
user1@contoso.com
user2@contoso.com
user3@contoso.com

步骤2:编写并运行PowerShell脚本

下面的脚本会读取CSV,调用PeoplePicker Web服务的ResolvePrincipals方法逐个验证用户,你只需要根据实际情况修改几个参数即可:

# 替换为你的SharePoint站点的PeoplePicker Web服务地址
$peoplePickerServiceUrl = "http://your-sharepoint-site/_vti_bin/PeoplePicker.asmx"

# 加载Web服务代理,使用当前登录账号的权限
$peoplePickerProxy = New-WebServiceProxy -Uri $peoplePickerServiceUrl -UseDefaultCredential

# 替换为你的CSV文件路径
$users = Import-Csv -Path "C:\temp\user-list.csv"

# 循环处理每个用户
foreach ($user in $users) {
    # 这里假设CSV的列名为UserPrincipalName,如果你用的是DisplayName,改成$user.DisplayName即可
    $userToCheck = $user.UserPrincipalName

    # 调用ResolvePrincipals方法验证用户
    # 参数说明:
    # 1. principalNames: 要验证的用户标识数组
    # 2. scopes: 搜索范围,空数组表示默认范围
    # 3. sources: 数据源,空数组表示所有可用的身份源
    # 4. inputIsEmail: 如果用户标识是邮箱,设为$true;如果是域名\用户名,设为$false
    # 5. identityType: 0表示不限类型,1表示仅用户,2表示仅组
    $resolveResult = $peoplePickerProxy.ResolvePrincipals(
        @($userToCheck),
        @(),
        @(),
        $true,
        0
    )

    # 解析返回结果
    if ($resolveResult -and $resolveResult.Count -gt 0) {
        $resolvedItem = $resolveResult[0]
        if ($resolvedItem.Resolved) {
            Write-Host "✅ 用户 '$userToCheck' 存在,显示名称:$($resolvedItem.DisplayName)" -ForegroundColor Green
        } else {
            Write-Host "❌ 用户 '$userToCheck' 未在PeoplePicker中找到" -ForegroundColor Red
        }
    } else {
        Write-Host "⚠️ 用户 '$userToCheck' 验证请求失败,请检查服务地址或权限" -ForegroundColor Yellow
    }
}

注意事项

  • 请确保运行脚本的账号有访问目标SharePoint站点Web服务的权限,以及读取CSV文件的权限
  • 如果你的用户标识是域\用户名格式,记得把脚本里的inputIsEmail参数改成$false
  • 如果需要更精确的搜索范围,可以调整scopes参数(比如指定特定的AD OU),不过空数组一般能满足大部分场景需求

内容的提问来源于stack exchange,提问作者Chandra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:56:19