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

使用PnP PowerShell调用Get-PnPAvailableSensitivityLabel遭访问拒绝求解决方案

解决PnP PowerShell调用Get-PnPAvailableSensitivityLabel时的权限拒绝问题

问题描述

我正在使用PnP PowerShell模块调用Get-PnPAvailableSensitivityLabel cmdlet,该cmdlet用于检索当前连接租户中的Microsoft Purview可用敏感度标签。执行以下代码:

Connect-PnPOnline -Url $tenantAdminUrl
$sensitivityLabels = Get-PnPAvailableSensitivityLabel 
Write-Output($sensitivityLabels)

收到如下权限拒绝错误:

Get-PnPAvailableSensitivityLabel : Access denied. Check for the required permissions.
At line:2 char:22
+ $sensitivityLabels = Get-PnPAvailableSensitivityLabel
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Get-PnPAvailableSensitivityLabel], PSInvalidOperationException
    + FullyQualifiedErrorId : InvalidOperation,PnP.PowerShell.Commands.Purview.GetAvailableSensitivityLabel

已使用全局管理员账号,且执行过Register-PnPManagementShellAccess并同意应用权限请求,问题仍未解决,求其他可行解决方法。

解决方法

1. 更新PnP PowerShell模块到最新版本

旧版本模块可能存在权限适配缺陷,先更新至稳定版:

Update-Module -Name PnP.PowerShell -Force

更新完成后重新连接租户执行命令。

2. 确认账号的敏感度标签管理权限

全局管理员默认不一定拥有敏感度标签的操作权限,需在Microsoft Purview合规门户中配置:

  • 登录合规门户,进入敏感度标签 > 权限
  • 将账号添加到敏感度标签管理员或合规管理员角色组
  • 权限生效需等待15-30分钟,之后重试命令

3. 切换为应用权限认证方式

尝试使用Azure AD应用身份连接,而非用户身份:

  1. 在Azure AD中注册应用,授予InformationProtectionPolicy.Read.All应用权限(归属Microsoft Graph)
  2. 生成应用的客户端密钥或证书
  3. 使用以下命令连接租户:
    Connect-PnPOnline -Url $tenantAdminUrl -ClientId <应用ID> -ClientSecret <客户端密钥> -Tenant <租户ID>
    
  4. 再次执行Get-PnPAvailableSensitivityLabel

4. 检查PnP Management Shell的权限配置

在Azure AD的企业应用中找到PnP Management Shell,确认其已被授予InformationProtectionPolicy.Read.All应用权限(而非委托权限),若缺失则手动添加并同意权限请求。

5. 用Microsoft Graph API验证权限

使用相同账号调用GET /informationProtection/policy/labels接口:

  • 若接口返回权限拒绝,说明问题出在Azure AD权限配置,需重新梳理权限分配
  • 若接口正常返回数据,则排查PnP模块的连接参数或模块本身的适配问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:55:36