Управление хранилищем SharePoint с ограничениями на версионность
Обычной проблемой с хранилищем SharePoint является то, что вы можете быстро исчерпать место для хранения. Вы можете приобрести дополнительное хранилище, но, как вы, возможно, знаете, это довольно дорого. Основной причиной чрезмерного потребления хранилища является версионирование файлов в SharePoint.
Версионирование файлов — это отличная функция, но проблема возникает, когда вы храните большие файлы. Поскольку каждая версия является полной копией файла, это может быстро накапливаться. Чтобы смягчить эту ситуацию, Microsoft выпустила новую функцию, Ограничения Истории Версий, которая дает вам больше контроля над тем, сколько версий сохраняется.
В этой статье мы рассмотрим, как новые ограничения истории версий сопоставляются с существующими настройками версионности в SharePoint и как их включить для вашего арендатора.
Ограничения версии истории против версияции SharePoint
Версионный контроль файлов включен по умолчанию для всех сайтов SharePoint и OneDrive. При настройках по умолчанию SharePoint и OneDrive будут сохранять 500 версий каждого файла. Это идеально, когда мы говорим о файле Word, размером всего 100 Кб.
Но это становится проблемой, когда мы храним более крупные файлы, такие как PDF, графические файлы, чертежи или большие форматы файлов. Посмотрите на скриншот ниже, у меня есть PSD (PhotoShop) файл, который всего 36 Мб, но OneDrive сохранил 245 его версий. Таким образом, этот один файл занимает 8,5 Гб!
Теперь у нас уже есть возможность контролировать, сколько версий сохраняется в SharePoint и OneDrive через настройки библиотек документов. Здесь мы можем снизить количество сохраняемых версий до минимума 100, что на самом деле все равно довольно много.
Проблема с этим методом заключается в том, что нам нужно настроить это для каждой библиотеки сайтов. Конечно, мы можем использовать PowerShell для этого, но все новые сайты также нуждаются в настройке. Минимальная версия при этом - 100. С примера выше это все еще более 3 ГБ для одного файла.
Ограничения истории версий
Новая функция, Ограничения истории версий, позволяет вам легко настраивать количество версий, которые нужно сохранить для новых библиотек документов SharePoint и учетных записей OneDrive. Она не перезаписывает существующие сайты или учетные записи OneDrive, но у нас также есть решение для этого.
Кроме того, что мы устанавливаем количество основных версий, которые мы хотим сохранить, мы также можем настроить максимальный возраст для версии. Например, мы можем настроить удаление версии через 3 месяца или 1 год.
Истинная сила этой новой функции заключается в автоматической настройке. Когда она включена, интеллектуальный алгоритм будет сохранять версии на основе даты создания. По мере устаревания версий сохраняется меньше старых версий, оставляя лишь несколько наиболее вероятно необходимых.
Это сокращение старых версий приводит к следующей схеме удержания:
- Первые 30 дней – Все версии в пределах лимита 500 сохраняются
- 30 до 60 дней – Почасовые версии хранятся
- от 60 до 180 дней – Ежедневные версии хранятся
- Через 180 дней - Еженедельные версии до лимита в 500 штук.
Если сравнить три метода, максимальное количество версий (лимит по счету), предельный срок (истечение) и автоматический лимит, то мы можем увидеть, что количество хранимых версий постепенно уменьшается с автоматическими лимитами по сравнению с другими вариантами:
Имейте в виду, что когда вы устанавливаете предел времени (срок действия) для версий, то в итоге может остаться только одна версия файла после истечения определенного времени. Например, вы настраиваете максимальный срок хранения версий файла в 6 месяцев. Новый файл был создан и редактировался только в течение первого месяца. Через 7 месяцев (с момента первоначального создания файла) останется только последняя версия.
Если у вас нет никаких других резервных копий ваших данных SharePoint, это может повлиять на устойчивость ваших данных, потому что вы не можете восстановить или вернуться к предыдущей версии, когда с файлом происходит что-то.
Как включить автоматическое версионирование
История версий была в предварительном просмотре довольно долго, но теперь она должна быть внедрена для всех арендаторов. Если вы не видите эту опцию после выполнения следующих шагов, просто читайте дальше, я покажу вам, как включить это с помощью PowerShell после этого.
- Откройте Центр администрирования SharePoint
- Перейдите в Настройки
- Откройте Ограничения истории версий
- Установите это на Автоматически
Если вы не хотите использовать автоматический вариант, вы можете оставить его на ручном режиме и настроить максимальное количество основных версий, которые вы хотите сохранить.
Использование PowerShell для включения ограничений автоматической истории версий
Мы также можем использовать PowerShell для включения автоматических лимитов истории версий. Этот вариант также можно использовать, если вы еще не видите эту функцию в Центре администрирования SharePoint.
Чтобы включить функцию с помощью PowerShell, нам нужен модуль управления SharePoint Online или модуль 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Если вы хотите использовать модуль 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 позволяет создавать задания пакетной очистки для существующих библиотек документов. Мы можем указать, хотим ли мы использовать метод автоматической обрезки или настроить ручные параметры для библиотек.
Заметка
Версии файлов, которые удаляются с помощью задания массового удаления, не подлежат восстановлению! Они не попадут в вашу корзину, и, следовательно, не могут быть восстановлены. Если есть сомнения, сначала выполните анализ 'Что если'!
Работы по очистке могут быть созданы для целого сайта 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, при этом обеспечивая наличие достаточного количества версий ваших файлов.
Если вам понравилась эта статья, убедитесь, что вы подписаны на новостную рассылку или следите за мной в одной из социальных сетей. Если у вас есть какие-либо вопросы, просто оставьте комментарий ниже.



