すべてのサイトを列挙する - サイトの定義 /テンプレートに基づいて決定する
-
16-10-2019 - |
質問
SharePointオブジェクトモデルを使用してアプリケーション内のすべてのサイトを列挙して、ベースサイトの定義が何であるかを判断することは可能ですか? (そしてまた、サイトがテンプレートからプロビジョニングされたかどうかを知るために?)thx
解決
サイトコレクションを反復し、すべてのSPWEBを調べて、WeBtemplate、WeBtemplateID、および構成を検出できます。
これらの値は、サイトの作成に使用されるテンプレートと構成と一致します(別名Web in API)。その後、それをそれぞれのonet.xmlファイルとwebtemp*.xmlファイルでSharePointルート(必要に応じて14 Hive)で見つかったサイト定義と比較できます。
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb_members.aspx
SP2007にはありました いいえ サイトがサイト定義テンプレートまたはテンプレートファイル(STP)によってプロビジョニングされたかどうかを発見する方法。 STPファイルは現在(とにかくサイトテンプレートの場合)WSPファイルを支持して廃止されたため、これを見ることはまだ不可能だと思います。
他のヒント
Andersの回答に追加するために、2010年と2013年にもAPIを通じて名前を取得できます。
使用する spweb.getavailablewebtemplates. 。別のsharepoint.stackexchange.comスレッドがあります APIを使用する素晴らしい例 PowerShellを通して。
所属していません sharepoint.stackexchange