Получить SPWebTemplate от SPWeb

В моем скрипте PowerShell я хочу получить шаблон SPWebTemplate, который использовался для создания SPWeb. В экземплярах SPWeb доступны свойства WebTemplate и WebTemplateId, но оба они не идентифицируют SPWebTemplate однозначно.

Например, если SPWebTemplate "STS#0" был использован для создания SPWeb, WebTemplate будет содержать "STS", а WebTemplateId будет "1".

Сейчас

Get-SPWebTemplate | where { $_.ID -eq 1 }

приведет к 3 результатам для каждого установленного языка (STS#0, STS#1, STS#2). Как я могу получить правильное имя SPWebTemplate (STS#1)?

Заранее спасибо,
Jonas

2 ответа

Решение

Попробуйте SPWeb.Configuration.

Это свойство должно быть запущено для наиболее плохо именованного свойства - SharePoint API. Я помню, как пытался использовать WebTemplateId сам, пока не нашел конфигурацию (и я не помню, как я ее нашел).

Ты можешь попробовать

$web = Get-SPWeb http://site/subsite
Get-SPWebTemplate | where {$_.name -like $web.WebTemplate+"*" } | where {$_.name -like "*"+$web.Configuration }
$web.Dispose()

Но имейте в виду, что некоторые $web.Configuration могут быть -1.

Другие вопросы по тегам