何が起こっているのかを理解するには、SharePoint でのサイト定義と Web テンプレートの違いを理解する必要があります。
多くの場合、同じ意味で使用されますが、それらは異なり、SharePoint 内での扱いも異なります。すぐに使用できるかカスタムかに関係なく、サイト定義は 14 個の hive\TEMPLATE\SiteTemplates にあります。一方、Web テンプレートは、サイト定義のインスタンスに対するカスタマイズを .stp または .wsp ファイルに保存します。これにより、そのサイトを他のサイト インスタンスにレプリケートできます。
ここに本当の問題があります。Microsoft でさえ、サイト定義と Web テンプレートの違いに混乱しています。彼らが WebTemplate プロパティに名前を付けたとき、Web テンプレートではなく、サイト定義を意味していたからです。
MSDN の記述に注意してください。
SPWeb.WebTemplate プロパティ
サイトをテンプレートとして保存してカスタム サイト テンプレートを作成し、そのテンプレートから新しいサイトを作成すると、WebTemplate プロパティには、カスタム テンプレートの名前ではなく、カスタム テンプレートの派生元のサイト定義の名前が含まれます。したがって、カスタム テンプレートの作成に使用されたサイト自体が標準のチーム サイト定義から作成された場合、新しいテンプレートから作成されたすべてのサイトの WebTemplate プロパティは "STS" を返します。
SPWeb.Configuration プロパティ
サイトをテンプレートとして保存してサイト テンプレートを作成し、そのテンプレートからサイトを作成すると、Configuration プロパティ
には、サイト テンプレートの派生元であるサイト定義構成の ID が含まれます。
(私のものを強調)
これは、質問で発見したことを裏付けています。では、サイトの作成に使用されたカスタム Web テンプレートをどのように判断するのでしょうか? それが可能かどうかはわかりません。可能であれば、MSDN が、これらのプロパティではできないことを説明したことを達成する方法を説明する文をもう 1 つか 2 つ提供してくれることを願っています。また、いろいろ調べてみると、この質問が数回聞かれていることがわかりましたが、満足のいく答えはありませんでした。