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

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

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


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




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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. рекомендую проводить работы в не рабочее время т.к. после сохранений пользователем изменений в элементе так же будет урезан журнал версий у этого элемента.

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

Комментариев нет:

Отправить комментарий