문제
이 지침에 따라 Mysite 웹 응용 프로그램에 배포되는 사용자 정의 마스터 페이지가 있습니다.http://www.sharepointblog.com/2008/07/sp2007-custom-master-pages-on-subsites.html
그러나 Mysite 웹 응용 프로그램 내에있는 모든 사이트 컬렉션에서 기능을 비활성화 할 수있는 기능이 필요합니다. 이 기능은 사이트 수집 범위로 구축되었습니다. 잠재적으로 3000+ mysites가있는 응용 프로그램에서 어떻게 비활성화 할 것인가?
해결책
웹 애플리케이션의 모든 사이트 컬렉션 (MySites)을 반복하는 간단한 콘솔 애플리케이션을 구축하고 기능을 비활성화합니다. 이 코드를 Elevate 권한으로 실행해야합니다 (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();
}
}
});
}
다른 팁
이 코드는 마스터 페이지에도 스테이플 링 될 수 있습니다. Only Site.Features.Remove (New Guid ( "기능 ID를 여기에 배치"); 남아 있어야합니다.
제휴하지 않습니다 StackOverflow