能否为SharePoint Online的PowerShell脚本临时忽略权限限制?
方法1:使用App-Only权限(推荐批量操作)
租户管理员可创建具备租户级读取权限的App-Only应用,通过该应用执行脚本,无需修改任何站点的权限配置:
- 在Azure AD中注册应用,授予
Sites.Read.All的租户级应用权限并完成管理员同意 - 使用应用凭据连接PNP:
Connect-PnPOnline -Url https://<你的租户域名>.sharepoint.com -ClientId <应用客户端ID> -ClientSecret <应用客户端密钥> - 后续遍历所有站点执行
Get-PnPGroup时,不会触发403错误,因为App-Only应用已获得全租户站点的读取权限。
方法2:临时添加/移除自身为站点集合管理员
租户管理员拥有隐含权限,可直接将自己添加为任意站点的集合管理员,操作完成后再移除,无需成为站点所有者:
- 遍历站点时先执行添加命令:
Set-PnPTenantSite -Identity $site.Url -SiteCollectionAdmin <你的UPN> - 连接站点并获取组:
Connect-PnPOnline -Url $site.Url -Interactive $siteGroups = Get-PnPGroup - 操作完成后移除自身权限:
Set-PnPTenantSite -Identity $site.Url -RemoveSiteCollectionAdmin <你的UPN>
方法3:临时接管站点权限
通过Request-PnPSiteAccess cmdlet临时获取站点所有者权限,操作完成后可撤销:
# 请求接管站点权限 Request-PnPSiteAccess -Identity $site.Url -Role Owner # 连接站点并获取组 Connect-PnPOnline -Url $site.Url -Interactive $siteGroups = Get-PnPGroup # 撤销接管权限 Revoke-PnPSiteAccess -Identity $site.Url
注:App-Only权限方案无需改动任何站点的权限状态,最适合批量巡检场景;临时添加集合管理员或接管站点的方式需维护权限的添加/移除操作,但均为租户管理员合规操作。
内容的提问来源于stack exchange,提问作者Joshua Cook
相关产品推荐
相关产品推荐

