Ранее, в статье “Применение PowerShell к SharePoint 2010” я писал о том, что в SharePoint 2010 появилось более четырехсот командлетов PowerShell позволяющих автоматизировать задачи администрирования и разработки. Четыресто - это много, и в этой статье я опишу самые “популярные” в моей практике.

Прошу учесть, я являюсь разработчиком, поэтому в статье не затронуты темы резервного копирования, настройки сервисов, развертывания и многие другие связанные с администрированием SharePoint 2010.

Работа с командлетами SharePoint за пределами командной консоли SharePoint 2010

В комплекте с SharePoint мы получаем командную консоль, однако работать в ней не всегда удобно. Если Вы хотите сиспользовать командлеты SharePoint за пределами командной консоли выполните скрипт:

 
PS C:\> Add-PSSnapin Microsoft.SharePoint.PowerShell

В PowerGUI Script Editor можно сделать следующее: В меню “File” выберите “PowerShell Libraries” и в открывшемся окне выбрать “Microsoft.SharePoint.PowerShell”.

Установка WSP

Это одна из первых задач с которой Вы столкнетесь, и решается она парой команд.

  1. Добавляем решение решение на WFE серевер

    PS C:\> Add-SPSolution -LiteralPath C:\MySolutions.wsp
  2. Разворачиваем решение на конкретное приложение

    PS C:\> Install-SPSolution -Identity MySolutions.wsp -GACDeployment -WebApplication http://mysharepoint

Далее необходимо активировать фичу для соответствующего узла.

Обновление WSP

Решения периодически обновляются и в этом поможет скрипт:

PS C:\> Update-SPSolution -LiteralPath C:\MySolutions.wsp –GACDeployment

Выполнять какие-либо манипуляции с приложениями, семействами узлов, фичамии и т.д. - не требуется.

Важно: Данный скрипт инициирует рестарт IIS.

Активация возможностей (Features)

Администратору далеко не всегда удобно для активации какой-либо возможности заходить через веб-интерфейс в параметры конкретного сайта, куда проще выполнить скрипт:

PS C:\> Enable-SPFeature –Identity FeatureName -Url http://mysharepointsite

Эта команда, так же, окажет огромную помощь, когда необходимо активировать скрытую возможность.

В SharePoint 2010 есть множество различных возможностей необходимых пользователям, но которые активируются только с определенными шаблонами узлов. Например “Библиотека активов” (Asset Library) – медиа библиотека позволяющая типизированно хранить аудио и видио, и имеющая встроенные представления с Silverlight-плеером. Данная возможность активируется с шаблоном веб-сайта публикации, однако она может понадобится на любом сайте. Для активации достаточно выполнить:

PS C:\> Enable-SPFeature -Identity AssetLibrary -Url http://mysharepointsite

Подробный список возможностей SharePoint 2010 - Features and their GUID’s in SP2010.

Работа с сайтом и семейством узлов

В старой версии продукта нам приходилось реализовывать функции Get-Web, Get-Site, для работы с узлами и семействами узлов, но в SharePoint 2010 появились:

PS C:\> $site = Get-SPSite http://mysharepoint
PS C:\> $web = Get-SPWeb http://mysharepointsite
 
Важно: Не забывайте высвобождать ресурсы.
 

Остановка и зупуск служб SharePoint 2010

SharePoint 2010 даже в режиме простоя съедает порядка 500Мб оперативной памяти, иногда это критично. В моем случае это критично, когда я локально, на ноутбуке, запускаю виртуальные машины. Для таких случаев я написал две функции:

function Stop-SharePoint
{
  Get-Service | where {$_.DisplayName –like "*SharePoint*" -and $_.Status -eq "Running" } | foreach { Stop-Service $_.DisplayName -Force}
  Get-Service | where {$_.DisplayName -like "*SharePoint*" -and $_.Status -eq "Stopped"} 
  Stop-Service w3svc
}

function Start-SharePoint
{
  Get-Service | where {$_.DisplayName -like "*SharePoint*" -and $_.Status -eq "Stopped" -and $_.DisplayName -notlike "*Agent*"} | foreach { Start-Service $_.DisplayName}
  Get-Service | where {$_.DisplayName -like "*SharePoint*" -and $_.Status -eq "Running"}
  Start-Service w3svc
}

Две эти функции позволяют полностью остановить SharePoint и затем запустить его.

Важно: Команды “Stop-Service w3svc” и “Start-Service w3svc” останавливают и включают службы IIS.

Получение данных из профилей пользователей с помощью PowerShell

Работа с профилями пользователей, в целом, не изменилась, в сравнении с предыдущей версией, но так как задачи связанные с получением данных из профилей являются типичными, привожу пример:

$site =  Get-SPSite “http://mysharepoint”
$currentContext =

[Microsoft.SharePoint.SPServiceContext]::GetContext($site);

$profileManager =
New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($currentContext);

foreach ($prof in $profileManager.GetEnumerator())

  Write-Host "Фамилии пользователей:"    
  Write-Host $prof[[Microsoft.Office.Server.UserProfiles.PropertyConstants]::LastName]
}
$site.Close();

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

В качестве заключения

Это лишь малая часть задач, которые можно решить с помошью PowerShell, однако, в моем случае они оказались наиболее популярными.

Ссылки по теме:

Windows PowerShell for SharePoint Foundation 2010 reference

Features and their GUID’s in SP2010

Комментарии

trackback

progg.ru  (http://progg.ru/Блог-Ильи-Бойко-Работа-с-SharePoint-2010-из-PowerShell-для-разработчиков)

09.04.2010 3:44:19

Блог Ильи Бойко | Работа с SharePoint 2010 из PowerShell (для разработчиков)

Thank you for submitting this cool story - Trackback from progg.ru

Добавить комментарий


(Отображает Gravatar)

biuquote
  • Комментарий
  • Предпросмотр
Loading



О блоге

Добро пожаловать в блог Ильи Бойко, здесь вы найдете статьи и ссылки по .NET, SharePoint, SQL Server и RoR.

Photostream