Pergunta

Temos uma página mestre personalizada que é implantada para o aplicativo da Web Mysite de acordo com essas instruções -http://www.sharepointblog.com/2008/07/sp2007-custom-master-pages-on-subsites.html

No entanto, exigimos a capacidade de desativar o recurso em todas as coleções de sites que estão dentro da aplicação da Web Mysite. O recurso é construído como um escopo de coleção de sites. Como nós os desativaríamos em um aplicativo que possui mais de 3000 mysites?

Foi útil?

Solução

Eu construiria um aplicativo de console simples, que itera em todas as coleções de sites (mysites) do seu aplicativo da web e desativando o recurso. Você terá que executar este código com privilégios elevados (SpSecurity.RunWithelevatedPrivileges) para que você tenha permissão para desativar um recurso de coleção de sites.

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

Outras dicas

Esse código também pode ser grampeado na página master. Somente sites.features.remove (novo Guid ("Coloque seu ID do recurso aqui")); deve permanecer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top