Welcome to MSDN Blogs Sign in | Join | Help

Generate a report about all the sites and lists under a site collection

One of my customer wants monitors their SharePoint environment in order to meet governance requirement.

Primary goal was generate a report of site hierarchy under a site collection including webs and libraries etc. created during specific timeframe.

Thus, I have created a small utility – a .NET console based application which will accept a site collection URL as an input parameter and generate report which will dump the information name and created date of sites and lists.

Here is the code snippet.

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Text;
   4: using Microsoft.SharePoint;
   5: using System.IO;
   6:  
   7: namespace SiteInformation
   8: {
   9:     class Program
  10:     {
  11:         static TextWriter reportfile = null;
  12:  
  13:         static void Main(string[] args)
  14:         {
  15:             try
  16:             {
  17:                 reportfile = new StreamWriter("SiteInfo.csv");
  18:  
  19:                 Console.WriteLine("Enter your site collection URL :");
  20:  
  21:                 string strUrl = Console.ReadLine();
  22:  
  23:                 SPSecurity.RunWithElevatedPrivileges(delegate()
  24:                 {
  25:                     using (SPSite oSite = new SPSite(strUrl))
  26:                     {
  27:                         using (SPWeb oRootWeb = oSite.OpenWeb())
  28:                         {
  29:                             SPWebCollection oWebs = oRootWeb.Webs;
  30:                             if (oWebs.Count == 0)
  31:                                 reportfile.WriteLine("No subsites under " + oRootWeb.Name);
  32:                             else
  33:                                 GetData(oWebs);
  34:                         }
  35:                     }
  36:                 });
  37:  
  38:             }
  39:             catch (Exception ex)
  40:             {
  41:                 Console.WriteLine(ex.Message);
  42:             }
  43:             finally
  44:             {
  45:                 reportfile.Close();
  46:                 reportfile.Dispose();
  47:             }
  48:             Console.WriteLine("Operation completed successfully !");
  49:             Console.ReadLine();
  50:         }
  51:  
  52:           static void GetData(SPWebCollection oWebs)
  53:           {
  54:               foreach (SPWeb oWeb in oWebs)
  55:                   {
  56:                       reportfile.WriteLine("*********************************************************");
  57:                       reportfile.WriteLine("Site URL " + oWeb.Url);
  58:                       reportfile.WriteLine("Site Name >> " + oWeb.Name + " || Created Date >> " + oWeb.Created.ToString());
  59:                       GetLists(oWeb.Lists);
  60:  
  61:                     if (oWeb.Webs.Count == 0)
  62:                         reportfile.WriteLine("No subsites under " + oWeb.Name);
  63:                     else
  64:                         GetData(oWeb.Webs);                  
  65:                   }
  66:           }
  67:  
  68:         static void GetLists(SPListCollection oLists)
  69:         {
  70:             foreach (SPList oList in oLists)
  71:             {
  72:                 reportfile.WriteLine("List Name >> " + oList.Title + " || Created Date >> " + oList.Created.ToString());
  73:             }
  74:         }
  75:     }
  76: }

I have attached the application in the format of a zip file with this post.

Published Tuesday, July 14, 2009 1:53 AM by sowmyancs

Attachment(s): SiteInformation.zip

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker