sábado, 30 de enero de 2016

Script para listar cantidad de elementos en todas las listas y bibliotecas de todas las colecciones de sitios

En esta ocasión vamos a contar el total de elemntos de cada lista y biblioteca de SharePoint.  Para identificar si es una biblioteca u otra lista utilizamos la propiead BaseTemplate.
Para comprender mejor el Script es bueno repasar la arquitectura del Modelo de Objectos de Servidor de SharePoint. A través de la siguiente imagen:

En resumen el objeto SPWebApplication contiene uno o mas objectos SPSite que representa cada colección de sitios y dentro de cada colección de sitios accedemos uno o mas sub-sitios o sitios web con el objeto SPWeb. Dentro de cada SPWeb podemos acceder las listas y/o bibliotecas con el objeto SPList.  y por ultimo aunque no lo utilicemos en este script el objeto SPListItem que representa cada elemento del objeto SPList.
Ahora vamos a describir el contenido del script que nos generará el listado del total de elementos de cada lista.
--- Inicio del Archivo ListAllListElements.ps1 ----
#Obtenemos la aplicación Web
$spWebApp = get-SPWebApplication http://misitio
#Declaramos el nombre del archivo CSV donde guararemos la información
$OutputFile ="d:\infoware\totaldocumentos.csv"
#Escribimos el encabezado del contenido del archivo csv
Add-Content $OutputFile "Titulo,Sitio,Url,Lista-Id,Lista,Tipo,Cantidad Elementos"
#Obtenemos todas las colecciones de sitios de la aplicación Web
$allSites = $spWebApp.Sites
foreach($site in $allSites)
{
    #Obtenemos todos los subisitos de la la colección de sitios actuales.
$webs = $site.AllWebs
    foreach($Web in $webs)
    {
        foreach($list in $Web.Lists)
        {
        #Establecemos el valor de la variable $row con la url, titulo del sitio y la información de la lista        $row = $web.URL+","+$web.Title + ","
        +$list.Id+","+$list.Title+","+$list.BaseTemplate+","+$list.Items.Count                       
        Add-Content $OutputFile $row
        }
    }
}
--- Fin del Archivo ListAllListElements.ps1 ----
Para ejecutar el script utilizamos Management Shell for SharePoint 2013:
c:\> .\ListAllListElements.ps1
El resultado será similar a la siguiente imagen:




SharePoint4fun Amigos!.
Hasta la próxima,
Juan Manuel Herrera Ocheita

No hay comentarios.: