Enumerare tutti i siti - determinare se sulla base di definizione del sito / template
-
16-10-2019 - |
Domanda
E 'possibile utilizzare il modello a oggetti di SharePoint per enumerare tutti i siti in un'applicazione per determinare quali la definizione del sito di base è? (E anche di sapere se il sito è stato provisioning da un modello?) thx
Soluzione
È possibile iterare raccolte siti ed esaminare ogni SPWeb per scoprire WebTemplate, WebTemplateId e configurazione.
Questi valori corrispondono al modello e configurazione utilizzata per creare il sito (aka web API). È quindi possibile confrontare quella contro le definizioni di sito trovato in radice di SharePoint (14 alveare se u vuole) nei rispettivi file Onet.xml e Webtemp * .xml file.
http://msdn.microsoft.com/en- us / library / microsoft.sharepoint.spweb_members.aspx
In SP2007 c'era non modo per scoprire se il vostro sito è stato provisioning da un modello di definizione di sito o di un file di modello (STP). Dal momento che i file STP sono ora in pensione (per modelli di sito in ogni caso) a favore di file WSP, presumo che la sua ancora impossibile vedere questo.
Altri suggerimenti
Per aggiungere Anders risposta, è possibile ottenere il nome tramite l'API, anche nel 2010 e 2013.
SPWeb.GetAvailableWebTemplates . Un altro thread SharePoint.stackexchange.com ha un grande esempio di utilizzo API attraverso PowerShell.