My upgrade experience to SharePoint Foundation 2010

I thought I’d share with you guys what I had experienced during the upgrade from my WSS 3.0 server to SharePoint Foundation 2010 beta.

First of all, my WSS 3.0 is quite small. There’s only One site collection in there of any significance en some other site collections for testing purposes. So with this in mind I thought this would be a piece of cake.

After having made a stsadm backup of every site collection and a backup of all my SharePoint databases, I was ready to start. After having read though the deployment docs, I found out that if you are running SQL 2008, that it needs to be at least SP1. I was already running that build so I was good to go for that. I must admit that the prerequisite installer runs smoothly. It does detect your missing prerquisite software and goes out to the interent to download the missing bits. The installation of SharePoint Foundation went flawlessly. I was quickly able to start up the Products and Configuration wizard.

The upgrade wizard quickly failed, telling me that I need to install the Dutch Language Pack as it is also installed for WSS 3.0. A quick look on the web showed me that there isn’t one yet available. Hmm.. problem number 1. I had to uninstall the Dutch language Pack before I could continue. Since all my site collections are also created in Dutch, I needed to convert them to an Englich version, so I decided to do some unsupported stuff and change the  language of my site using the following SQL command on my content database:

UPDATE dbo.webs set language = 1033

Sure enough, my sites are now back in English. I ran the uninstall for the dutch WSS Language Pack and again I was good to go.

My next attempt for running teh upgrade failed as well, complaining about an incorrect SQL version. What the h***? Hadn’t I checked that already before? As it turns out you do not only need SQL 2008 SP1, but it also needs the Cumulative Update 2 for SP1 installed. So I got to download those bits, install them and voila, we are back in business.

The final attempt for the upgrade succeeded. The upgrade process ran successfully, giving no errors and I was soon presented  with the new Central Admin site.I quickly checked the look of my sites, which was as expected still the same, although if you go through to Site Settings, you immediately notice that something has changed. It isn’t quite the old version anymore.

 So all I needed to do is play aroud  with the Visual Upgrade Preview and fin out how my sites will look in their SharePoint 2010 version.

so that’s it for my first upgrade experience.

Well actually it isn’t, because after all my sites had been upgraded I decided to take a backup of my new site collections using stsadm and remove everything. I uninstalled SharePoint Foundation 2010, WSS 3.0, deleted all my SQL databases and started a clean install of SharePoint Foundation 2010. After that I restored the site collections and there I was again: up and running. I don’t like running some hybrid versions with both WSS and Foundation installed and prefer a clean install [:D]


Saving Document to SharePoint using Office 2003 resets choice metadata fields to default values

I was recently facing an issue as described in

Recap from original post:


  • A custom “Master Document” content type inherits from Document
  • The “Master Document” content type has five additional choice fields
  • There are five custom “Document Template” content types that inherit from the “Master Document” content type
  • Each of the “Document Template” content types uses a different Word document template (.dot) file
  • Each of the “Document Template” content types have been added to a document library


  1. I click on a document in the library
  2. Document opens up in Word 2003 for me to edit
  3. I make some changes and save
  4. A box pops up called “Web File Properties”. The window contains all of my custom metadata properties and the ContentType field. The ContentType field is set correctly to the current content type. The other fields are reset to their default values. This same window can apparently be opened by going to File -> Properties

This window by itself would be fine except for two reasons:

  • It includes the ContentType column
  • All of my custom metadata properties are visible but are reset to their default values instead of whatever values were previously selected. This means, every time the user wants to save the document, they have to remember what properties were tagged and set them back.


  1. Can I disable this Web File Properties box?
  2. If no… can I get the fields that show up to be populated to their correct values?
  3. If no… is there a way to disable my fields from displaying in this window?
  4. If no… is this a SharePoint page that I can modify?

***Edit with some more information***

It looks like this only happens in Office 2003 and looks like it affects Choice fields. If I create the same column as a Lookup field, it seems to work.

Edit again

Looks like if the lookup field is a multi-select field then it will not show up in the Web File Properties box at all (single select lookups still work).

