从SPWeb获取SPWebTemplate

时间:2012-02-10 14:42:49

标签: sharepoint powershell sharepoint-2010 powershell-v2.0 spweb

在我的PowerShell脚本中,我想获得用于创建SPWeb的SPWebTemplate。在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-Name(STS#1)?

提前致谢,乔纳斯

2 个答案:

答案 0 :(得分:5)

尝试SPWeb.Configuration

此属性必须在运行最不良命名的属性 - SharePoint API。我记得我自己尝试使用WebTemplateId,直到找到配置(我不记得我最终是如何找到它)。

答案 1 :(得分:1)

你可以尝试

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

但请记住,某些$ web.Configuration可以是-1。