문제

이 지침에 따라 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를 여기에 배치"); 남아 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top