edit 10/14/2009

Link to the KB Article mentioned below by Brenda:

My Solution:

Of Course the suggested hotfix, which in fact is the June Cumulative Update for WSS did not fix my issue, but I did find a solution at the end.

What really happens when you call the Web File Properties box is that your client will download 3 javascript files from the server:  bform.js, core.js and init.js. You can check this by by opening up the document library causing the issue and clearing your temporary internet files at that time. When you now call the Web File Properties in Word 2003 through File –> Properties, you will notice these 3 script files being downloadin in your temprary internet files folder.

On the SharePoint front-end servers, you can find these files in the 12-hive\Template\Layouts\<LCID> folders, where you have  to replace <LCID> with your language codes installed (1033, English; 1043, Dutch; …. you get the picture, right?)

So the problem is most likely caused by one of those javascript files. Now we have had the issue since we had installed SP2 and the June Cumulative Update. So I decided to restore these 3 script files and play aroun with these files for a while.

As it happens, my problem went away by replacing the bform.js file with a pre-SP2 version and clearing my

So if your issue does not get resolved by the suggested method of Microsoft, which is installing the latest Cumulative Update, then try restoring a previous version of this file and remember that you will need to clear this file from your client’s Temporary Internet Folder to force a download of the latest version from the server.


WSS and MOSS Language Pack Slipstreaming by Joe Rodgers

This question was wondering around in my head last week after having seen a slipstreamed distribution at one of my customers. Previously having been told it was not possible to slipstream language packs, I had my doubts and went hunting for some information.

I found the answer on Joe Rodger’s blog

He wrote: 

In case you didn’t know, you can slipstream server pack 1 (or the latest SP) of a language pack into the RTM service pack installation point, creating a single install point for each language pack include includes SP1.  You may think, big deal, I’m saving one installation.  That’s true, but if you have a a medium or large farm, it cuts the number of items you need to install by half, which can add up over time, especially if you have a dev and QA/staging environment you keep in sync.  Unfortunately, you can only do this per language, so you still need to do one install per language, but every little bit helps.

 For WSS Language Packs (example here is for the Spanish language pack):

  1. Download the WSS Language Pack RTM and SP1 packages for the languages you are installing to C:/WSS_LPs/Spanish.
  2. Extract the RTM package to a folder using the following command:

    C:\WSS_LPs\Spanish>SharePointLanguagePack.exe /extract:C:\WSS_LPs\Spanish\

  3. Extract the SP1 package to the UPDATES folder inside your language folder, using the following command:

    C:\WSS_LPs\Spanish>wssv3lpsp1-kb936988-x86-fullfile-es-es.exe /extract:C:\WSS_LPs\Spanish\Updates

  4. Install the language pack with SP1 by executing C:\WSS_LPs\Spanish\setup.exe


For MOSS Language Packs (example is for the Spanish language pack):

  1. Download the MOSS Language Pack RTM and SP1 packages for the languages you are installing to C:\MOSS_LPs/Spanish.
  2. Mount the ServerLanguagePack.img file using a virtual CD drive application
  3. Copy all the contents from the mounted volume to C:\MOSS_LPs\Spanish\
  4. Extract the SP1 package to the UPDATES folder inside of your language folder, using the following command:

    C:\MOSSLanguagePacks\Spanish>officeserverlp2007sp1-kb936984-x64-fullfile-es-es.exe /extract:C:\MOSS_LPs\Spanish\Updates

  5. Install the language pack with SP1 by executing C:\MOSS_LPs\Spanish\setup.exe

List All Groups and All users of site collection on a single page

Yes, you have been asked this question before haven’t you?

“Dear Admin, can you send me a complete list of all the users in the Visitors group of my site collection, because there are so many in them and I am not able to export to Excel……”

Well, I finally got sick of either copy/pasting the info from the People and Groups page or exporting all users using a powershell script, that I took the time to create my own aspx page that will display that directly.

the code for this page looks like this:

