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.AllWebsforeach($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