SPSiteManager 2.2 complete

SPSiteManager 2.2 complete

Over the past few evenings, I've finalized changes; tested; regressed; tested; sighed a lot; did the hokie pokie; and performed weird rituals to fight the voices in my head shouting "Implement me! Implement me!" for some new features, yet finally finished this set of updates to SPSiteManager.

I previously posted on this update, but a couple of things noted in that post were cut, while a couple other new things were added. I was hoping to have this and a couple of other updates to other tools complete so that I could get the final SharePoint Utility Suite update complete and live this week, but it's going to take a few more days. This post will cover the "Final" new and enhanced features in this version.

As I noted in my previous post The Next Big Thing - The SharePoint Configuration Analyzer V.Next, we'll be combining the functionality of SPSiteManager with the SharePoint Configuration Analyzer, and incorporating SPUserUtil as well. In the mean time, we've found some immediate additions we need to make to SPSiteManager based on overwhelming customer requests and feature requests. I don't foresee any other immediate changes being needed before moving forward with SCA.Next in full force, so without further ado, here are the new and improved features in SPSiteManager 2.2!

What's New and Improved

  • Fix for removefromdirectory and removefromcrawl operations

    • I found that my comparison was literal, and if you created the site via the Portals Create Site link, then we only stored the relative path to the site in the directory. So I updated the comparison logic to do a literal comparison, and then a relative comparison.
  • New site directory targeting via -sitedirectoryurl switch

    • Not all customers leave their site directory in the same place :) I even commented this in the code and left it with it assuming that your site directory was in the same place. I've corrected this so now you can specify a specific site directory to work on with the -sitedirectoryurl switch
  • New enumsitecrawl and enumsitedirectory operations

    • These give you the capability to export your entire list of sites to crawl, a.k.a. the Deep Crawl List) and site directories to an XML format for later review.
  • New cleansitecrawl and cleansitedirectory operations

    • Unlike the removefromcrawl and removefromdirectory operations, you don’t feed a URL or list of URLs to these operations, rather they enumerate the list of URL references already established in the deep crawl list or site directorys. Using this operation makes it easy to cleanup URL references from sites that are no longer needed.
  • New adddatabase operation

    • This operation can be used to enumerate over the <contentdatabases> section of a Site Distribution Document to create Content Databases. This is extremely helpful if you are mirroring a farm with lots of content databases, and want to match database names, etc on a target system.

    • Theoretically speaking, you could run an analysis on one farm, then use SPSiteManager to create the necessary databases, then restore sites. (In the future, I hope to be collecting enough information in the Site Distribution Document, that you could basically replay and duplicate your entire farm settings if needed)

  • New includefolderinfo and enumversions switches for analysis operations

    • Folder, File, and Document Version information can now be analyzed using the –includefolderinfo and –enumversions switches for the analyze operation
  • New Primary and Secondary contacts for site collection owners are now attributes that are reported in <site> elements for analysis.

  • New enableversions, disableversions, and purgeversions operations

    • Thanks to Raymond Hung, SPSiteManager now has features to help you analysis and gather statistics on version weight in your system, as well as clean them up..

    • purgeversions allows you to purge version history across your site collections

    • enableversions/disableversions allow you to en-masse adjust version settings across your site collections.

    • For example, in the following example, notice that at the <file> element, we sum up the entire size of the file versions via versiontotalsize="59904", then each version itself has a size="" attribute including (Format edited for demonstration purposes):

    • <site url="https://www.tailspintoys.com/sites/dev1"
      databaseserver="TAILSPINSQL" databasename="Tailspin1_SITE"
      usercount="1" id="c708258f-bb33-4fb1-8ff9-0ec7e87cb5bf" webcount="1"
      storage="454517" quotaid="0" quotastoragemax="0" quotastoragewarn="0"
      readlocked="False" writelocked="False" primaryowner="TAILSPIN\krichie" secondaryowner="">
      <web url="https://www.tailspintoys.com/sites/dev1"
      subwebs="0" databaseserver="TAILSPINSQL" databasename="Tailspin1_SITE"
      title="Team Web Site" description="" lcid="1033" template="STS" uniqueperms="True"
      acecount="1" id="5cbe8682-89f0-488b-9f6c-456f6449215e" doclibcount="1" listcount="6">
      <doclibs>
      <doclib Title="Shared Documents"
      Description="Share a document with the team by adding it to this document library."
      url="Shared Documents" itemcount="7"
      Author="TAILSPIN\krichie" id="3130c0c8-b768-4b47-a6af-2ea512b113ed">
      <folder url="Shared Documents" itemcount="1">
      <file url="Shared Documents/Super Secret Development documentation on SPSiteManager.doc" size="19968"
      versioncount="3" versiontotalsize="59904">
      <version url="_vti_history/1/Shared Documents/Super Secret Development documentation on SPSiteManager.doc"
      ID="1" size="19968" Created="7/25/2006 9:43:42 PM" />
      <version url="_vti_history/2/Shared Documents/Super Secret Development documentation on SPSiteManager.doc"
      ID="2" size="19968" Created="7/25/2006 9:44:11 PM" />
      <version url="_vti_history/3/Shared Documents/Super Secret Development documentation on SPSiteManager.doc"
      ID="3" size="19968" Created="7/25/2006 9:44:39 PM" />
      </file>
      <folder url="Shared Documents/Forms" itemcount="6">
      <file url="Shared Documents/Forms/AllItems.aspx" size="7603" versioncount="0" versiontotalsize="0" />
      <file url="Shared Documents/Forms/DispForm.aspx" size="6138" versioncount="0" versiontotalsize="0" />
      <file url="Shared Documents/Forms/EditForm.aspx" size="6110" versioncount="0" versiontotalsize="0" />
      <file url="Shared Documents/Forms/template.doc" size="10752" versioncount="0" versiontotalsize="0" />
      <file url="Shared Documents/Forms/Upload.aspx" size="9142" versioncount="0" versiontotalsize="0" />
      <file url="Shared Documents/Forms/WebFldr.aspx" size="6746" versioncount="0" versiontotalsize="0" />
      </folder>
      </folder>
      </doclib>
      </doclibs>
      <lists>
      ....
      .... Removed for brevity
      ....
      </lists>
      </web>
      </site>

Some tweaks need to be made to SPUserUtil over this weekend, and it should be ready to go by the end of next week if not sooner.

I'll keep you posted!

- Keith