Комментарии можно оставлять "здесь"
Рассмотрим команды, которые могут быть полезны для администрировании и управления данными SharePoint через PowerShell.
Если Вы запускаете не "Командную консоль SharePoint", а запускаете используете просто PowerShell, то перед выполнением команд необходимо зарегистрировать оснастку SharePoint:
Add-PSSnapin
Microsoft.Sharepoint.Powershell
Чтобы подключиться к необходимому сайту используйте команду:
$web =
Get-SPWeb http://serverurl/.../
Если нужен список, то выполняем команду:
$list = $web.Lists[‘Название списка’]
Выберем отдельный элемент списка:
$item = $list.GetItems()[индекс элемента]
или
$item = $list.Items[индекс элемента]
или
$item = $list.GetItemById(id элемента)
или
$item = $list.GetItemById(id элемента)
Все элементы можно перебрать следующим способом
foreach ($item in $list.GetItems())
{
$item[‘Title’]
}
Можно отфильтровать количество элементов с помощью представления:
$view = $list.Views['filter'] или $view = $list.Views[индекс];
foreach ($item in $list.GetItems($view))
{
$item[‘Title’]
}
Также можно отредактировать и CAML запрос самого представления:
$view
= $list.Views[‘Мои задачи’]
$view.Query
= “<Where><And><Eq><FieldRef Name='AssignedTo'
/><Value Type='Integer'><UserID /></Value></Eq><Neq><FieldRef
Name='Status' /><Value Type='Text'>Завершенные</Value></Neq></And></Where>
<OrderBy><FieldRef Name='Status' /> <FieldRef Name='Priority'
/> </OrderBy>”
$view.Update()
Команда добавления решения в ферму:
Add-PSSnapin
Microsoft.Sharepoint.Powershell
Add-SPSolution ‘C:\DEV\-----.wsp’
Если необходимо перевести семейство в режим только для чтения, а также вывести его из этого режима, то используем
stsadm -o setsitelock -url http://... -lock none
stsadm -o setsitelock -url http://... -lock readonly
Чтобы проверить текущее состояние:
stsadm -o getsitelock -url http://rts
Результат возможен в следующем виде:
<SiteLock Lock="readonly" /> или <SiteLock Lock="none" />
Далее начну приводить примеры готовых небольших скриптов (переменные некоторые явно не определяю):
1. Поиск элементов, где не был запущен (в т.ч. не отработал) ни один рабочий процесс
$list = $web.Lists[‘Картотека’]
$i=1;
foreach($item in ($list.GetItems() | where { $_.Workflows.Count
-eq 0})){
$i.ToString()
+ “ ”+ $item.Name+ “ ”+ $item.ID;
$i++;
}
2. Удаление разрешений у элемента списка
Foreach ($item in $list.GetItems())
{
$item.BreakRoleInheritance($true)
if ($item['fieldNameInternal'].ToString() -eq 'value')
{
for ($j = $item.RoleAssignments.Count - 1; $j -ge 0; $j--)
{
$item.RoleAssignments.Remove($j);
}
' ok'
}
else
{
' skip' } }
{
$item.BreakRoleInheritance($true)
if ($item['fieldNameInternal'].ToString() -eq 'value')
{
for ($j = $item.RoleAssignments.Count - 1; $j -ge 0; $j--)
{
$item.RoleAssignments.Remove($j);
}
' ok'
}
else
{
' skip' } }
3. Поиск зависших рабочих процессов в списке
foreach($item in $list.Items){ foreach($wf in $item.Workflows | where {$_.InternalState -ne "Completed"}) { $wf.InternalState.ToString()+" "+$item.Name + " "+ $item["Modified"]; } }
Комментарии можно оставлять "здесь"
Комментариев нет:
Отправить комментарий