前言
近期在项目上遇到一个比较严重的问题,在更新SharePoint文档库中文件时,由于开启了文档库历史版本,导致每一次更新会增加一个版本,导致空间严重不足,下面将使用power shell命令删除历史版本
命令
#Config Variables
$SiteURL = "SharePoint站点地址"
$ListName="文档库名称"
$VersionsToKeep = 1 #所保留的版本个数
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
#Get the Context
$Ctx= Get-PnPContext
#Get All Items from the List - Exclude 'Folder' List Items
$ListItems = Get-PnPListItem -List $ListName -PageSize 2000 | Where {$_.FileSystemObjectType -eq "File"}
ForEach ($Item in $ListItems)
{
#Get File Versions
$File = $Item.File
$Versions = $File.Versions
$Ctx.Load($File)
$Ctx.Load($Versions)
$Ctx.ExecuteQuery()
Write-host -f Yellow "Scanning File:"$File.Name
$VersionsCount = $Versions.Count
$VersionsToDelete = $VersionsCount - $VersionsToKeep
If($VersionsToDelete -gt 0)
{
write-host -f Cyan "`t Total Number of Versions of the File:" $VersionsCount
#Delete versions
For($i=0; $i -lt $VersionsToDelete; $i++)
{
write-host -f Cyan "`t Deleting Version:" $Versions[0].VersionLabel
$Versions[0].DeleteObject()
}
$Ctx.ExecuteQuery()
Write-Host -f Green "`t Version History is cleaned for the File:"$File.Name
}
}