четверг, 28 августа 2014 г.

SharePoint via PowerShell. Списки

Получить ссылки на параметры для всех списков узла:
foreach ($foo in ($web.Lists | select ID)) { $web.Url + "/_layouts/listedit.aspx?List={" + $foo.ID.ToString() + "}"}

среда, 25 июня 2014 г.

Парсинг даты в PowerShell

function Convert-DateString ([String]$Date, [String[]]$Format, [String]$cultureId)
{
   $culture = New-Object system.globalization.cultureinfo($cultureId)

   $result = New-Object DateTime
 
   $convertible = [DateTime]::TryParseExact(
      $Date,
      $Format,
      $culture,
      [System.Globalization.DateTimeStyles]::None,
      [ref]$result)
 
   if ($convertible) { $result }
}
Примеры использования:

Convert-DateString -Date 'Август 2013' -Format 'MMMM yyyy' -CultureId 'ru-RU';

Convert-DateString -Date '12:26:34' -Format 'HH:mm:ss','HH-mm-ss' -CultureId 'ru-RU';;

Convert-DateString -Date '12-26-34' -Format 'HH:mm:ss','HH-mm-ss' -CultureId 'ru-RU';;

Convert-DateString -Date 'Июнь 2014' -Format 'MMMM yyyy' -CultureId 'ru-RU'

Convert-DateString -Date 'Четверг, июль 4, 2013 12:26:34' -Format 'dddd, MMMM d, yyyy HH:mm:ss' -CultureId 'ru-RU'


среда, 4 июня 2014 г.

SharePoint - Получение пользователя веба

По части имени учётки в AD.
$web = Get-SPWeb http://srv-servername:123/spweb
$login = "part_of_login_for_search";

foreach($uiter in $web.AllUsers) { if ($uiter.UserLogin.IndexOf($login) -ne (-1)) { $user = $uiter;} }

$user.ToString();

понедельник, 31 марта 2014 г.

SharePoint - глюки. Создание иерархии вариантов, Column ‘EntryType’ does not exist

Есть портал, когда-то разрабатывавшийся под SharePoint Server 2010. Теперь развёрнут на 2013 в режиме совместимости с 2010.
Надо внедрить двуязычность. Решено настроить Variations. Однако, при создании иерархии вариантов возникла проблема.

При попытке создания иерархии формируется соответствующее задание по расписанию.
При выполнении задания возникает ошибка вида «Column ‘EntryType’ does not exist».
Было выяснено, что у портала в системном списке Relationships List отсутствуют некоторые поля, к которым, видимо, обращается для чего-то механизм создания иерархии вариантов.

Проблема решается путём добавления недостающих полей через командную консоль:
$web = Get-SPWeb http://sp-server:12445
$relList = $web.Lists["Relationships List"]
$relList.Fields.Add("Status", [Microsoft.SharePoint.SPFieldType]::Integer, $true)
$relList.Fields.Add("EntryType", [Microsoft.SharePoint.SPFieldType]::Integer, $false)
$relList.Fields.Add("Label", [Microsoft.SharePoint.SPFieldType]::Guid, $false)
$relList.Update();
После этого даём команду на создание иерархии вариантов обычным образом через раздел «Метки вариантов» параметров семейства узлов.

SharePoint - Восстановленный из бэкапа сайт не открывается (access denied)

Портал поднят из бэкапа. Нужная учётка задана как администратор семейства узлов, кроме того учётке предоставлены полные права в настройках web-приложения. Тем не менее портал не открывается — access denied. Решение: задать правильные superuser- и superreader-аккаунты для web-приложения.
  $wa = Get-SPWebApplication -Identity "http://sp-web-app"
  $wa.Properties["portalsuperuseraccount"] = "DOMAIN\superuser"
  $wa.Properties["portalsuperreaderaccount"] = "DOMAIN\superreader"
  $wa.Update()
Рецепт найден здесь.

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

SharePoint - Работа с решениями через PowerShell

Add-SPSolution "C:\My.Solution.Name.wsp"

Name                           SolutionId                           Deployed
----                           ----------                           --------
my.solution.name.wsp           1671e031-1603-40ce-a1e0-9a29ea518741 False

Install-SPSolution -Identity my.solution.name.wsp -WebApplication http://my-sp-app -Force -GACDeployment -confirm:$false

...................

Update-SPSolution -Identity my.solution.name.wsp -LiteralPath "C:\My.Solution.Name.wsp" -GacDeployment

Активация фичи:
Enable-SPFeature FeatureFolderName -Url http://server/site/subsite
Деактивация фичи:
Disable-SPFeature FeatureFolderName -Url http://server/site/subsite

четверг, 20 марта 2014 г.

SharePoint - Создание семейства web-узлов из PowerShell

$webUrl = "http://sp-portal:12345/"
$ownerAlias = "DOMAIN\account"
$webName = "Profiles"
$webTemplate = "SPSMSITEHOST#0"
$compatibilityLevel = 14

New-SPSite -Url $webUrl -OwnerAlias $ownerAlias -Name $webName -Template $webTemplate -CompatibilityLevel $compatibilityLevel