<%@ Assembly Name=”Microsoft.SharePoint, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c”%>
@ Page Language=”C#” MasterPageFile=”~/_layouts/application.master” Inherits=”Microsoft.SharePoint.WebControls.LayoutsPageBase” %>
@ Import Namespace=”Microsoft.SharePoint” %>

script runat=”server”>
   protected override void OnLoad(EventArgs e) {
using (SPWeb thisWeb = this.Web)
string output = “”;
           output +=
“<table style=\”width=100%\”>”;
           foreach (SPGroup group in thisWeb.Groups)
output += “<tr><td colspan=\”3\”><strong>” + group.Name + “</strong><td></tr>”;
               int i = 0;
if (group.Users.Count > 0)
foreach (SPUser user in group.Users)
                          output +=
output += “<td>” + user.Name + “</td>”;
output += “<td>” + user.Email + “</td>”;
output += “<td>” + user.LoginName + “</td>”;
                          output += “</tr>”;
output += “<tr><td colspan=\”3\”>Group is empty<td></tr>”;
              output +=
“<tr><td colspan=\”3\”>&nbsp;<td></tr>”;
         output +=
         lblUsers.Text = output;
asp:Content ID=”Main” runat=”server” contentplaceholderid=”PlaceHolderMain” >
<p>Site Groups and Users</p>
<asp:Label ID=”lblUsers” runat=”server” />
asp:Content ID=”PageTitle” runat=”server” contentplaceholderid=”PlaceHolderPageTitle” >
Site Groups and Users
asp:Content ID=”PageTitleInTitleArea” runat=”server” contentplaceholderid=”PlaceHolderPageTitleInTitleArea” >
Site Groups and Users

Now save this code into an aspx page and then copy that page to the 12-hive\TEMPLATE\Layouts folder. In my case I named the file Allusers.aspx, so now I f I am in a specific site collection, I can simply call upon the page using _layouts/allusers.aspx and have my listing of all the groups with all the users in a single page.

It is so simple, but never really had the time or desire to create such a page….

Stay tuned on my blog, as I  am almost ready with my tool for generating a complete report of a SharePoint farm in a nice html document….

How to upgrade to SharePoint 2007 SP2 – Step by Step by Chris Givens

I was reading trhough my blogroll today and noticed a very complete blog post for deploying SP2 in a large MOSS environment. It describes optimized steps for installing SP2 with lesser downtime as you would have by just installing it. Chris Givens is a SharePoint trainer. His Advanced SharePoint 2007 Operations course looks very interesting. Just a pitty that you have to go all the way to Seattle for it…. For us European trash guys, it is hard to defend that to our manager, right? 

So please, read through this post as it may help you with your upgrade of your farm if you have large databases.

This is the original content of Chris’s Post that can be found at

 built this lab for the latest update to my Advanced SharePoint Operations course.  But I felt like it would benefit the entire community…so here you go!  Good luck!

Module #25: Updating The Farm Lab #01


Course:                SharePoint 2007 Operations

Estimated Time to Complete:  45 minutes


·         Upgrade to SP2

Operating Notes:  

·         You will need sharepoint2007 and svr-sp2 images

·         Assumes that you are using SQL Server 2000/2005/2008 for your database server (Not Internal DB engine)


·         None


Overview:         Learn the steps of preparing your farm for upgrade and then performing the upgrade.

Exercise 1 – Prep the Farm

Purpose:         There are a series of recommend steps that will speed up the upgrade of your SharePoint Farm.  Following these somewhat simple suggestions will get you through the process much faster!  Rebuilding indexes will ensure that the upgrade process will modify the database schemas and records as quick as possible.  Truncating the log files will ensure that your backup and restores will run quickly.  Detaching

A farm ready for upgrade

Task 1 – Clean up the databases (rebuild indexes)

  1. Open SQL Server Management Studio
  2. Connect to your sharepoint database server
  3. Click “New Query”
  4. Run (press Atl-X) the following command on each SharePoint database (set the dropdown for each):
    • WSS_Content*
    • SharePoint_Config*

SELECT  object_id, index_id, avg_fragmentation_in_percent, page_count
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL , NULL)
order by avg_fragmentation_in_percent desc

    DECLARE @objectid int
    DECLARE @indexid int
    DECLARE @command varchar(8000)
    DECLARE @baseCommand varchar(8000)
    DECLARE @schemaname sysname
    DECLARE @objectname sysname
    DECLARE @indexname sysname
    DECLARE @currentDdbId int

    SELECT @currentDdbId = DB_ID()

    PRINT CONVERT(nvarchar, GETDATE(), 126) + ': Starting'


       sys.indexes AS i
        sys.objects AS o
        i.object_id = o.object_id
        i.index_id > 0 AND
        o.type = 'U'

    OPEN indexesToDefrag
    -- Loop through the partitions.

        -- Lookup the name of the index
            @schemaname =
            sys.objects AS o
            sys.schemas AS s
            s.schema_id = o.schema_id
            o.object_id = @objectid

        PRINT CONVERT(nvarchar, GETDATE(), 126) + ': ' + @schemaname + '.' + @indexname + ' is now being rebuilt.'

        -- Fragmentation is bad enough that it will be more efficient to rebuild the index

        SELECT @baseCommand =
            ' ALTER INDEX ' +
                @indexname +
            ' ON ' +
                @schemaname + '.' + object_name(@objectid) +
            ' REBUILD WITH (FILLFACTOR = 80, ONLINE = '

        -- Use dynamic sql so this compiles in SQL 2000
        SELECT @command =
            ' BEGIN TRY ' +
               @baseCommand + 'ON) ' +
            ' END TRY ' +
            ' BEGIN CATCH ' +
               -- Indices with image-like columns can't be rebuild online, so go offline

               @baseCommand + 'OFF) ' +
            ' END CATCH '

        PRINT CONVERT(nvarchar, GETDATE(), 126) + ': Rebuilding'
        EXEC (@command)
        PRINT CONVERT(nvarchar, GETDATE(), 126) + ': Done'

        FETCH NEXT FROM indexesToDefrag INTO @objectid, @indexid, @indexname

    CLOSE indexesToDefrag
    DEALLOCATE indexesToDefrag

