• Exchange Web Service Managed API - The account does not have permission to impersonate the requested user

    imageВ одном из локальных проектов по разработке веб-приложения возникла задача создания Задач в почтовых ящиках пользователей Exchange Server 2010. Для этого была предпринята попытка использовать Exchange Web Service Managed API (через веб-службу на сервере клиентского доступа https://ClientAccessServer/EWS/Exchange.asmx). Как мне объяснил разработчик приложения, при попытке подключится к пользовательскому почтовому ящику для того, чтобы создать в нём Задачу от имени отдельной специально созданной для этой цели сервисной учетной записи, возникала ошибка "The account does not have permission to impersonate the requested user"

    image

    Что само по себе в общем-то ожидаемо и говорит о том, что у сервисной учетной записи, от имени которой идёт попытка манипулировать почтовым ящиком пользователей нет права олицетворять себя с этими пользователями (Impersonation Rights). Для того, чтобы предоставить такие права воспользуемся Exchange Management Shell.

    Читать далее...

  • SharePoint 2013 - Отключаем отслеживание действий пользователя

    imageКогда один пользователь SharePoint 2013 открывает свойства другого пользователя, он может подписаться на получение сведений об активностях  этого самого пользователя в рамках SharePoint. В конфигурации по умолчанию профили пользователей настроены таким образом, что когда какой-то другой пользователь создаёт такую подписку, – отслеживаемый пользователь получает об этом уведомление в почту.

    Например пользователь Артур Пирожков через поиск нашёл пользователя Максимов Алексей, вошёл в свойства его учетной записи и щелкнул по ссылке “отслеживать этого пользователя”…

    image

    После этого пользователь Максимов Алексей получит от SharePoint письмо с уведомлением о том, что его начал отслеживать пользователь Артур Пирожков примерно в следующем виде…

    Читать далее...

  • SharePoint 2013 - Перенос элементов списка в папку этого же списка

    imageКогда при использовании SharePoint 2013 возникает необходимость выполнить перенос группы элементов списка (List) в папку сделанную в этом же списке можно воспользоваться встроенным средством управления контентом, которое доступно при открытии ссылки /_layouts/sitemanager.aspx

    image

    Однако для использования данного средства может понадобится активация фичи средств публикации на уровне сайта. В некоторых случая активация этой фичи может оказаться нежелательной и тогда для возможности переноса элементов списка можно попробовать воспользоваться PowerShell для SharePoint.

    Читать далее...

  • Переносим базы данных SharePoint 2013 на другой сервер SQL Server

    imageРассмотрим процесс переноса всех баз данных SharePoint Server 2013 Standard с одного сервера SQL Server 2012 на другой. В рассматриваемом примере базы данных SharePoint расположенные на отдельном виртуальном сервере должны быть перенесены в кластер SQL Server состоящий из двух физических серверов. Насколько я понимаю, описанная ниже процедура будет применима для всех редакций SharePoint 2010/2013. Официальное описание процедуры переноса всех баз данных SharePoint 2013 на новый экземпляр/сервер SQL Server можно найти в статье TechNet Library - Move all databases in SharePoint 2013. Весь процесс будет состоять из следующей последовательности действий:

    1) Останавливаем все службы SharePoint/IIS, которые могут обращаться к БД;
    2) Копируем базы данных с исходного SQL сервера на целевой;
    3) На сервере SharePoint создаем SQL-алиас на новый SQL сервер и проверяем его;
    4) Запускаем службы SharePoint/IIS остановленные в п.1 и проверяем результат.

    Читать далее...

  • SharePoint 2013 - Перенос библиотеки с SharePoint 2010

    image

    В этой заметке мы рассмотрим два PowerShell скрипта с помощью которых можно выполнить перенос содержимого библиотеки документов или библиотеки рисунков между сайтами SharePoint 2010 и SharePoint 2013. Перенос выполняется в два этапа – сначала из сайта-источника выгружается информация об объектах, хранящихся в библиотеке в csv-файл и сами файлы с структурой папок, затем полученный контент загружается на целевой сайт. В csv-файл скрипт выгрузки записывает сведения об элементах библиотеки, даты создания и изменения, автора, атрибуты структуры папок. В подкаталог выгружаются файлы библиотеки, воссоздавая при этом структуру папок библиотеки. Поэтому перед выгрузкой важно убедиться в том, что имена файлов и папок библиотеки не слишком длинные и не содержат символов несовместимых с правилами именования файловой системы. Скрипты не переносят разрешения.

    Читать далее...

  • SharePoint 2013 - Перенос элементов списка с SharePoint 2010 на примере записей Блога

    imageДля того, чтобы перенести содержимое записей Блога на базе SharePoint 2010 в Блог на базе SharePoint 2013 можно воспользоваться PowerShell. Последовательность действий может быть такая:

    На стороне сервера SharePoint 2010

    • Выгружаем в csv-файл элементы списка Категории
    • Выгружаем в csv-файл элементы и содержимое (в отдельный каталог) библиотеки рисунков Фотографии
    • Выгружаем в csv-файл элементы и вложения (в отдельный каталог) списка Записи
    • Выгружаем в csv-файл элементы списка Заметки

    На стороне сервера SharePoint 2013

    • Загружаем элементы списка Категории
    • загружаем элементы и содержимое библиотеки рисунков Фотографии
    • Загружаем элементы и вложения списка Записи
    • Загружаем элементы списка Заметки

      Читать далее...

    • SharePoint 2013 - Удаляем все элементы списка

      imageВ ходе экспериментов со списками SharePoint 2013, например когда тестируется массовая загрузка элементов списка, может возникнуть необходимость в очистке списка. Пример скрипта PowerShell для непосредственного удаления всех элементов какого либо списка:

      $url = "http://site1.holding.com"
      $listName = "Test"
      #
      $snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'}
      if ($snapin -eq $null) {
        Write-Host "Загрузка оснастки SharePoint Powershell"
        Add-PSSnapin "Microsoft.SharePoint.Powershell"
      }
      #
      $web = Get-SPWeb $url 
      $list = $web.Lists[$listName]
      #
      # Удаляем папки 
      #
      $collFolders = $list.Folders
      $count = $collFolders.Count - 1
      for($i = $count; $i -gt -1; $i--)
      {       
        $collFolders.Delete($i)
      }
      #
      # Удаляем элементы списка
      #
      $items = $list.GetItems()
      $items | ForEach-Object{
        $list.GetItemById($_.Id).Delete()
      }
      $list.Update()
      $web.Dispose()
      Write-Host 'Удаление завершено'
    • SharePoint 2013 - Отображение месячных архивов для блога

      imageПосле того как мы автоматизировано c помощью PowerShell перенесли контент локального сайта сделанного на шаблоне Блог из SharePoint 2010 в SharePoint 2013, обратили внимание на одну мелочь – в стандартной веб-части отображения архива блога отображались заголовки только последних двух месяцев. Мелочь, но неприятно…

      image

      В поисках решения этой проблемы был найден проект на CodePlex - SharePoint 2010 Blog Site Archives Web Part который представляет альтернативную веб-часть отображения архива блога для SharePoint 2010. На выручку снова пришёл мой коллега Владимир Земляков, который переработал решение под SharePoint 2013 и разместил его на новом проекте CodePlex - Sharepoint Blog Arсhive Web Part 

      Читать далее...

    • SharePoint 2013 - Облако категорий для блога

      imageРанее я писал заметку о веб-части отображающей содержимое списка Категории из шаблона сайта Блог для SharePoint Server 2010 в виде облака. Сегодня обновился файл решения (farm solution), разворачивающего эту веб-часть на странице проекта на Codeplex – The SharePoint Tag Cloud web part for blog web template

      Теперь веб-часть работает на SharePoint Server 2013 и за счёт того, что в код внесены изменения относительно используемых классов, загружается при обновлении страницы быстрее. Установку решения выполняем в SharePoint 2013 Management Shell на уровне сайта:

      Add-SPSolution -LiteralPath "C:\Temp\TagCloud.wsp"
      Install-SPSolution -Identity "TagCloud.wsp" -GACDeployment -web "http://site.holding.com"

      Далее, для корневого сайта заходим Действия сайта > Параметры сайта > Возможности семейства сайтов > Активируем возможность Облако тегов. Затем добавляем появившуюся в категории Прочие веб-часть Облако категорий на страницы сайта/подсайта Блог

      image

    • SharePoint 2013 – Замена значений гиперссылок хранимых в колонке списка

      imageСкрипт для замены значений типа Ссылка в элементах списка, описанный ранее в заметке SharePoint 2010 – Замена значений гиперссылок хранимых в колонке списка, оптимизированный под использование с SharePoint 2013. По сути изменена только одна строчка скрипта.

      Читать далее...