【发布时间】: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