Загрузить шаблон сайта 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)