如何通过PowerShell强制删除SharePoint中提示不存在的列表项
解决方案
- 第一步:确认列表项ID和站点是否正确
很多用户会把列表视图里的行序号当作项ID,两者完全不同。你可以先执行以下命令拉取当前Orders列表的所有有效项ID:Get-PnPListItem -List "Orders" -Fields ID,Title
如果返回结果中不存在ID为22的项,说明该项已经被删除,你可以直接到站点回收站、站点集回收站找到该项直接清空,或者恢复后再执行删除操作。同时需要确认你当前PnP连接的站点是Orders列表所在的正确站点,避免连错站点导致找不到项。 - 第二步:处理列表项异常状态
如果查询结果中确实存在ID=22的项,先排查是否是以下异常状态导致删除失败:
- 该项被其他用户检出未提交
- 该项单独断开了权限继承,未给你的管理员账号开放删除权限
- 该项存在未完成的审批/工作流锁
你可以依次执行以下命令修复状态后再删除:
# 给你的管理员账号分配该项的完全控制权限 Set-PnPListItemPermission -List "Orders" -Identity 22 -User "你的管理员账号全称" -AddRole "完全控制" # 放弃该项的检出状态(仅文档库类列表需要执行) Undo-PnPFileCheckedOut -Url "该项对应的绝对路径"
- 第三步:跳过回收站直接硬删除
不要加-Recycle参数,执行直接永久删除的命令,避免回收站异常导致报错:Remove-PnPListItem -List "Orders" -Identity 22 -Force - 第四步:修复列表异常
如果以上操作都失败,说明列表本身存在缓存或索引异常,你可以在SharePoint管理中心对该列表运行修复扫描,完成后再执行删除操作即可。
内容的提问来源于stack exchange,提问作者javad daryabari
相关产品推荐
相关产品推荐

