Общие сведения о Windows

Администрирование Sharepoint с помощью PowerShell

Это руководство для тех, кто уже знает, что такое Sharepoint. В основном, руководство посвящено администрированию Sharepoint с помощью powershell (PoSH)

Переменные:

Это просто объект, который содержит что-то. Переменные могут быть идентифицированы предшествующим $, как, например, переменная «new»:

$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 и, безусловно, является моей любимой частью современных интерфейсов командной строки)!)

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