-->

понедельник, 9 сентября 2013 г.

Удаление версий элемента с помошью PowerShell

На днях появилась задача удалить версии у неактуальных элементов которым уже 4 года и старше. Я решил воспользоваться уже знакомым PowerShell.
Для начала нужно понять до какого элемента будем удалять журнал версий и получить его ID.
Немного расскажу что делает скрипт:
1. меняет значение максимального числа хранимых версий в списке. (рис. ниже)
Заметки: если Вы планируете в новых элементах хранить больше версий чем установлено в скрипте, то после отрабатывания скрипта, необходимо самостоятельно установить значение в настройках списка . 


2. пробегает циклом по элементам списка начиная с ID = 1 и заканчивает значением установленным в скрипте.




cls
if((Get-PSSnapin | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) {
 Add-PSSnapin Microsoft.SharePoint.PowerShell;
}
$SPWeb = Get-SPWeb http://server/sites/test #изменить на необходимый адрес сайта#
$List = $SPWeb.Lists["Задачи"] #указать свой список#
$ItemsColl = $List.Items         
        
$List.MajorVersionLimit = 2  #задать максимальное количество версий#
$List.Update()
foreach ($item in $ItemsColl)
 {            
                 if ($item.id  -le 5) #до какого значения id элемента будет проводится чистка журнала#
                   {        
                              
                     write-host "у элемента с ID = "$item.id" журнал удален." -foregroundcolor Green
                     $item.SystemUpdate($false)
               
                   }
 }
$SPWeb.Dispose();

P.s. рекомендую проводить работы в не рабочее время т.к. после сохранений пользователем изменений в элементе так же будет урезан журнал версий у этого элемента.

надеюсь что статья Вам будет полезна.