SELECT  object_id, index_id, avg_fragmentation_in_percent, page_count
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL , NULL)
order by avg_fragmentation_in_percent desc



Task 2 – Check disk space on web and database servers

  1. On each web front end, open Explorer to “My Computer”, record your disk space.  Make sure you have at least 300MB free for install of files
  2. On each database server, open Explorer to “My Computer”, record your disk space.  Make sure that you have enough space to make a copy of your largest content database.
    • Example:  if you have three databases of size 10GB, 20GB and 30 GB.  Make sure you have at least 30GB of free space on your DB server.

Task 3 – Backup the databases (truncate and backup)

  1. Create a folder called “D:\Backups”, ensure that you have enough disk space to save all your backups to this location (add the size of each database to determine how much you will need)
  2. Run the following commands TWICE for each database (this will shrink, backup and truncate your database and log files):
    • WSS_Content*
    • WSS_Search*
    • SharePoint_Config
    • SharedServices*

use WSS_Content

dbcc shrinkfile ('WSS_Content')
dbcc shrinkfile ('WSS_Content_log')

backup database WSS_Content to disk = 'D:\backups\wss_content.bak'
backup log WSS_Content to disk = 'D:\backups\wss_content.bak'

dbcc shrinkfile ('WSS_Content')
dbcc shrinkfile ('WSS_Content_log')

Task 3 – Evaluate Database Size

  1. If you designed your farm wrong, it is possible that you have a single web application with a single content database that contains all your content.  This type of setup normally means you have a database that is going to get large very quickly and backup and restore operations, as well as future upgrades could take a considerable amount of time.  It is suggested that you create more content databases and partition your site collections across multiple databases.
  2. You have two options to do this:
    • Create another content database in the web application
    • Create another web application with a new content database
  3. Create a new site collection in your port 100 site
    • Open “Central Administration”
    • Click “Application management”
    • Click “Create Site collection”, ensure that you are on port 100 web application
    • For Title, type “SC2”
    • For URL, select “/sites/”, and type “SC2”
    • For owner, type “administrator”
    • Click “Ok”
  4. You will now have two site collections in your content database, you can use the following commands to backup a site collection, delete it and restore to a different web application (and hence a new content database):

