Загрузить шаблон сайта wsp файл powershell

Я использую SharePoint 2013, и я хочу создать некоторый spweb из шаблона сайта...

Я создал сайт и добавил желаемый контент, сохранил этот сайт в качестве шаблона, затем перешел в галерею решений и загрузил .wsp файл.

Теперь мне нужно создать новое семейство сайтов с некоторыми дочерними сайтами, основанными на этом шаблоне, и для этого я думаю, что нужно загрузить .wsp файл в галерею решений, как я могу найти недавно сохраненный шаблон, и мне нужно сделать это из PowerShell!

Я пробовал 2 способа,

Первый,

Я пытался добавить-spsolution и установить-spsolution, как показано ниже

Add-SPSolution -LiteralPath $SPIntranetTemplateFilePath
Install-SPSolution -Identity SPITemplateFile.wsp -CompatibilityLevel 15 -force

но я не нахожу.wsp в галерее решений, а шаблон отсутствует в списке шаблонов...

Я пытался использовать Install-SPWebTemplate, но эта команда не распознается как командлет в моей PowerShell (я добавил Add-PSSnapin Microsoft.SharePoint.PowerShell)

Я тоже этим пользовался

## SharePoint DLL 
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") 

Может ли кто-нибудь помочь мне использовать мой WspFile, как я могу создавать дочерние сайты на основе моего шаблона?

2 ответа

После Add-SPSolution пытаться Install-SPSolution

http://technet.microsoft.com/en-us/library/ff607534(v=office.15).aspx

Я думаю, вам нужно добавить его в виде изолированного пользовательского решения, чтобы оно отображалось в галерее решений семейства сайтов. Этот подход работал для меня.

$theSite = Get-SPSite "http://server/pathto/site"
# add the solution to the sandbox
Add-SPUserSolution (Resolve-Path .\relativePathTo.wsp) -Site $theSite 
# get the user solution and activate it for the site
$customSolution = Get-SPUserSolution -Site $theSite | ? { $_.Title -match "Custom Template Title" }
Install-SPUserSolution $customSolution -Site $theSite

После того, как вы установили изолированное решение, вы можете использовать его для создания дочернего сайта, используя объектную модель для захвата шаблона.

$localeId = 1033 # or whatever is appropriate for you
$customTemplate = $theSite.RootWeb.GetAvailableWebTemplates($localeId) | ? { $_.Title -match "Custom Template Title" } 

Теперь вы можете создать дочерний сайт на основе шаблона NO вообще, а затем применить пользовательский шаблон:

$newSubsite = $New-SPWeb "http://server/pathto/site/subsite" # can also apply options for unique permissions, nav bar, etc.
$newSubsite.ApplyWebTemplate($customTemplate)
Другие вопросы по тегам