none
Como apagar todas as versões de todos os itens de um lista ou de todas as listas de um site RRS feed

  • Pergunta

  • Olá,

    Pretendo apagar todas as versões de todos os itens de um lista ou de todas as listas de um site, é possível fazer isto??

    Obrigado

    Hugo Poeira

    terça-feira, 18 de junho de 2013 16:40

Respostas

  • [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
    # get site
    $site = new-object Microsoft.SharePoint.SPSite("http://mossdev:8000")
    # loop through webs
    foreach ($web in $site.AllWebs)
    {
      # loop through all lists in web
      foreach ($list in $web.Lists)
      {
        # examine if BaseType of list is NOT a Document Library
        if ($list.BaseType -ne "DocumentLibrary") 
        {
          # forget the rest and return to top
          continue
        }
        # loop through each item
        foreach ($item in $list.Items)
        {
          # work with the file object as we're in a document library
          $file = $item.File
          # delete all versions
          $file.Versions.DeleteAll()
        }
      }
    }
    $web.Dispose();
    $site.Dispose();


    Atenciosamente, Rafael Fausto

    • Marcado como Resposta Hugo Poeira segunda-feira, 24 de junho de 2013 13:10
    segunda-feira, 24 de junho de 2013 12:03

Todas as Respostas

  • Desabilita o versionamento da lista e depois habilita :)

    Atenciosamente, Rafael Fausto

    terça-feira, 18 de junho de 2013 18:23
  • Desabilita o versionamento da lista e depois habilita :)

    Atenciosamente, Rafael Fausto

    Não funcionou Rafael, desabilitei o versionamento, fui à lista e tudo sem versão, ok. Quando voltei a activar as versões as versões volaram tal como estavam antigamente. 

    Mais alguma sugestão?

    Obrigado

    Hugo Poeira

    quarta-feira, 19 de junho de 2013 10:32
  • Qual versão do SharePoint você utiliza?

    Caso seja 2010 ou 2013, você pode fazer um script powershell.

    Veja um exemplo desse site.

    http://www.mukalian.com/blog/post/2011/04/10/PowerShell-Script-to-Delete-All-Versions-in-a-Document-Library.aspx


    Atenciosamente, Rafael Fausto


    • Editado Rafael Fausto quarta-feira, 19 de junho de 2013 12:15 referencia
    quarta-feira, 19 de junho de 2013 12:10
  • Qual versão do SharePoint você utiliza?

    Caso seja 2010 ou 2013, você pode fazer um script powershell.

    Veja um exemplo desse site.

    http://www.mukalian.com/blog/post/2011/04/10/PowerShell-Script-to-Delete-All-Versions-in-a-Document-Library.aspx


    Atenciosamente, Rafael Fausto


    Rafael, estou a utilizar Sharepoint Fundation 2010.

    E o objectivo de apagar todas as versões é ficar só com a ultima versão de todos os itens em todas as listas, para depois passar os dados recolhidos nessas lista para tabelas Oracle.

    • Editado Hugo Poeira quarta-feira, 19 de junho de 2013 17:35 acrescer palavars
    quarta-feira, 19 de junho de 2013 17:32
  • Então,

    Pode testar esse script. Só precisa altera-lo para especificar que tipo de conteudo, lista ou biblioteca de documentos e o site. :)


    Atenciosamente, Rafael Fausto


    • Editado Rafael Fausto quarta-feira, 19 de junho de 2013 19:04 atualizacao
    quarta-feira, 19 de junho de 2013 19:03
  • Então,

    Pode testar esse script. Só precisa altera-lo para especificar que tipo de conteudo, lista ou biblioteca de documentos e o site. :)


    Atenciosamente, Rafael Fausto


    Viva Rafael,

    Desculpa não vejo o script que você indica!

    segunda-feira, 24 de junho de 2013 10:21
  • [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
    # get site
    $site = new-object Microsoft.SharePoint.SPSite("http://mossdev:8000")
    # loop through webs
    foreach ($web in $site.AllWebs)
    {
      # loop through all lists in web
      foreach ($list in $web.Lists)
      {
        # examine if BaseType of list is NOT a Document Library
        if ($list.BaseType -ne "DocumentLibrary") 
        {
          # forget the rest and return to top
          continue
        }
        # loop through each item
        foreach ($item in $list.Items)
        {
          # work with the file object as we're in a document library
          $file = $item.File
          # delete all versions
          $file.Versions.DeleteAll()
        }
      }
    }
    $web.Dispose();
    $site.Dispose();


    Atenciosamente, Rafael Fausto

    • Marcado como Resposta Hugo Poeira segunda-feira, 24 de junho de 2013 13:10
    segunda-feira, 24 de junho de 2013 12:03