stsadm -o backup -url http://sharepoint2007:100/sites/Sc2 -filename c:\backup.dat –overwrite

stsadm –o deletesite -url http://sharepoint2007:100/sites/Sc2

stsadm -o restore -url http://sharepoint2007:777/sites/sc2 -filename c:\backup.dat

  1. You can continue this process to load balance your site collections across multiple content databases and in essence distribute your database sizes so that upgrading will not be so painful.
    • NOTE: you can only use a url once in a web application

Task 4 – Detach the content databases

  1. Open the “Central Administration” site
  2. Click “Application Management”
  3. For each web application in your web application list (EXCEPT central administration), do the following steps. NOTE: Click “Web Application List” to see them all:

    • Click “Content Databases”

    • You will see a list of content databases for the web application
    • Click the database name

    • Click the “Remove content database” check box
    • Click “Ok”
    • Click “Ok”

    • Click “Ok”
    • You should now see that the web application has no content databases:

  1. Again, do this for every web application EXCEPT the Central administration web application!
    • NOTE: you may have several content databases…this may be a tedious task so you should likely follow step 5
  2. You can also create a command line utility to do this:
    • Open Visual Studio
    • Click “File->New Project”
    • Select “Console Application”
    • For name, type “ContentDetachAttachScript”
    • Copy the following into the program.cs file:

using System;
using System.IO;
using System.Collections.Generic;
using System.Text;

using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;

namespace ConsoleApplication1
    class Program
        static void Main(string[] args)
            TextWriter tw = File.CreateText("C:/detachall.bat");
            TextWriter tw2 = File.CreateText("C:/attachall.bat");

            SPFarm farm = SPFarm.Local;
            SPAlternateUrlCollectionManager mgr = farm.AlternateUrlCollections;                                             

            foreach (SPAlternateUrlCollection altColl in mgr )
                foreach (SPAlternateUrl url in altColl)
                    if (url.UrlZone == SPUrlZone.Default)
                            SPSite site = new SPSite(url.IncomingUrl);


                            SPWeb root = site.RootWeb;
                            if (root.WebTemplate != "CENTRALADMIN")
                                //get the web application for the site collection
                                SPWebApplication webApp = site.WebApplication;

                                foreach (SPContentDatabase cd in webApp.ContentDatabases)
                                    tw.WriteLine("stsadm -o deletecontentdb -url " + url.IncomingUrl + " -databasename " + cd.Name + " -databaseserver " + cd.Server);

                                    tw2.WriteLine("stsadm -o addcontentdb -url " + url.IncomingUrl + " -databasename " + cd.Name + " -databaseserver " + cd.Server);

                                    //Console.WriteLine("Content Database [" + cd.Name + "] was detached");


                        catch (Exception ex)


            Console.WriteLine("Press enter to close");


    • Compile the program, press F6
    • Copy the executable to your SharePoint Farm
    • Run the executable
    • Open the C:\detachall.bat file , this file will contain all the stsadm commands that will detach all your content databases
    • Open the C:\attachall.bat file, this contains all the stsadm commands to reattach your databases (NOTE: you should attach one at a time in the later steps).

Task 5 – Backup important files

  1. If running in a virtual environment, backup your front end webservers main image file.  After doing this, you may skip the rest of these steps and head straight for upgrade!!!
  2. Web.config files for all web applications (located in WSS directory of wwwroot)
  3. Core Site definitions that were modified  ( located in 12 hive template/sitetemplates directory)
  4. Any customizations including:
    • Changes made to core.css
    • Changes made to javascript files
    • Pretty much anything you changed in the 12 hive…

Task 6 – Upgrade the servers (WSS)

  1. Stop IIS
    • Open a command prompt, run “iisreset /stop”
  2. Run “d:\lab files\25_Lab01\ wssv3sp2-kb953338-x86-fullfile-en-us.exe”
  3. Click “Click here to accept…” check box
  4. Click “Continue”
  5. The service pack should start…:

  1. When the WSS update finishes, the Configuration Wizard will start:

  1. Click “Next”

  1. Click “Yes”

  1. Click “Next”

  1. Click “Ok” at the information popup, the farm will start to configure itself.  This includes:
    • Updating DLLs (gac)
    • Creating/Updating registry keys
    • Creating/Updating 12 hive information
    • Updating web.config files
    • Installing new features
  2. The install should finish:

  1. Repeat the above steps for the svr-sp2 image

Task 7 – Upgrade the servers (MOSS)

  1. Stop IIS
    • Open a command prompt, run “iisreset /stop”
  2. Run “d:\lab files\25_Lab01\ officeserver2007sp2-kb953334-x86-fullfile-en-us.exe”

  1. Click “Click here to accept…” check box
  2. Click “Continue”
  3. The service pack should start…:

  1. When the MOSS update finishes, the Configuration Wizard will start:

  1. Click “Next”

  1. Click “Yes”

  1. Click “Next”

  1. Click “Ok” at the information popup, the farm will start to configure itself.  This includes:
    • Updating DLLs (gac)
    • Creating/Updating registry keys
    • Creating/Updating 12 hive information
    • Updating web.config files
    • Installing new features
  2. The install should finish:

  1. Repeat the above steps for the svr-sp2 image

Task 8 – Reattach the content databases

  1. Open the C:\attachall.bat file, run the attach command for each content database that you detached
  2. SharePoint will upgrade the database as it attaches it.

Task 9 – Verify Install

1.       Open the upgrade.log file (in 12 hive LOGS directory)

o    Look for “Finished upgrading SPFarm Name=<Name of Configuration Database>”

o    Look for “In-place upgrade session finishes. Root object = SPFarm=<Name of Configuration Database>, recursive = True. 0 errors and 0 warnings encountered.”

2.       If the above entries DO NOT exist, look for all instances of

o    “fail”

o    “error”

3.       Check version number on:

o    Owssvr.dll (in 12 hive isapi directory) should be “12.0.6421.1000”



o    Registry “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0”


o    Central administration

4.       Check version of the sharepoint databases:

o    Run the following sql command on each database:

select * from versions
order by timestamp desc


o    You should get “”


5.       On Central Administration, click “Operations”

o    Click “Servers In Farm”

o    The version for the farm and servers should be “”


Task 10 – Check for SharePoint 2010 readiness

1.       Run the following command:

stsadm –o preupgradecheck


