пятница, 23 мая 2014 г.

Кнопка "Создать" не активна в Центре администрирования SharePoint

В случае, когда Вам нужно создать новое веб-приложение или приложению службу, можете столкнуться с отсутствием возможности нажать кнопку "Создать":
Запустите браузер от имени Администратора. Кнопка станет активной:

Узнать версию Office Web Apps 2013 Farm

Решил проверить версию Office Web Apps.
Попробовал через запрос, используя PowerShell, но ответ не вернул нужный заголовок:
$answer = Invoke-WebRequest 'http://pk-sp-webapp/m/met/participant.svc/jsonAnonymous/BroadcastPing'
Потом узнал, что версию можно посмотреть в файле по адресу:
C:\ProgramData\Microsoft\OfficeWebApps\Data\local\OfficeVersion.inc
Но на моем сервере такой папки нет. Использовал поиск и нашёл OfficeVersion.inc по адресу:C:\Program Files\Microsoft Office Web Apps\AgentManager\OfficeVersion.inc
Вот его содержимое:
Что интересно, такой версии OWA я не нашел в таблице Тода.

Ошибка Office Web App 2013 после установки обновлений

Столкнулся с проблемой, возникает ошибка при открытии документы через OWA:
Выяснил какое обновление к этому приводит:

Делал несколько установок, восстанавливался из снэпшотов Hyper-V. Сейчас они называются Checkpoints:
На данный момент проблему можно решить пересозданием фермы, а можно сразу установить еще обновления:
При этом ошибка так же пропала только после переустановки фермы Office Web App. Для этого сначала надо выполнить команду PowerShell:
Remove-OfficeWebAppsMachine
Потом создать новую ферму, параметры могут быть другими:
New-OfficeWebAppsFarm -InternalURL "http://owa.domain.com" -EditingEnabled -AllowHttp
Установка последних обновлений так же решила проблему, когда появлялась ошибка:


Желательно обновить привязки на стороне фермы SharePoint, но не обязательно.
Все проблемы исчезли:


Как создать пустой сайт в SharePoint 2013

Для создания пустых сайтов в SharePoint 2010 изначально имелась возможность создать таковой. В SharePoin 2013 такой возможности нет, изначально.

Давайте попробуем выполнить PowerShell команду: Get-SPWebTemplate


В шаблонах он есть. Теперь давайте перейдем в папку с SharePoint в файловой системе по адресу:
C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\1049\XML

Следует отметить, что путь установки может быть иным. Указан который по умолчанию. Так же папка 1049 указывает на локаль ru-Ru, 1033 en-US.

В этой папке лежат несколько XML файлов, нас интересует WEBTEMP.XML


Как видите, на отображение шаблона в веб-интерфейсе влияет атрибут Hidden="True", меняем на "FALSE".

Делаем IISReset и получаем нужный нам результат:


В SharePoint Designer 2013 тоже можно будет создавать "Пустой сайт":


Так же можно было создать сайт по шаблону "Пустой сайт" используя PowerShell:
$blankSitetemplate= Get-SPWebTemplate "STS#1" New-SPSite -Url "<Url of new site collection" -OwnerAlias "<domain\user>" -Template $blankSitetemplate
Еще можно взять любой другой сайт, убрать все списки и деактивировать фичи. Сохранить как шаблон. И потом от него создавать новые сайты. Это плохой вариант.

И есть решаемая проблема с рабочими процессами Workflow manager 1.0, как ее решить написано здесь.

Рабочие процессы SharePoint 2013 шаблон "Пустой сайт"

У шаблона "Пустой сайт" есть серьёзное ограничение. В нем не будут работать рабочие процессы версии 2013:


Я попробовал активировать некоторые возможности сайта


  • Тип контента задачи рабочего процесса
  • Рабочие процессы могут использовать разрешения приложения
Не помогло. Потом я пробовал включить все остальные возможности. При это без активации каких то фич на уровне коллекции сайтов, т.к. на других узлах все работало. Выяснилось, что необходимо активировать фичу, это возможно через PowerShell. Попробуем выполнить команду PowerShell:

Get-SPFeature | Where-Object {($_.Scope -eq 'Web') -and ($_.CompatibilityLevel -eq '15') -and ($_.DisplayName -like '*Work*')}


В этом списке нас интересует фича WorkflowServiceStore, давайте ее активируем:

Enable-SPFeature -Identity WorkflowServiceStore -Url http://urlOfBlankSite

Пробуем и видим, что появилась возможность создавать рабочие процессы версии 2013:


