Ранее, в статье “Применение 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
Это одна из первых задач с которой Вы столкнетесь, и решается она парой команд.
-
Добавляем решение решение на WFE серевер
PS C:\> Add-SPSolution -LiteralPath C:\MySolutions.wsp
-
Разворачиваем решение на конкретное приложение
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