我们有一个自定义母版页,根据这些说明部署到 MySite Web 应用程序 - http://www.sharepointblog.com/2008/07/sp2007-custom-master-pages-on-subsites.html
但是,我们需要能够停用 MySite Web 应用程序中所有网站集的功能。该功能构建为网站集范围。我们如何在可能有 3000 多个 MySites 的应用程序上停用它们?
我们有一个自定义母版页,根据这些说明部署到 MySite Web 应用程序 - http://www.sharepointblog.com/2008/07/sp2007-custom-master-pages-on-subsites.html
但是,我们需要能够停用 MySite Web 应用程序中所有网站集的功能。该功能构建为网站集范围。我们如何在可能有 3000 多个 MySites 的应用程序上停用它们?
我将构建一个简单的控制台应用程序,它会遍历您的 Web 应用程序的所有网站集 (MySites) 并停用该功能。您必须使用提升权限 ( SPSecurity.RunWithElevatedPrivileges ) 运行这段代码,以便您有权停用网站集功能。
private static void DeleteWebsiteCollections()
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPWebApplication webApp = SPWebApplication.Lookup(new Uri("http://MySiteHostWebApp"));
SPSiteCollection mySites = webApp.Sites;
foreach (SPSite site in mySites)
{
site.Features.Remove(new Guid("place your feature id here"));
if (null != site)
{
site.Dispose();
}
}
});
}
此代码也可以装订到母版页中。只有 site.Features.Remove(new Guid("将您的功能 ID 放在这里")); 应该保留。