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

SharePoint Online PowerShell按日期删除项报错求助

解决SharePoint Online PowerShell删除列表项的错误:[System.Int32] 无DeleteObject方法

兄弟,我一眼就揪出你脚本里的问题啦!你碰到的这个错误提示Method invocation failed because [System.Int32] does not contain a method named 'DeleteObject',核心原因很简单:你找错了调用DeleteObject()方法的对象!

你写的$item["ID"].DeleteObject()这行代码,是在列表项的ID属性上调用删除方法——但$item["ID"]返回的是一个System.Int32类型的整数,它根本没有DeleteObject()这个方法。正确的做法是直接在列表项对象本身(也就是$item)上调用这个方法。

修正后的脚本片段

foreach($item in $items) { 
    $created = $item["Created"] 
    if ($created -lt $days) { 
        Write-Host "Title - " $item["Title"] "Created - " $item["Created"] 
        $test = $item["ID"] 
        write-host $test 
        $item.DeleteObject()  # 这里修正了调用对象
    } 
} 
$context.ExecuteQuery()

额外提醒几个关键点

  • 确认$items是通过ClientContext正确获取的列表项集合,并且你已经加载了Created、Title、ID这些需要用到的属性(比如用$context.Load($items, 'Include(Created, Title, ID)'))
  • 确保$days是一个DateTime类型的对象,比如你可能是这样定义的:$days = (Get-Date).AddDays(-30),这样和$item["Created"](DateTime类型)比较才不会有类型不匹配的问题
  • DeleteObject()只是在本地标记要删除的列表项,只有执行$context.ExecuteQuery()之后,这些删除操作才会真正同步到SharePoint Online上

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:17:11