Pregunta

Tenemos una página maestra personalizada que se despliega a la aplicación web de Mi sitio por estas instrucciones - http://www.sharepointblog.com/ 2008/07 / sp2007-custom-master-pages-en-subsites.html

Sin embargo, se requiere la capacidad para desactivar la característica en todas las colecciones de sitios que están dentro de la aplicación web de Mi sitio. La función está construido como un ámbito de colección de sitios. ¿Cómo podemos desactivarlos en una aplicación que tiene potencialmente 3000+ MySites?

¿Fue útil?

Solución

Me gustaría construir una simple aplicación de consola, que itera sobre todas las colecciones de sitios (MySites) de su aplicación web y desactiva la función. Vas a tener que ejecutar esta pieza de código con privilegios de Elevate ( SPSecurity.RunWithElevatedPrivileges ) por lo que tiene el permiso para desactivar una característica de colección de sitios.

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();
                    }
                }
            });
        }

Otros consejos

Este código se puede grapar en la página maestra a. Sólo site.Features.Remove (nueva Guid ( "lugar su identificador de función aquí")); debe permanecer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top