SharePoint站点User Information List无法通过Graph API访问,求查找方法
用户信息列表确实存在,但部分站点(尤其是非英文本地化站点)的列表名称可能不是默认的User Information List,可以通过以下几种方式定位它:
方法1:通过SharePoint REST API筛选
调用站点REST接口,筛选出模板类型为用户信息列表的项:
https://{site-url}/_api/Web/Lists?$filter=BaseTemplate eq 101
用户信息列表的BaseTemplate固定为101,返回结果中可查看该列表的Title(实际名称)和Id,后续调用Graph API时用这个Id或正确名称即可。
方法2:通过站点设置查看(需站点权限)
- 进入目标站点的设置(齿轮图标),选择站点信息,再点击查看所有站点设置
- 在“网站管理”区域找到用户信息列表(本地化站点会显示对应语言名称,比如中文站点为“用户信息列表”)
- 进入列表后,地址栏可看到列表ID(格式类似
Lists/xxxx-xxxx-xxxx-xxxx),或直接查看列表标题
方法3:通过Graph API获取所有列表筛选
调用Graph API获取站点下所有列表,筛选出模板匹配的项:
https://graph.microsoft.com/v1.0/sites/{siteid}/lists
在返回的JSON结果中,找到template字段值为userInformationList的列表项,提取它的id或displayName,替换原请求中的列表名称即可。
方法4:通过PowerShell查询(需SPO管理权限)
使用SharePoint Online Management Shell执行以下命令:
# 连接到SPO管理中心 Connect-SPOService -Url https://your-tenant-admin.sharepoint.com # 获取目标站点 $site = Get-SPOSite -Identity https://your-tenant.sharepoint.com/sites/your-target-site # 筛选用户信息列表 $userInfoList = Get-SPOList -Web $site.Url | Where-Object {$_.BaseTemplate -eq 101} # 输出列表名称和ID Write-Host "用户信息列表名称: $($userInfoList.Title), ID: $($userInfoList.Id)"
补充说明
非英文站点的用户信息列表会被本地化,比如中文站点默认名称是“用户信息列表”,直接用英文名称User Information List调用API会提示找不到,因此必须使用站点实际的列表名称或ID发起请求。
内容的提问来源于stack exchange,提问作者Khandakar Rashed Hassan
相关产品推荐
相关产品推荐

