Elenco site collection con spazio occupato e data ultima modifica
Questo codice in C# per SharePoint 2007 / 2010, elenca lo spazio occupato dalle site collection e la data di ultima modifica:
devi compilarlo e richiamarlo con:
ritorna un elenco formattato in CSV che può essere aperto in excel
se vuoi reindirizzare l'output su un file
Utile soprattutto sulle farm 2007 dove non è installato PowerShell.
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
namespace ElencoSiteCollection
{
class Program
{
static void Main(string[] args)
{
string url = args[0];
Console.WriteLine("Sito: " + url);
SPUserToken ut = null;
using (SPSite site = new SPSite(url))
{
ut = site.SystemAccount.UserToken;
}
using (SPSite site = new SPSite(url, ut))
{
Console.WriteLine("User:" + site.RootWeb.CurrentUser);
SPWebApplication wApp = site.WebApplication;
foreach (SPSite s in wApp.Sites)
{
s.CatchAccessDeniedException = true;
//stampo i dati della site collection
string msg = "Site;" + s.ServerRelativeUrl;
try
{
//trovo la data di ultima modifica del sito
DateTime dt = DateTime.MinValue;
if (s.LastContentModifiedDate > dt)
dt = s.LastContentModifiedDate;
if (s.LastSecurityModifiedDate > dt)
dt = s.LastSecurityModifiedDate;
msg += ";" + dt.ToString("yyyy-MM-dd HH:mm:ss");
msg += ";" + (s.Usage.Storage / 1048576.0).ToString("0.0");
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
s.Dispose();
}
Console.WriteLine(msg);
}
}
}
}
}
DOS / Batch file
.\ElencoSiteCollection.exe http://sharepoint
Text
Sito: http://sharepoint
User:SHAREPOINT\system
Site;/;2012-04-16 22:02:23;63,1
Site;/sites/Test;2012-04-16 14:47:54;0,4
Site;/sites/Reservation;2012-04-16 14:47:55;0,4
Site;/personal/aico;2012-04-16 14:47:56;0,4
DOS / Batch file
.\ElencoSiteCollection.exe http://sharepoint > elencoexcel.txt