SharePoint Stump the Panel

There’s a new forum over at EndUserSharePoint.com called Stump the Panel.  The goal is to answer questions from real end users — no fancy coding allowed, just "out of the box" functionality available through the UI (they acknowledge that a little XSLT is OK).

If you like brain teasers of the SharePoint variety, check it out. You might enjoy your visit and help someone as well.

STSADM Command Extensions for SharePoint (ApplyMaster Example)

My colleague Mauro Cardarelli posted a simple code snippet yesterday to determine the GUID for an SSP.  It worked, and he accomplished what he wanted to accomplish, but my first thought was: STSADM command extension.

If you’ve worked with SharePoint much at all on the server, you’re very familiar with STSADM.  It’s the command line tool that lets you interact with SharePoint.  The Technet reference for STSADM commands shows you what is available “out of the box”.  (The MOSS poster is here, and the WSS poster is here.)

Mauro’s task is the sort of thing that is an excellent candidate for an STSADM extension.  This would make it a part of your toolkit and available the next time you need it.

If you want to understand the basics behind creating STSADM command extensions, check out this Microsoft article: http://msdn.microsoft.com/en-us/library/bb862109.aspx.  If you want to see what you really can do, though, Gary Lapointe is the master: http://stsadm.blogspot.com/2007/08/stsadm-commands_09.html

I used Gary’s gl-applytheme command as the basis for another command that I needed to create to deploy a new master page to 250+ Site Collections.  The core code is listed below.  To apply my new master page across all of the Site Collections, I simply deployed my custom applymaster command to the server and then ran a batch file which contained a line for each Site Collection.


 /// <summary>
 /// Applies the master to web.
 /// </summary>
 ///
<param name="master">The master.</param>
 ///
<param name="url">The URL.</param>
 ///
<param name="recurse">if set to <c>true</c> [recurse].</param>
 internal static void ApplyMasterToWeb(string master, string url, bool recurse)
        {
            using (SPSite site = new SPSite(url))
            using (SPWeb web = site.AllWebs[Utilities.GetServerRelUrlFromFullUrl(url)])
            {
                ApplyMasterToWeb(master, web, recurse);
            }
        }

        /// <summary>
 /// Applies the master to web.
 /// </summary>
 ///
<param name="master">The master.</param>
 ///
<param name="web">The web.</param>
 ///
<param name="recurse">if set to <c>true</c> [recurse].</param>
 internal static void ApplyMasterToWeb(string master, SPWeb web, bool recurse)
        {
            web.MasterUrl = master;
            web.CustomMasterUrl = master;
            web.Update();

            if (recurse)
            {
                foreach (SPWeb subWeb in web.Webs)
                {
                    try
                    {
                        ApplyMasterToWeb(master, subWeb, recurse);
                    }
                    finally
                    {
                        subWeb.Dispose();
                    }
                }

            }
        }

Search Logs: A Valuable Source of Information

Do you regularly look at your search logs?  If you don’t, you are missing a significantly valuable source of information.  The search logs tell you what people really want, not what you’ve provided them "easy" access to.

Some insights you will be able to glean include:

  • Ways to tailor your navigation to provide access to frequently required content with a minimum number of clicks
  • Useful thesaurus entries for commonly searched terms which have different names across your organization (e.g., Marketing = Marketing Department = External Marketing, or for a product, [Product Code] = [Product Name1] = [Product Name2])
  • Uncover content areas which you ought to be providing but aren’t currently

The goal isn’t necessarily to eliminate the use of search (some folks will always turn to search, even if what they want is right in front of them), but to tighten up your information architecture on an ongoing basis.  Information architecture should never be "done"; if you aren’t continually making adjustments, it will go stale fast.

NOTE (added 7/28): I didn’t have access to a MOSS instance when I posted this, but the pages you can go to in Central Administration to look at your search logs are in Shared Services (SSP) Administration:

  • Search Results Report — http://[SSP Administration server port]/ssp/admin/_layouts/SpUsageSspSearchResults.aspx
  • Search Queries Report — http://[SSP Administration server port]/ssp/admin/_layouts/SpUsageSspSearchQueries.aspx

Both of these reports can be exported for further analysis.

Availability of Infrastructure Updates for SharePoint

Last week, Microsoft announced three updates which affect SharePoint Server 2007, Windows SharePoint Services 3.0, Project Server 2007, Search Server 2008, Search Server 2008 Express and Project Professional 2007.

These updates are explained on the Microsoft SharePoint Team Blog: Announcing: Availability of Infrastructure Updates.

The Infrastructure Update for Microsoft Office Servers contains the new Enterprise Search features that were shipped in Search Server 2008 and Search Server 2008 Express that were are not already in SharePoint Server 2007; this includes Federated Search capability, a unified administration dashboard and several Search core platform performance updates.  Read more about the new Search features here.

There are several Content Deployment updates included in both the Infrastructure Update for Microsoft Office Servers and the Infrastructure Update for Windows SharePoint Services 3.0. These updates address many of the top customer reported issues with Content Deployment.  Read more about the Content Deployment updates here.

The Infrastructure Update for Microsoft Office Servers (KB951297) and the Infrastructure Update for Microsoft Office Project 2007 (KB951547) include several usability and performance updates for Project Server 2007 and Project Professional 2007 in addition to addressing the top customer reported issues.  Read more about the Project Server and Project Professional updates here and in this White Paper.

All three updates contain fixes and product performance updates driven by customer feedback which have resulted in significant platform performance improvements in several areas.  There has also been a focus on several core platform components, including improvements to upgrade, future patching and servicing, several targeted updates for workflow, the Business Data Catalog and inter-farm server authentication with Kerberos.  For more detailed information please read the KB articles listed further on in this post.

We strongly recommend that you install the updates that apply to you as soon as your patching and maintenance schedules permit.

The updates can be downloaded from the links below:

Infrastructure Update for Microsoft Office Servers (KB951297)x86

Infrastructure Update for Microsoft Office Servers (KB951297)x64

Infrastructure Update for Windows SharePoint Services 3.0 (KB951695)x86

Infrastructure Update for Windows SharePoint Services 3.0 (KB951695)x64

Infrastructure Update for Microsoft Office Project 2007 (KB951547)x86

Microsoft Search Server Express 2008

There’s a post over the SharePoint Solutions Blog which describes the benefits of Microsoft’s new Search Server Express 2008 well. One key benefit: You can search across Site Collections in WSS!

An excerpt:

So the scenario is that you have deployed WSS in your company and you do not have a need for most of the MOSS features at this time (personalization, records management, My Sites, etc.). Using WSS, you have setup a separate site collection for each department in the company. The HR department wants to know why they can’t search for information in the Marketing department directly from their own site without having to navigate to the Marketing site. You explain to them: "You are not in the same site collection. Remember when you guys had asked that you want your own database because of the sensitivity of your data… well, we had to give you your own site collection. WSS does not support search across site collections". That doesn’t go well with the folks in the HR department and you are scrambling to find a solution.

See Introducing Microsoft Search Server 2008 Express for the full details.

System Requirements

Search Server Express requires the Windows Server 2003 or 2008 operating system.

  • Processor: 2.5 gigahertz (GHz) (minimum)

  • Memory: 2 gigabytes (GB) RAM (minimum)

  • Operating System: Any of the following editions of the Windows Server 2003 or newer operating system with the most recent service packs: Standard Edition, Enterprise Edition, Datacenter Edition, and Web Edition.

  • Hard disk: NTFS-formatted partition with 3 GB of free space (minimum)

  • Microsoft .NET Framework 3.0 with ASP.NET 2.0 enabled

  • Windows SharePoint Services 3.0

  • Microsoft Windows Workflow Foundation Runtime Components

  • Note: Search Server 2008 Express can be installed on one computer only. It supports an unlimited number of Web front-end servers, but only one application server.