很多时候,用户都将SharePoint作为数据存储和管理平台,长期积累,数据累加很多,以IT部门为例,为了排查系统问题,会定期将各种系统的log保存起来,这种情况下,一旦超过一定时间了,这部分数据对IT而言没有存在的价值和意义了,为了释放SharePoint平台的存储压力和资源,可能考虑如何批量清除这部分数据。

这里为大家分享一个解决方案,尝试使用PowerShell脚本来批量删除名称以XXX开始的List。

本示例,适用于SharePoint 2013,SharePoint 2016和SharePoint 2019。

具体操作步骤:

  1. 验证SharePoint的网站的List 信息,以名为SharePoint Logs开始的Library都是用来存储SharePoint Logs的。

SharePoint:如何使用PowerShell批量删除名称以XXX开始的List?_第1张图片

  1. 以管理员身份打开SharePoint PowerShell,执行命令以下脚本:

    $startsWith = "SharePoint Logs"
    $site = Get-SPSite http://www.demo.com/sites/IT
    $webs = $site.AllWebs
    $need = New-Object System.Collections.ArrayList

    foreach ($web in $webs) {
    $lists = $web.Lists
    $need.clear()
    for ($index = 0; $index -lt $lists.Count; $index++) {
    if ($lists[$index].Title.StartsWith($startsWith)) {
    $need.add($lists[$index])
    }
    }
    foreach ($list in $need)
    {
    $list.Delete()
    }
    $web.Dispose()
    }

    $site.Dispose()

    说明:
    • $startsWith = "SharePoint Logs"是预计删除的名为什么开始的Library
    • $site = Get-SPSite http://www.demo.com/sites/IT 是具体的Site Collection

  2. 4个文档库,批量被删除,命令执行成功。

SharePoint:如何使用PowerShell批量删除名称以XXX开始的List?_第2张图片

大家可以根据实际需求灵活使用,若有其他疑问,欢迎线下联系。