当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 通过版本历史记录限制控制 SharePoint 存储

作者:精品下载站 日期:2024-12-14 01:58:01 浏览:12 分类:玩电脑

通过版本历史记录限制控制 SharePoint 存储


SharePoint 存储的一个常见问题是您可能很快就会耗尽存储空间。您可以购买额外的存储空间,但您可能知道,这非常昂贵。现在,存储消耗过多的主要原因是 SharePoint 中的文件版本控制。

文件版本控制是一个很棒的功能,但是当您存储大文件时就会出现问题。因为每个版本都是文件的完整副本,并且这可以非常快地添加。为了缓解这种情况,Microsoft 发布了一项新功能“版本历史记录限制”,它使您可以更好地控制保留的版本数量。

在本文中,我们将了解新版本历史记录限制与 SharePoint 中现有版本控制设置的比较,以及如何为租户启用它。

版本历史记录限制与 SharePoint 版本控制

默认情况下,所有 SharePoint 和 OneDrive 网站都会启用文件版本控制。使用默认设置,SharePoint 和 OneDrive 将保留每个文件的 500 个版本。当我们谈论大小仅为 100kb 的 Word 文件时,这是完美的。

但当我们存储较大的文件(例如 PDF、图形文件、绘图或大型文件格式)时,这就会成为问题。看下面的截图,我有一个PSD(PhotoShop)文件,只有36Mb,但OneDrive已经存储了245个版本。所以这个文件就消耗了8.5GB!

[玩转系统] 通过版本历史记录限制控制 SharePoint 存储

现在,我们已经可以选择通过文档库设置来控制在 SharePoint 和 OneDrive 中保留多少版本。这里我们可以将保留的版本数量降低到最少100个,这实际上还是很多的。

这种方法的问题是我们需要为每个站点库进行配置。我们当然可以使用 PowerShell 来实现此目的,但所有新站点仍然需要配置。版本的最小数量是100。按照上面的例子,一个文件仍然超过3GB。

版本历史限制

新功能“版本历史记录限制”允许您轻松配置为新的 SharePoint 文档库和 OneDrive 帐户保留的版本数量。它不会覆盖现有网站或 OneDrive 帐户,但我们也有一个解决方案。

除了设置要保留的主要版本的数量之外,我们还可以配置版本的最长期限。例如,我们可以配置为在 3 个月或 1 年后删除版本。

这项新功能的真正优势在于自动设置。 启用后,智能算法将根据创建日期存储版本。 随着版本的老化,存储的旧版本会减少,只保留少数最可能需要的版本。

旧版本的这种精简导致了以下保留模式:

  • 前 30 天 - 保留 500 计数限制内的所有版本
  • 30 至 60 天 - 每小时存储版本
  • 60 至 180 天 - 存储每日版本
  • 180 天后 - 每周版本最多 500 个计数限制。

如果我们比较最大版本数(计数限制)、年龄限制(过期)和自动限制这三种方法,那么我们可以看到,与其他选项相比,存储的版本数随着自动限制而逐渐下滑:

[玩转系统] 通过版本历史记录限制控制 SharePoint 存储

请记住,当您为版本设置时间(到期)限制时,在给定时间之后您最终只能得到该文件的一个版本。例如,您将文件版本的最长期限配置为 6 个月。仅第一个月创建和编辑了新文件。 7 个月后(从初始文件创建算起)只剩下最后一个版本。

如果您没有 SharePoint 数据的任何其他备份,那么这可能会影响您的数据弹性,因为当该文件发生问题时您无法恢复或恢复到以前的版本。

如何启用自动版本控制

版本历史记录限制已经预览了一段时间,但现在应该向所有租户推出。如果按照以下步骤后没有看到该选项,请继续阅读,我将向您展示如何使用 PowerShell 启用它。

  1. 打开 SharePoint 管理中心
  2. 转到设置
  3. 打开版本历史限制
  4. 将其设置为自动

[玩转系统] 通过版本历史记录限制控制 SharePoint 存储

如果您不想使用“自动”选项,则可以将其保留为“手动”,并配置要保留的最大主要版本数。

使用 PowerShell 启用自动版本历史记录限制

我们还可以使用 PowerShell 来启用自动版本历史记录限制。当您在 SharePoint 管理中心中尚未看到该功能时,也可以使用此选项。

要使用 PowerShell 启用该功能,我们需要 SharePoint Online Management 或 PnP PowerShell 模块。在继续之前,请确保模块已更新到最新版本。

