using System;
using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.SharePoint; using Microsoft.SharePoint.Administration; using System.IO; using System.Web; using System.Text.RegularExpressions; using System.Data; using System.Collections; namespace GetAllWebsSize { class Program { static void Main(string[] args) { Console.WriteLine("This tool is designed for finding which document library has enabled history version in all websites and sites");InitionFile();
Console.WriteLine("Please input the web url:"); String weburl = Console.ReadLine (); Console.WriteLine("Please input Version num:"); String getVerNumString = Console.ReadLine (); Int16 getVerNum=Convert.ToInt16(getVerNumString );Uri webAppUri = new Uri(weburl);
SPWebApplication webApplication = SPWebApplication.Lookup(webAppUri);Console.WriteLine("WebURL\tDocumentLibrary(MB)\tLastModifiedTime\tSiteOwner\tMajorVersionLimit\tMinorVersionsLimit\tSize");
writer.WriteLine("WebURL\tDocumentLibrary(MB)\tLastModifiedTime\tSiteOwner\tMajorVersionLimit\tMinorVersionsLimit\tSize"); foreach (SPSite site in webApplication.Sites) { DataTable oDtRawData = null; oDtRawData = site.StorageManagementInformation(SPSite.StorageManagementInformationType.DocumentLibrary, SPSite.StorageManagementSortOrder.Decreasing, SPSite.StorageManagementSortedOn.Size, 0); foreach (SPWeb web in site.AllWebs) { foreach (SPList list in web.Lists ) { string listId = "{" + list.ID.ToString() + "}"; foreach (DataRow oRow in oDtRawData.Rows) { string oRowListGuid = oRow["ListGuid"].ToString().ToLower();if (list.EnableVersioning.ToString ()=="True"&&oRowListGuid == listId.ToLower() && list.BaseTemplate.ToString() == "DocumentLibrary" && list.Hidden.ToString() != "True" && list.EnableVersioning.ToString() == "True" && list.Title != "Site Collection Documents" && list.Title != "Style Library False" && list.Title != "Site Collection Images" && list.Title != "Style Library")
{ if (list.MajorVersionLimit == 0|| list.MajorVersionLimit >= getVerNum || list.MajorWithMinorVersionsLimit >= getVerNum) { string minorVer = null; if (list.EnableMinorVersions.ToString() == "False") minorVer = "Disable"; else minorVer = list.MajorWithMinorVersionsLimit.ToString(); try { foreach (SPUser user in web.AssociatedOwnerGroup.Users) { Console.WriteLine("http://" + webAppUri.Host + list.ParentWebUrl.ToString() + "\t" + list.Title + "\t" + list.LastItemModifiedDate.ToString() + "\t" + user.LoginName + "\t" + list.MajorVersionLimit.ToString() + "\t" + minorVer + "\t" + oRow["Size"].ToString()); writer.WriteLine("http://" + webAppUri.Host + list.ParentWebUrl.ToString() + "\t" + list.Title + "\t" + list.LastItemModifiedDate.ToString() + "\t" + user.LoginName + "\t" + list.MajorVersionLimit.ToString() + "\t" + minorVer + "\t" + oRow["Size"].ToString());}
} catch { writer.WriteLine("http://" + webAppUri.Host + list.ParentWebUrl.ToString() + "\t" + list.Title + "\t" + list.LastItemModifiedDate.ToString() + "\t" + "access error" + "\t" + list.MajorVersionLimit.ToString() + "\t" + minorVer + "\t" + oRow["Size"].ToString()); } } } } } } } CloseFile(); // Console.ReadKey(); }static StreamWriter writer;
static void InitionFile() { writer = new StreamWriter("HistoryVer.txt", false); } static void CloseFile() { writer.Flush(); writer.Close(); }static void WriteLine(string msg)
{ writer.WriteLine(msg); } } }