如何通过Graph端点或CSOM获取SharePoint driveItem的CreatedBy应用身份详情?
你提到的driveItem中包含的应用对象,本质是Azure AD中的服务主体(Service Principal),SharePoint原生CSOM没有直接的API来获取其详细信息,但可以通过以下两种可行方式实现:
方法1:使用Microsoft Graph Client Library(CSOM扩展方案)
这是最直接的方案,利用Graph API查询服务主体信息,结合PowerShell或C#的Graph客户端(属于CSOM生态的扩展工具):
- 首先从driveItem的应用集合中提取目标应用的
id(即服务主体ID) - 调用Graph API的
GET /servicePrincipals/{servicePrincipalId}接口获取应用详情 - PowerShell示例代码:
# 安装并导入Graph模块 Install-Module Microsoft.Graph -Force Import-Module Microsoft.Graph.Applications # 登录Graph Connect-MgGraph -Scopes "Application.Read.All" # 替换为你的应用ID $servicePrincipalId = "你的应用ID" # 查询应用详情 $appDetails = Get-MgServicePrincipal -ServicePrincipalId $servicePrincipalId # 输出关键信息 Write-Host "应用名称: $($appDetails.DisplayName)" Write-Host "应用ID: $($appDetails.AppId)" Write-Host "应用描述: $($appDetails.Description)"
方法2:通过SharePoint Online CSOM结合Azure AD PowerShell模块
如果依赖传统SP CSOM工作流,可先通过SP CSOM拿到应用ID,再用Azure AD模块查询:
- 步骤1:从SP CSOM获取driveItem中的应用ID
- 步骤2:使用Azure AD模块查询服务主体
# 安装Azure AD模块 Install-Module AzureAD -Force # 登录Azure AD Connect-AzureAD # 替换为你的应用ID $servicePrincipalId = "你的应用ID" # 获取应用详情 $appDetails = Get-AzureADServicePrincipal -ObjectId $servicePrincipalId # 输出信息 Write-Host "应用名称: $($appDetails.DisplayName)" Write-Host "应用ID: $($appDetails.AppId)"
注意:两种方法都需要对应的权限(如Application.Read.All或Azure AD的读取权限),需确保执行脚本的账号拥有足够权限。
内容的提问来源于stack exchange,提问作者Dood
相关产品推荐
相关产品推荐

