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

使用Microsoft Graph API及PowerShell SDK为SharePoint文件夹授权失败求助

解决SharePoint文件夹权限授予失败问题

问题根源分析

你的Graph API POST请求失败,核心原因是请求体字段使用错误:grantedToV2是权限查询响应里的返回字段,并非创建权限时的请求字段。PowerShell命令失败大概率也是因为参数格式不匹配。

修复方案

1. Graph Explorer正确POST请求格式

使用grantedToIdentitiesV2数组指定授权用户,正确请求体如下:

{
    "roles": ["read"],
    "grantedToIdentitiesV2": [
        {
            "user": {
                "id": "xxxxxxx",
                "displayName": "xxx xxx"
            }
        }
    ]
}

或者用更简洁的recipients字段(无需指定displayName):

{
    "roles": ["read"],
    "recipients": [
        {
            "user": {
                "id": "xxxxxxx"
            }
        }
    ]
}

注意:确保请求URL中的{site id}和{folder id}完全正确,无拼写或格式错误。

2. PowerShell SDK正确命令格式

使用New-MgDriveItemPermission时,需指定-GrantedToIdentitiesV2参数,示例代码:

# 定义用户身份对象
$userIdentity = @{
    User = @{
        Id = "xxxxxxx"
        DisplayName = "xxx xxx"
    }
}

# 执行权限授予
New-MgDriveItemPermission `
    -DriveId "<站点对应的Drive ID>" `
    -DriveItemId "<文件夹ID>" `
    -Roles @("read") `
    -GrantedToIdentitiesV2 @($userIdentity)

若知道用户的UPN,可通过-Recipients参数简化操作:

$recipient = @{
    User = @{
        UserPrincipalName = "user@domain.com"
    }
}

New-MgDriveItemPermission `
    -DriveId "<站点对应的Drive ID>" `
    -DriveItemId "<文件夹ID>" `
    -Roles @("read") `
    -Recipients @($recipient)

3. 必要权限检查

确保当前操作账号(或Graph Explorer授权账号)拥有以下至少一种权限:

  • Sites.FullControl.All
  • Sites.Manage.All
  • Files.ReadWrite.All
    在Graph Explorer中,需重新授权并勾选对应权限后再尝试请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:01:13