Get-SharePointListContent

Sorry за длительный перерыв в постах, занят делами о которых пока не могу рассказывать…😦

Но тем-не менее продолжаю потихоньку публиковать функции для работы с SharePoint. На этот раз одна из самых интересных: Get-SharePointListContent. С её помощью как раз и можно получить содержимое списка SP в виде объектов со свойствами соответствующими полям списка.

Сильно разжевывать не буду — уже сделал это в комментариях🙂 Так что вот сам скрипт🙂

Function Get-SharePointListContent (
    $RootSiteUrl=$(throw "Нужно указать URL сайта!"),
    $WebName="", 
    $ListName=$(throw "Нужно указать имя списка!"), 
    $Fields=$(throw "Нужно указать имена столбцов!")
)
{
    #Подключаемся к сайту
    $SpSite = New-Object Microsoft.SharePoint.SpSite($RootSiteUrl)
    #Помещаем объект списка в переменную $List с которой и будем затем работать
    $List = $SpSite.AllWebs[$WebName].lists[$ListName]
    #Если $List пуст, то 
    if ($List -eq $null)
    {
        #Нет списка - и работать не с чем
        Write-Error "Ошибка при подключению к списку, проверьте имена."
        Exit
    }
    else
    {
        #Создаем хэш таблицу в которой будем хранить настоящие имена полей и их названия
        $FieldNames=@{}
        #Заполняем её
        Foreach ($Field in $Fields)
        {
            #Если список содержит поле с названием из $Fields...
            if ($List.Fields.ContainsField($Field))
            {
                #Помещаем прое в хэш-таблицу
                $FieldNames[$Field] = $list.Fields.GetField($Field).Title
            }
            else #Иначе...
            {
                #Поля не существует - во входных параметрах ошибка
                #поля чувствительны к регистру символов
                Write-Error "Поле с именем '$Field' отсутствует в списке $ListName."
                Exit
            }
        }
        #Главный процесс - для каждого элемента в $List.Items...
        ForEach ($Item in $List.Items)
        {
            #Создаем новый объект класса PSObject
            $Object = New-Object PSObject
            #Для каждого поля...
            Foreach ($Field in $Fields)
            {
                #Добавляем к нашему объекту свойство с нужным именем и значением
                $Object | Add-Member "NoteProperty" -Name ($FieldNames[$Field]) -Value $Item[$Field]
            }
            #Выводим готовый объект дальше по конвейеру (Write-Output можно было и не писать)
            Write-Output $Object
        }
    }
}

Скоро выложу все скрипты в одном «модуле», и можно будет заняться записью и изменением данных в SharePoint🙂

Опубликовано в Learn, PowerShell, Practice, Scripting, SharePoint. 1 Comment »

Один ответ to “Get-SharePointListContent”

  1. Akmid Says:

    Очень полезный скрипт!
    Может вкратце про запись и изменение?


Обсуждение закрыто.

%d такие блоггеры, как: