La desactivación de la función de recogida sitio en MySite
-
20-09-2019 - |
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?
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.