вторник, 20 мая 2014 г.

Visio шаблон фермы SharePoint

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

Скачать можно здесь.

Установка Workflow manager 1.0 для SharePoint 2013 на отдельной машине вне фермы.

Про обновление рабочих процессов в SharePoint 2013 написано достаточно много. Если кратко, то они обросли циклами, стадиями. Создать форму в InfoPath для задач нельзя. Создать задачу без отправки письма нельзя. И теперь надо производить отдельную настройку фермы Workflow manager. При этом, сразу же после установки SharePoint, Вы можете использовать рабочие процессы в режиме 2010 версии.
Если пробовать создать процесс через SharePoint Designer 2013, то Вы увидите следующее:
Будем настраивать. В нашем сценарии ферма Workflow manager будет работать на отдельной машине, в том же домене, но она не будет частью SharePoint фермы. Сразу поясню - Workflow manager тоже ферма, в которую можно добавлять машины. SharePoint ферма будет подключаться к ферме Workflow manager. В общем то Microsoft решил выделить эту часть SharePoint и действовать по той же схеме, что и с Office WebApps.
Архитектурно все выглядит следующим образом:
HOSTA - SharePoint Web Front End
HOSTB - SharePoint Application
HOSTC - Workflow manager farm
HOSTSQL - SharePoint Backend\Workflow manager DB

Т.е. на том же экземпляре, что мы используем для фермы SharePoint, будут и базы Workflow Manager.
Для установки Workflow manager на HOSTB можно использовать Web platform installer.
Выбирайте в списке WorkFlow manager 1.0. Что бы все заработало на Windows Server 2012 R2 необходимо обязательно обновиться до CU2. Так же надо установить CU1 для Service Bus.
CU1 для Service Bus через Web platform installer у меня не ставиться. Использовал оффлайн пакет.




Теперь необходимо выполнить обновления. Хотя это можно сделать и после конфигурирования фермы Workflow manager. После установки каждого обновления - перезагружайте сервер, иначе следующее может не поставиться.



Теперь приступаем к конфигурированию фермы Workflow manager. Перед нами появится окно, выбирайте средний пункт:
Этот пункт нужно выбирать обязательно. В противном случае у нас не будет выбора какую группу назначить администраторами. Т.е. будет назначена группа BUILTIN\Administrators. Скорее все это приведет к ошибке 403 (Forbidden). Ее воспроизвести можно если попытаться зайти на одно из веб-приложений созданных Workflow managers. На картинке ниже их 2. Для http и https соответственно. Что бы было и для http - необходимо ставить отдельную галку. Итак:
Если перейти по HOSTC, то увидим:

Пробуем с правами администратора:
И все получиться. Мы увидим:
Но пока параметр WorkflowAdminGroupName равен BUILTIN\Administrators - подключиться удаленно скорее всего не получится. Обновить это значение через PowerShell мне не удалось. Где то в базе можно поправить или в конфиге. Мы же не будем выбирать стандартный тип установки, а воспользуемся расширенным. В нем же нужно будет задать установки для Service Bus. Все настройки достаточно тривиальные.
Кроме этого:
Замените как на следующем снимке:
Т.е. исключение составляет Configure Admin Group, создайте группу в AD, ее же вписывайте в настройках. Поместите в эту группу Вашу учётную запись для фермы Workflow manager.
После окончания настройки необходимо подключить ферму SharePoint к Workflow manager. Перед этим обновите на всех машинах в ферме SharePoint Workflow client. Его так же можно найти в Web platform installer. Теперь необходимо открыть консоль PowerShell с подключенными оснастками SharePoint на любом сервере SharePoint и выполнить PowerShell скрипт:
Register-SPWorkflowService –SPSite "http://www.HOSTA" –WorkflowHostUri "http://HOSTC:12291" –AllowOAuthHttp -Force -Scope "SharePoint"

Теперь при создании рабочего процесса у нас должен быть диалог как на снимке:


Работоспособность можно проверить если перейти в Центр администрирования -> Управление приложениями-службами -> Прокси нашего Workflow service applocation:


Позже, при увеличении нагрузки, Вы можете добавить еще несколько компьютеров к ферме Workflow manager.




пятница, 16 мая 2014 г.

Настройка поиска Sharepoint 2013 на отдельном сервере

В этой статье будет кратко описано как добавить к ферме Sharepoint Server 2013 еще один сервер и настроить на нем поиск. Что бы перенести нагрузку на новый сервер.

