上传网站模板wsp文件powershell

时间:2014-08-12 13:24:20

标签: powershell sharepoint-2013 wsp sitetemplate

我正在使用SharePoint 2013,我想从网站模板中创建一些spweb ...

我创建了一个网站并添加了我想要的内容,然后我将该网站保存为模板,然后转到解决方案库并下载了.wsp文件。

现在,我需要创建一个新的网站集,其中包含一些基于该模板的子网站,为此,我认为需要将.wsp文件上传到解决方案库中,这样我才能找到新的保存的模板,我需要从PowerShell做到这一点!

我试过两种方法,

首先,

我尝试添加-spsolution和install-spsolution,如下所示

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

但我在解决方案库中找不到.wsp,模板不在模板列表中......

我尝试使用Install-SPWebTemplate但是我的PowerShell中没有将此命令识别为cmdlet(我添加了Add-PSSnapin Microsoft.SharePoint.PowerShell

我也用过这个

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

任何人都可以帮助我使用我的WspFile,就像我可以根据我的模板创建子网站一样吗?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我认为您需要将其添加为沙盒用户解决方案,以便在网站集的解决方案库中显示。这种方法对我有用。

$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)