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

使用Add-PnPFile向两个SharePoint库添加同一文件失败问题排查

问题原因及解决方案

你的脚本在第一个Add-PnPFile执行后终止,核心原因是PnP PowerShell cmdlet默认的错误处理规则:

PnP命令默认ErrorAction参数为Stop,也就是说只要命令执行过程中出现任何错误——哪怕是你没察觉到的隐性问题,比如文件已存在但未指定覆盖参数、目标库权限不足、文件处于锁定状态等——脚本会直接终止运行,后续的Write-Host和第二个Add-PnPFile自然不会执行。你看到文件成功添加到第一个库,可能只是文件上传完成,但后续的隐性错误触发了脚本终止逻辑。

解决方法

方法1:强制脚本继续执行

在每个Add-PnPFile命令后添加-ErrorAction Continue,让脚本即使遇到错误也会运行后续代码:

Add-PnPFile -Path "C:\yourfile.txt" -Folder "DocumentLibrary1" -ErrorAction Continue
Write-Host "已添加到DocumentLibrary1"
Add-PnPFile -Path "C:\yourfile.txt" -Folder "DocumentLibrary2" -ErrorAction Continue

如果不想显示错误信息,可以替换为-ErrorAction SilentlyContinue。

方法2:捕获错误并针对性处理

用try/catch块包裹命令,明确捕获错误并输出详情,同时保证脚本流程不中断:

try {
    Add-PnPFile -Path "C:\yourfile.txt" -Folder "DocumentLibrary1"
    Write-Host "已添加到DocumentLibrary1"
}
catch {
    Write-Host "添加到DocumentLibrary1时出错:$_"
}

try {
    Add-PnPFile -Path "C:\yourfile.txt" -Folder "DocumentLibrary2"
    Write-Host "已添加到DocumentLibrary2"
}
catch {
    Write-Host "添加到DocumentLibrary2时出错:$_"
}

方法3:排查第一个命令的隐性错误

脚本执行后,运行以下命令查看最近一次的错误详情,就能明确第一个Add-PnPFile是否真的完全无错:

$Error[0] | Format-List -Force

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 22:00:54