Поиск в SharePoint 2013 является очень важным и нужным компонентом. С версии 2010 к 2013 произошли изменения. В сети достаточно материалов на эту тему. Начать рекомендую с этой статьи. Мастер настроек, при установке, вообще все сам Вам настроить может.
Но по мере увеличения нагрузки на ферму, Вы можете разнести компоненты на вновь добавленные к ферме сервера. Это называется масштабируемость. При это у Вас есть возможность не только перенести компонент поиска на другой сервер в ферме, но и определить какие части компонента поиска переедут. Т.е. у Вас может быть несколько серверов, которые отвечают за поиск, на которых будут работать разные компоненты поиска. Я Вам продемонстрирую процесс решения задачи по настройке поиска на добавленном к ферме сервере.
Для начала необходимо добавить новый сервер к ферме SharePoint. Этот процесс описан здесь.
Если все хорошо, то теперь, если Вы зайдете в Центр администрирования -> Управление серверами в ферме (http://server:port/_admin/FarmServers.aspx), то вы обнаружите свой новый сервер. Служба поиска на нем не будет включена как и windows службы, которые отвечают за поиск. Самому их включать не надо.
Предположим, что у нас 3 сервера: HOST1, HOSTSQL и добавленный HOST2, на котором мы настроим поиск.

На сервере HOST1 запустим консоль PowerShell и подгрузим оснастки SharePoint:

Add-PSSnapin Microsoft.SharePoint.PowerShell

Либо сразу запустим командную консоль SharePoint 2013:




Я же Вам рекомендую использовать для работы с PowerShell инструмент Windows PowerShell ISE. Узнать подробнее о нем можно здесь.
$Host = "HOST2"
$SearchAppPoolName = "SharePoint_SearchAppPool"
$SearchAppPoolAccountName = "Domain\Account"
$SearchServiceName = "SharePoint_Search_Service"
$SearchServiceProxyName = "SharePoint_Search_Proxy"
$DatabaseName = "SharePoint_Search_AdminDB"






#Создаем пул приложение в IIS
$spAppPool = New-SPServiceApplicationPool -Name $SearchAppPoolName -Account $SearchAppPoolAccountName

#Запускаем экземпляр Службы поиска на указанных серверах

Start-SPEnterpriseSearchServiceInstance $Host -ErrorAction

Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance $Host -ErrorAction



#Создаем приложение-службу поиска
$ServiceApplication = New-SPEnterpriseSearchServiceApplication -Partitioned -Name $SearchServiceName -ApplicationPool $spAppPool.Name -DatabaseName $DatabaseName

#Создаем Proxy приложения-службы поиска
New-SPEnterpriseSearchServiceApplicationProxy -Partitioned -Name $SearchServiceProxyName -SearchApplication $ServiceApplication
На HOSTSQL будут созданы несколько БД:

Их можно будет увидеть из веб-интерфейса чуть позже.

Если перейти в приложение-службу через центр администрирования и посмотреть на топологию, то увидим следующее:
Все в порядке. Настраиваем дальше.

#Получаем экземпляр Службы поиска
$SearchServiceInstance = Get-SPEnterpriseSearchServiceInstance -Identity "HOST2"

#Запускаем экземпляр Службы поиска
Start-SPEnterpriseSearchServiceInstance -Identity $SearchServiceInstance

#Получаем приложение-службу поиска
$ssa = Get-SPEnterpriseSearchServiceApplication
#Создаем топологию приложения-службы поиска
$newTopology = New-SPEnterpriseSearchTopology -SearchApplication $ssa
#Добавляем компоненты в топологию приложения-службы поиска
New-SPEnterpriseSearchAdminComponent -SearchTopology $newTopology -SearchServiceInstance $SearchServiceInstance
New-SPEnterpriseSearchCrawlComponent -SearchTopology $newTopology -SearchServiceInstance $SearchServiceInstance
New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $SearchServiceInstance
New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $SearchServiceInstance
New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $SearchServiceInstance
New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $SearchServiceInstance
Set-SPEnterpriseSearchTopology -Identity $newTopology
#Проверяем
Get-SPEnterpriseSearchTopology -SearchApplication $ssa


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

В веб-интерфейсе приложения-службы поиска можно видеть какой компонент поиска где работает. Так же, как я писал чуть выше, можно посмотреть какие БД SQL Server используются:

Так же можно увидеть, что на HOSTB запущена служба поиска SharePoint.


Готово, теперь необходимо настроить источники и правила обхода. Все эти задачу будут выполняться на другом сервере, что повысит производительность фермы в общем.