รับ SPWebTemplate จาก SPWeb

ในสคริปต์ PowerShell ของฉัน ฉันต้องการรับ SPWebTemplate ที่ใช้ในการสร้าง SPWeb ในอินสแตนซ์ 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) ที่ถูกต้องได้อย่างไร

ขอขอบคุณล่วงหน้า
โจนาส


person Jonas W    schedule 10.02.2012    source แหล่งที่มา


คำตอบ (2)


ลองใช้ SPWeb.Configuration

คุณสมบัตินี้จะต้องอยู่ในการทำงานสำหรับคุณสมบัติที่มีชื่อที่แย่ที่สุด - SharePoint API ฉันจำได้ว่าพยายามใช้ WebTemplateId ด้วยตัวเองจนกระทั่งพบการกำหนดค่า (และฉันจำไม่ได้ว่าในที่สุดฉันก็พบมันได้อย่างไร)

person Rich Bennema    schedule 10.02.2012

คุณสามารถลอง

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

แต่โปรดจำไว้ว่า $web.Configuration บางตัวสามารถเป็น -1 ได้

person Kerm Aktaev    schedule 30.10.2014