2

在我的 PowerShell 脚本中,我想获取已用于创建 SPWeb 的 SPWebTemplate。在 SPWeb 实例中,可以访问属性 WebTemplate 和 WebTemplateId,但它们都不能唯一标识一个 SPWebTemplate。

例如,如果 SPWebTemplate“STS#0”已用于创建 SPWeb,则 WebTemplate 将包含“STS”并且 WebTemplateId 为“1”。

现在

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

将为每种已安装的语言(STS#0、STS#1、STS#2)产生 3 个结果。如何检索正确的 SPWebTemplate-Name (STS#1)?

在此先感谢,
乔纳斯

4

2 回答 2

5

尝试SPWeb.Configuration

此属性必须在运行最糟糕的属性 - SharePoint API。我记得自己尝试使用 WebTemplateId 直到我找到 Configuration (我不记得我最终是如何找到它的)。

于 2012-02-10T15:49:31.930 回答
1

你可以试试

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

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

于 2014-10-30T05:08:27.327 回答