【问题标题】:Sharepoint Versioning Removal via Powershell通过 Powershell 删除 Sharepoint 版本控制
【发布时间】:2018-02-12 23:34:10
【问题描述】:

我目前有一个 SharePoint 2013 环境,该环境是一年前从 SharePoint 2010 升级的。某些文档库的版本控制设置为无限版本,并且消耗了大量额外空间(在某些文档库上大约 30GB )。我决定将版本控制删除回 5(5 个最新版本)。

以下脚本取得了一些成功 - 在多个文档库上运行时,它已删除版本控制,但在同一文档库中的文件上,版本控制尚未删除。

示例: 在运行脚本之前 文件 1 = 有 100 个版本 文件 2 = 有 100 个版本

运行脚本后 文件 1 = 有 5 个版本 文件 2 = 有 100 个版本

    $SPweb = Get-SPweb "xxxxx"      ##EDIT AND PUT THE WEB ADDRESS HERE##
    $versionsToKeep =5; ##NUMBER OF VERSIONS TO KEEP##
    $SPlist = $SPweb.Lists["Document Library"]      ##THE DOC LIBRARY##

    foreach ($SPitem in $SPlist.Items)
        {
    $currentVersionsCount= $SPItem.Versions.count

        if($currentVersionsCount -gt $versionstoKeep)
        {
    for($i=$currentVersionsCount-1; $i -ge $versionstoKeep; $i--)
        {
    $SPItem.versions[$i].delete()
        }
        }
        }

我不确定为什么会这样 - 如果其他人以前遇到过这些问题?

【问题讨论】:

  • 您不能将库的限制设置为 5 个版本,然后循环遍历库并使用 powershell 脚本更新每个项目吗?那么应该清除所有版本,还是?
  • @dns_nx 听起来可以,关于 PowerShell 脚本循环文档库的任何想法?
  • 是的,请看我的回答。

标签: powershell sharepoint sharepoint-2010 sharepoint-2013


【解决方案1】:

好的,这就是我认为的解决方案。 将文档库版本限制设置为 5,然后遍历库并使用 powershell 脚本更新每个项目。

$web = Get-spweb http://yourweb/sites/path
$list = $web.Lists["Document Library"]
ForEach( $file in $list.Items ) { 
    $file.Update() 
}

【讨论】:

    猜你喜欢
    • 2020-09-07
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    相关资源
    最近更新 更多