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="http://www.tailspintoys.com/sites/dev1"
      ="TAILSPINSQL" databasename="Tailspin1_SITE"
      ="1" id="c708258f-bb33-4fb1-8ff9-0ec7e87cb5bf" webcount="1"
      ="454517" quotaid="0" quotastoragemax="0" quotastoragewarn="0"
      ="False" writelocked="False" primaryowner="TAILSPIN\krichie" secondaryowner="">
      web url="
      subwebs="0" databaseserver="TAILSPINSQL" databasename="Tailspin1_SITE"

      ="Team Web Site" description="" lcid="1033" template="STS" uniqueperms="True"
      ="1" id="5cbe8682-89f0-488b-9f6c-456f6449215e" doclibcount="1" listcount="6">
      doclib Title="Shared Documents"

      ="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"

      ="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"
      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"
                      ....    Removed for brevity

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

Comments (13)
  1. ilovejolly says:

    Very sorry to interrupt you.

    This problem has puzzled me so long and I don’t know who else I can ask for help except you.

    I deployed the site to Form Authentication and I want to let the users to register on the site.After the user input the information I want the system add the user account to the site group so that all go on automatically.

    I have three ideas:

    1 Put a webpart including a CreateUserWizard control into the MOSS 2007 site’s default page.

    2 Build a ASPNET website in the MOSS2007 site(something like"http://ServerName:PortNumber/_layouts/MyWeb&quot;) including a registering page with a CreateUserWizard control.

    3 Build a individual ASPNET website.

    And I put the Group.Add method in the CreateUserWizard_CreatingUser event.

    In the first or second condition,the site will display 401 error

    or turn to the Login page of the sps site directly.(when I logon the site with a appropriate account and this will be done with no problem)

    In the third condition, I can’t manage to let the user logon the site automatically because the registering page has not been  associated with the sps site.

    Any ideas?

    With many many thanks.


  2. riangely says:

    Could you tell me where I can download SPSiteManager tools? Do you provided it for free?

  3. krichie says:


    It’s located in the SharePoint Utility Suite:


    for ilovejolly, I think your issue might be due to the fact that in order to use the Add user features, you would need to run under elevated priveleges (An admin account).  It won’t work under the users context (That is, if I’m understanding your questions correctly)

  4. hasara says:

    Hi Ritchie, and thank you for your good work. I get an error message whenI run SPSitemanager and you think you are the one with all answers. would you please tell me why do I get this error?

    Collecting Site Collection Information for database: SPS005SQLSPSSQL:Sharepoi1_SITE…

    Found 318 sites in Content Database Sharepoi1_SITE

    !—–>WARNING!!!!! Error

    !—–>WARNING!!!!! Item has already been added.  Key in                                 Dictionary:"http://our_sps_URL/&quot;  Key being added: "http://our_sps_URL/&quot;

  5. hasara says:

    Sorry Ritchie, it should be like this. I believer you are the one who ha sall answers. sorry again.

  6. krichie says:


    It looks like somehow you have two site collections in your database with the same URL, which SharePoint should block you from doing in the first place.  The error is coming from SPSiteManager trying to add that duplicate URL into it’s lists of sites.

  7. hasara says:

    Thanks richie, as you have mentioned Sharepoint doesn’t let me to create two sites with the same name. in the Error message there is no site name specified. I even produced a WSSFullURLs (I got it from MS support some time ago) and I don’t see any double URL names.

    Any suggestion how can I correct this. I need this correctly beacuse I am planning to repatition My DBs and I need correct SDD.XML file.

    Any hint will be appreciated very much.

  8. krichie says:

    But you listed:

    Dictionary:"http://our_sps_URL/&quot;  Key being added: "http://our_sps_URL/&quot;

    Was that simply because you changed it for example purposes?

    Also it might help if you share the exact syntax you’re using…Are you using the -allvs switch or pointing to a specific virtual server with the -url option?

  9. hasara says:

    Richie, I am thankful for your time and effort.

    yes, I changed the URL_name for example purposes. we have only one virtual server therefore I don’t specify it. The command I wrote was:

    Spsitemanager.exe -o analyze -url http://our_sps_URL

    I’ve even replaced the http://our_sps_URL with the front-End Servers’ Virtual IP-addrress and localhost but the results were the same.

    This is the exact Error message.

           Collecting Site Collection Information for database:


    !—>WARNING!!!!! Error

    !—>WARNING!!!!! Item has already been added.  Key in dictionary: "http:// our_sps_URL /"  Key being added: "http:// our_sps_URL /"

    After this error it jumps to the next Content DB. as of today we have 4 WSS DBs plus sharepoi1_Site which was created by the SPS.

    I hope this helps.

  10. Keith Richie says:

    Thanks All! – The #1 download from the SharePoint Products and Technologies Web Component Directory is now The SharePoint Utility Suite

  11. Keith Richie says:

    A lot of folks are asking me where they can get SPSiteManager 2.2 since I noted that it was complete.&amp;nbsp;…

  12. Keith Richie says:

    The version of SPSiteManager can now be downloaded from the SharePoint Utility Suite project…

Comments are closed.

Skip to main content