# Option import the SPO module for PowerShell 7
Import-Module Microsoft.Online.SharePoint.PowerShell -UseWindowsPowerShell

# Connect to SharePoint Online
Connect-SPOService -url 'https://lazydev-admin.sharepoint.com/'

# Enable Version History Limits
Set-SPOTenant -EnableVersionExpirationSetting $true

[玩转系统] 通过版本历史记录限制控制 SharePoint 存储

如果要使用 PnP PowerShell 模块,请使用以下命令启用该设置:

# Connect to PnP Online
Connect-PnPOnline -Url 'https://lazydev-admin.sharepoint.com/' -Interactive

# Enable Version History Limits
Set-PnPTenant -EnableVersionExpirationSetting $true

我们还可以使用PowerShell来配置版本历史记录限制设置,要将版本历史记录设置为自动,您需要启用以下设置:

# SPO Module:
Set-SPOTenant -EnableAutoExpirationVersionTrim $true

# PnP MOdule:
Set-PnPTenant -EnableAutoExpirationVersionTrim $true

如果您更喜欢手动设置,则可以使用以下选项进行配置:

# Don't expire, and 100 file version max
Set-SPOTenant -ExpireVersionsAfterDays 0 -MajorVersionLimit 100

# Expire versions after 180 days, and 500 file version max
Set-SPOTenant -ExpireVersionsAfterDays 180 -MajorVersionLimit 500

清理现有库

版本历史记录限制设置仅应用于新文档库,但您可能还想清理现有库。为此,我们可以使用新的 New-SPOSiteFileVersionBatchDeleteJob cmdlet。

此 cmdlet 允许您为现有文档库创建批量清理作业。我们可以指定是否要使用自动修剪方法或为库配置手动选项。

笔记

批量删除作业删除的文件版本不可恢复!它们不会进入您的回收站,因此无法恢复。如有疑问,请先运行假设分析!

可以为整个 SharePoint 网站创建清理作业,也可以为特定库创建作业:

# Apply automatic logic to trim existing versions from a Site
New-SPOSiteFileVersionBatchDeleteJob -Identity $siteUrl -Automatic

# Config count limits (Major versions) for a library
New-SPOListFileVersionBatchDeleteJob -Site $siteUrl -list $libName -MajorVersionLimit 100

使用 PowerShell 时,您当然不必为每个站点手动创建新的后台作业。您可以使用下面的脚本为每个站点启用版本历史记录限制,并根据自动逻辑修剪版本:

# Check if script is running in PowerShell 7
if ($psversionTable.PSVersion.major -eq 7) {
    Import-Module Microsoft.Online.SharePoint.PowerShell -UseWindowsPowerShell
}

# Connect to SharePoint Online
$spAdminUrl = "https://<your-tenant>-admin.sharepoint.com"
Connect-SPOService -Url $spAdminUrl

# Get all SharePoint Sites
$spoSites = Get-SPOSite -Limit All

# Process each site
$spoSites | ForEach-Object{
    $site = $_
    Write-Host "Creating cleanup job for site: $($site.Url)"
    
    # Check if Version History Limits is enabled for each site
    if ($null -eq (Get-SPOSite -Identity $site.Url).EnableAutoExpirationVersionTrim) 
    {
        # Enable Version History Limits
        Set-SPOSite -Identity $site.Url -EnableAutoExpirationVersionTrim:$true -Confirm:$false
    
        # Create a batch to trim versions based on the automatic logic
        try {
            New-SPOSiteFileVersionBatchDeleteJob -Identity $site.Url -Automatic -Confirm:$false 
            Write-Host "Batch trim job created for site: $($site.Url)" -ForegroundColor Green
        } catch {
            Write-Host "Unable to create job for site: $($site.Url)"
            Write-Host $_.Exception.Message
        }
    }else{
        Write-Host "Version History Limits already enabled for site: $($site.Url)" -ForegroundColor Cyan
    }
}

# Disconnect from SharePoint Online
Disconnect-SPOService

总结

版本历史记录限制使您可以更轻松地配置 SharePoint 网站的最大文件版本数,但此新功能的最佳部分当然是自动修剪选项。

这是回收大量 SharePoint 存储空间的好方法,同时确保文件有足够的可用版本。

如果您喜欢这篇文章,请务必订阅时事通讯或在社交媒体平台之一上关注我。如果您有任何疑问,请在下面发表评论。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