Это руководство для тех, кто уже знает, что такое Sharepoint. В основном, руководство посвящено администрированию Sharepoint с помощью powershell (PoSH)
Переменные:
Это просто объект, который содержит что-то. Переменные могут быть идентифицированы предшествующим $, как, например, переменная «new»:
Мы заполняем переменные с помощью знака =. Следующая команда инстанцирует (создает экземпляр) веб-объекта SharePoint (в терминологии серверной объектной модели называется объектом SPWeb):
$newSPweb = get-spweb http://url.to/my/subsite
Вы можете называть свои переменные практически как угодно, хотя существуют правила — погуглите, если интересно .Соглашения об именовании объектов Net немного выходят за рамки данного документа.
Объектная модель сервера SharePoint:
Это то, что делает администрирование SharePoint в командной строке намного проще и интереснее, чем в графическом интерфейсе. Однако у него есть некоторые требования — в основном, вы должны иметь привилегии SPShellAdmin для каждой базы данных, над которой вы хотите выполнять операции.
Если вы находитесь в обычном окне PowerShell, вы можете добавить сборку SharePoint, набрав следующее:
Add-pssnapin Microsoft.sharepoint.powershell
Если у вас нет SPShellAdmin, вы, скорее всего, получите ошибку, говорящую о том, что ферма недоступна …
Ниже приведена команда, которую я запускаю с одной из наших учетных записей службы Farm Admin каждый раз, когда обнаруживаю, что у моей учетной записи нет SPShellAdmin (у нас на работе около 20 различных ферм).
Просто примечание — эта команда должна быть запущена с учетной записью, которая уже имеет SPShellAdmin — она также должна быть запущена с приложением SharePoint Management Shell с административными / повышенными привилегиями:
$spdb = get-spdatabase
$username = «domain\myuser»
Foreach ($_ in $spdb) {add-spshelladmin -database $_.id -username $username}
Эта команда захватывает ВСЕ имена баз данных текущих баз данных SharePoint и сохраняет их в переменной $spdb, а также говорит, что в цикле к ним будут обращаться по отдельности с помощью переменной $_.
Переменная $username — это имя пользователя, для которого вы хотите получить привилегии SPShellAdmin. Цикл ForEach говорит, что для каждого элемента, находящегося в переменной $spdb (а это каждая из баз данных, вы можете посмотреть это, просто набрав get-spdatabase), должна быть выполнена команда между { }. Внутри { } вы увидите $_.id — это означает, что в параметре -database следует использовать идентификатор (GUID) конкретного элемента базы данных, а в параметре -username — ваше имя пользователя.
Если предположить, что все прошло хорошо, вы получите мой любимый результат, в котором нет абсолютно ничего! Это считается одной из тех ситуаций, когда «нет новостей — хорошие новости».
Двигаемся дальше …
Теперь, когда у нас есть разрешение на вход, выйдите из своей учетной записи службы и войдите в нее под своей обычной учетной записью.
После того, как вы снова вошли, откройте обычное старое окно PoSH и добавьте сборку SharePoint:
Add-pssnapin Microsoft.sharepoint.powershell
Далее введите
Get-SPWebApplication
чтобы увидеть все веб-приложения в вашей ферме.
Давайте поместим один в переменную:
$SPWebApp = get-spwebapplication http://urlToMyWebApp
$SPWebApp | get-member
Теперь на вашем экране должен появиться огромный список вещей — это все объекты-члены, которые доступны вам через объектную модель для игры.
$SPWebApp.сайты | выберите rootweb, url
Теперь вы должны увидеть список всех коллекций сайтов, которые вы ранее создали в своем веб-приложении.
Поиграйте с get-member и select с помощью | … Эта вертикальная линия называется «труба» — с ее помощью можно передавать объекты от одной команды к другой.
Вы также можете попробовать нажать кнопку TAB на частично завершенной команде, чтобы посмотреть, что произойдет (это называется Tab-Completion и, безусловно, является моей любимой частью современных интерфейсов командной строки)!)