2.       Review the PreUpgradeCheck-*.htm file in the 12 hive logs directory (it should open in a browser window

3.       You should watch out for the following items:

o    The above command should be run on all Web Front end servers to ensure they are identical

o    You should review the Site Definition information for any non “Internal” site definitions, these will need to have an upgrade definition file.  Your developers will need to build this file for SP 2010

o    If you have language packs installed, you will need to install the latest version when SP 2010 comes out

o    Look for any referenced and missing features.  Either install them or delete the references to them

o    Depending on the type of upgrade to SP 2010 you do, you many need to plan for URL changes in your sites

o    Review the Lists that have more than the recommends number of items.  These could slow the migration process to SP 2010.  Consider removing the list or deleting items to shrink the list size

o    Review any Custom Field types that have been added to your Farm.  CAML is not used in SP2010 and each of them will need to be re-developed with XSLT in mind.

o    If you are running on 32 bit OS and Server 2003, you will need to start planning for migration to a 64bit server 2008 environment to run SP 2010

Codeplex SPIEFolder

Pfff, it’s been a while again since my last post. I promise you guys that I will have some time soon to write more. Anyway…

This post to write about a cool tool that my colleague Pascal Rocheteau found today: SPIEFolder from codeplex.

Project Description
Allows you to either Import a file system folder (And all files and subfolders) into a SharePoint Document Library, and also export a SharePoint Document Library to the file system for
WSS 2.0/SPS2003 or WSS 3.0/MOSS 2007. This tool completely replicates the document libraries folder hierarchy to the file system when exporting, and replicates the folder hierarchy from the file system to the document library when importing.

Sounds really cool and usefull. Thanks Pascal for this


How to find all the customized master pages in a site collection

I got this question today from one of my collegues and needed to find the answer to it. Why did I get this question? Well one of our developper teqms provided a new solution to deploy that replaces the default master pages and the update did not show any difference after deployment. therefore we suspected that the master pages had somehow be customized which causes this behaviour.

My first hunch for finding the answer was SharePoint Designer and my favourite Microsoft Premier Support Engineer confirmed with the following article: Track Customized Master Pages

Basically you need to open the site collection using SharePoint Designer and run the Customized Pages report and apply a filter to show only the customized master pages

Below is the information that describes how to do this as grabbed from the Microsoft article

Run the Customized Pages report

For both Office SharePoint Server 2007 and Windows SharePoint Services 3.0, data for the reports generated by Microsoft Office SharePoint Designer 2007 is saved on the server on which the site is hosted. Server administrators can grant or deny access to these reports. If the reports generated come back empty, contact your server administrator for assistance. You must have at least Web Designer permissions on the server to open the site and run reports.

When you are working with an Office SharePoint Server 2007 or Windows SharePoint Services 3.0 site, you can easily use Office SharePoint Designer 2007 to run site reports that collect a variety of information about your site’s health, usage, and potential problems. To run a Customized Pages report:

  1. Open the Web site for which you want to run the report in Office SharePoint Designer 2007.
  2. On the Site menu, point to Reports, point to Shared Content, and then click Customized Pages.The report opens with all of the pages in the site listed, and the Customized column indicates whether content has been customized for that page. Note   A page is considered customized only if it is included in the original site definition. New pages created from a master page, new blank ASPX pages, and custom list forms that you create are not considered customized pages.


Filter the report to show only master pages

After you run the Customized Pages report, you may want to narrow it down to include only those pages in the site that are master pages, as shown in the following illustration.

  • To limit the results to master pages only, click the arrow next to the Type column heading, and then click master.

Filter the report to show only customized master pages

You can narrow the results even further to list only customized master pages, as shown in the following illustration.

  1. Click the arrow next to the Type column heading, and then click master.
  2. Click the arrow next to the Customized column heading, and then click Yes.

The report now lists only master pages that have been customized.

 Note   To remove any filter, click the arrow next to the column heading, and then click (All).

SWAT 2007

This is another one of those tools you should have on your SharePoint farm(s). Although the tool is aimed to designers of SharePoint solutions, I like to use it for deploying solutions to different or additional web applications without having to retract it first.

The official description, grabbed from the website states the following:

SharePoint Work Acceleration Toolkit (SWAT) is a windows based utility aimed at simplifying and accelerating the creation and testing of SharePoint Solutions. With a whole host of time saving capabilities and planned integration with Universal SharePoint Manager 2007, you’ll never want to take on SharePoint without it again.

SWAT Features and Capabilities:
Here is a short list of just some of the things SWAT can do. For a complete overview checkout the SWAT User Guide.

  • Site Diagramming
    • Show a Site Structure as a Diagram
    • Save a Site Structure Diagram as a Image
    • Save a Site Structure Diagram as a SVG file (for importing into Visio)
    • Print a Site Diagram
    • Drag and Drop the design of a Site Structure
  • Generate Test Data and Sites
    • Generate Random Sites for Testing
    • Auto Populate Lists/Libraries with Test Data (including Documents)
  • Work with SharePoint Logs
    • View SharePoint Log Files in a preview window
    • Group and Filter Log file entries
  • Work with Sites
    • Show a Site Structure in a Tree View (including security inheritence)
    • Create a Site Collection
    • Export and Import Site Structures
    • Backup and Restore Site Collections
    • View and Interact with site objects (Lists, Users, Roles, Features, Events, etc..)
    • Delete Sites and entire Site Structures
  • Work with SharePoint Features
    • View Feature Status in Farm and on a Site
    • Install and Uninstall Features
    • Activate and Deactivate Features
  • Work with SharePoint Solution Packages
    • Install and Deploy Solution Packages
    • View Solution Deployment Locations (Servers and Web Apps)
    • Deploy, Retract and Delete Solutions
  • Work with SharePoint Jobs
    • View Job Status
    • Add and Schedule Jobs
    • Enable and Disable Jobs
    • Force Execution of Jobs
  • Work with Event Receviers
    • Install Event Receivers for Sites and Lists
    • View and Manage Event Receivers
    • Delete Event Receivers
  • Work with Web Parts
    • Add (Deploy) Web Parts to multiple sites/pages
    • Replicate Web Parts
    • Delete Web Parts from multiple sites/pages

…and much much more!   These are just some of the features available in the SharePoint Work Acceleration Toolkit.

And now for the good part of this tool: ….. IT’S FREE

Read all about it here

SPS2003 Lock site using command line: SPSiteManager

yeah yeah, if you are used to working with MOSS, then you will probably tell me to use the command stsadm -o setsitelock -url <url> -lock readonly or something like that.

Unfortunately back in the SharePoint Portal Server 2003 and WSS 2.0 days, this operation was no yet available with stsadm…..along with a lot of other usefull commands

I needed to lock the sps 2003 sites in a gradual upgrade project to MOSS. Of course I want to script the complete migration, which also includes locking the SPS site before starting the upgrade.

Searching the web, I found my way to the SPSiteManager project on Codeplex 

In addition to the opeartions I was looking for, you also get the following operations:




Enumerate all Content Database information and generate a Site Distribution Document


Re-partition sites to different content databases


Enumerate Site Collections


Enumerate URL references from the list of sites to crawl


Enumerate URL references from a portals site directory


Enumerate Content Databases


Backup site(s)


Restore site(s)


Delete site(s)


Add content databases to a virtual server


Add site(s) to list of sites to crawl for SharePoint Portal Server 2003


Remove site(s) to list of sites to crawl for SharePoint Portal Server 2003


Add site(s) to Portal Server 2003 Site Directories


Remove site(s) to Portal Server 2003 Site Directories


Lock site(s)


Unlock site(s)


Reset quotas on site(s)


Purge document versions from document libraries

Although these operations look a lot like the ones we get with MOSS, nowadays, they actually are much better. For example the operation to backup a site will actually also lock the site for read/write for you and unlock it when done. So before using this tool with all the operations, be sure to check out the well written manual that is included explaining each operation.


Short overview of MOSS new installation order with Language Packs

Just wanted to add this to my blog, because I have been asked this twice already last week. The order below is the one I use when I have to install Language Packs. Basically I prefer installing in the same order as the updates have been released. In Belgium we are customed to install 3 languages: English, Dutch and French. Hence this post

First of all install the prerequisite software for Windows Server 2003:

IIS 6.0
Asp.Net 2.0
.Net Framework 3.0

Then start the installation of MOSS and updates:

Install MOSS (English and without SP1)
Install WSS language pack French x86 x64
Install MOSS language pack French x86 x64
Install WSS language pack Dutch x86 x64
Install MOSS language pack Dutch x86 x64
install WSS 3.0 SP1  x86 x64
install Moss 2007 SP1 x86 x64
Install WSS SP1 language pack French x86 x64
Install MOSS SP1 language pack French x86 x64
Install WSS SP1 language pack Dutch x86 x64
Install MOSS SP1 language pack Dutch x86 x64
Install Post-SP1 WSS Infrastructure update x86 x64
Install Post-SP1 MOSS infrastructure update x86 x64

I have added the link to the MS download site for each individual update as requested by a colleague of mine.

Remember that you do not need the Configuration Wizard at each step. Some of the updates automatically start the wizard. Just simply cancel it out and continue installing the rest of the updates. What I always try to keep in mind is to install the updates for WSS first and then continue withthe MOSS counterpart.

Another little thing to remember is that you can get the language packs form the Microsoft download site for free.