SharePoint - encontrar el valor sitetemplate de una plantilla de PAS?
-
05-09-2019 - |
Pregunta
Estoy tratando de escritura de la creación de sitios para los Fab 40 plantillas de Microsoft SharePoint. Estoy teniendo problemas para encontrar el valor para el parámetro sitetemplate para el comando stsadm para crear los sitios.
por ejemplo:.
stsadm -o createsite -url http://Test/sites/Team_Site **-sitetemplate STS#0** -title "Team Site" ...
¿Hay un comando que se puede ejecutar, o en algún lugar que puede buscar para localizar el valor sitetemplate paquetes de PSA (por ejemplo BugDatabase.wsp)?
Solución
Creo que la forma más sencilla de hacerlo es a través de PowerShell, pero se puede escribir código para hacer lo mismo. La clave es obtener una referencia a la web y luego llamar SPWeb.GetAvailableWebTemplates(lcid)
.
Aquí hay algunas líneas de comando de script / PowerShell para escupir el nombre y propiedades del título en la pantalla:
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
$theSiteColl = New-Object Microsoft.SharePoint.SPSite("http://server")
$theWeb = $theSiteColl.OpenWeb()
$theWeb.GetAvailableWebTemplates(1033) | select name, title
#put your locale ID in the function call
La columna Name
es el que tiene que pasar en el comando stsadm -o createsite
, y la columna de Title
ayuda a asociarlo con algo que tenga sentido. En mi caja de la prueba, la plantilla de aplicación BugDatabase es BT#0
.
Otros consejos
Un PSA es sólo un archivo CAB que pueden contener múltiples plantillas. Creo que había necesidad de hacerlo manualmente. Para ello, cambie el nombre del PSA a tener una extensión de la cabina, extraer el manifest.xml y archivos * Webtemp del PSA, y buscar allí. Nombre programática de una definición de sitio es sólo el nombre de la definición de sitio, seguido de #, y luego el ID de configuración. Por ejemplo, para crear un sitio mediante la configuración de la plantilla 0 STS, se usaría STS # 0.