PowerShell7.3执行Get-PnPSiteScriptFromWeb遇400错误请求,求解决方案
解决Get-PnPSiteScriptFromWeb 400 Bad Request错误的步骤
1. 确认权限与连接上下文
- 确保操作账号同时拥有目标站点的站点管理员权限和租户级SharePoint管理员权限(添加组织模板库需要租户级权限)。
- 重新连接租户管理员站点,避免上下文错误:
Connect-PnPOnline -Url "https://xxxxx-admin.sharepoint.com"
2. 简化命令排查参数问题
- 先移除
-IncludeAll参数,执行基础命令测试:
如果基础命令成功,说明Get-PnPSiteScriptFromWeb -url "https://xxxxx.sharepoint.com/sites/Test"-IncludeAll触发了不支持导出的站点元素。此时可逐步指定需要导出的元素替代全量导出,比如:Get-PnPSiteScriptFromWeb -url "https://xxxxx.sharepoint.com/sites/Test" -Include Lists, SitePages, ContentTypes
3. 排查站点不兼容元素
400错误多因站点包含无法导出的内容,需手动检查:
- 站点是否启用信息权限管理(IRM)?IRM保护的内容无法被站点脚本导出,需临时关闭后重试。
- 是否存在第三方自定义Web部件/扩展?部分定制化组件不支持导出,可暂时移除后测试。
- 站点文档库是否设置了唯一权限?尝试重置库权限继承后再执行导出命令。
4. 导出成功后添加到组织模板库
若成功生成站点脚本,按以下步骤完成模板添加:
- 将导出结果存入变量:
$siteScript = Get-PnPSiteScriptFromWeb -url "https://xxxxx.sharepoint.com/sites/Test" -Include Lists, SitePages - 创建站点设计并关联脚本:
Add-PnPSiteDesign -Title "Test站点模板" -SiteScripts $siteScript.Id -WebTemplate "64" # 64对应现代团队站点,可根据实际站点类型调整参数 - 验证结果:登录SharePoint管理员中心,在站点设计模块查看是否已成功添加到组织模板库。
内容的提问来源于stack exchange,提问作者Pandi Kumar
相关产品推荐
相关产品推荐

