Cleveland SharePoint User’s Group

Presentation –  Upgrading to SharePoint 2010

I will be speaking at the Cleveland SharePoint User Group on Wednesday, July 28th.  The meeting will be from 4:00-6:30pm.  My topic will be "Upgrading to SharePoint 2010”.  Here’s a brief agenda for the talk:

  • Supported and unsupported upgrade paths
  • Choosing an upgrade approach
  • Preparing for an upgrade   
  • Overview of the upgrade process
  • Post-upgrade steps
  • Upgrade best practices

    Demos of all the major steps will be included!

    The location for the July 28th event will be the Microsoft Office Conference Room.  Address information for the office is below:

Cleveland Microsoft Office at 6050 Oak Tree Blvd.

Independence, 44131

Wednesday, July 29th from 4pm – 6:30pm

Register for the Event

Migrating to SharePoint 2010

The slides from the presentation

are available by clicking on the
image to the left.

Best Practices Conference: Aug. 24-27, 2010

BPConf125x125 Ever wondered whether the way you’ve designed, implemented and continue to support your SharePoint installation is the best way possible? Or could there be easier, better, more efficient ways to get things done?

Almost every SharePoint practitioner I’ve met has wondered the same thing at one time or another.  Well here is your chance to find out.  Join some of the brightest SharePoint experts in the business to discuss just what are SharePoint’s Best Practices.

I’ll be speaking again at this summer’s SharePoint Best Practices Conference in Washington, DC.  The Conference is from Aug. 24-26 with an extra day of post conference workshops on Aug. 27th.  I’ll be speaking on the following topics:

  • SharePoint Designer 2010: Using it Safely in an Enterprise Environment – Many companies restrict the use of SharePoint Designer 2007 to a small group of people on the professional IT staff.  Some companies prohibit its use entirely.  But many users, in all but the most locked down corporate enterprises, can and do still download and install the free product for themselves.  This has made SharePoint Designer the product that many professionals love to hate.  But SharePoint Designer 2010 is changing all that.  In this session we will demonstrate how changes in SharePoint make it possible to control who can use SharePoint Designer and what they can use it for.  We’ll also examine how changes in SharePoint Designer itself have made it safe to use without the "unghosting" of pages that was the primary problem with previous versions.  Finally, we’ll discuss a Best Practice framework that will allow the controlled use of SharePoint Designer 2010 by average Information Workers in almost every corporate environment.
  • Internet Facing SharePoint Sites: Best Practices for a Secure Design – The advent of two licensing levels for unrestricted use of SharePoint 2010 as an Internet facing environment has opened the floodgates on companies considering using SharePoint for more than a corporate Internet.  But there are still issues to be faced when constructing an Interenet facing SharePoint site.  In this talk we will review how traditional Best Practices for Internet facing Web sites should be adapted to fit a SharePoint installation.  We’ll discuss whether to install SharePoint into a DMZ or as an internal server accessible through a firewall.  We’ll also look at the complications raised by SharePoint’s dependence on Active Directory and Microsoft SQL Server.  Along the way we’ll review various designs and highlight the strengths and weaknesses of each approach.
  • SharePoint’s Branding Continuum: Customizing your Look and Feel – SharePoint 2010 has expanded the possibilities available when you want to brand your SharePoint site with a custom "Look and Feel".  You can now change color schemes by using the new THMX themes, change the basic "look and feel" using custom CSS, or radically change the layout of the page using a custom master page.  In this talk we’ll help you decide which of these is the right approach for your branding project.  We’ll discuss the technical expertise required to pull it off and look at examples of just what you can accomplish with each approach.  Along the way we’ll also discuss general "Branding" Best Practices that will preserve the availability of the whole branding continuum no matter which approach you implement.

    I hope to see you there…

Disabling the Silverlight Prompt in SharePoint 2010

Don’t take the title of this post the wrong way.  I think Silverlight is a wonderful addition to SharePoint 2010 Foundation and Server.  After all, who would suggest that they really prefer the traditional user interface in screenshot 1 below, where the top half of the screen is taken up by instructions and a prompt to load Silverlight, over the Silverlight dialog interface in screenshot 2.  Unfortunately, silverlight requires that a plugin be installed on each user’s workstation and in some environments that is either problematic or forbidden by corporate policy.  This post will explore one option for solving that problem.


Screenshot1: No Silverlight


Screenshot2: Silverlight

I’ve been working recently on building an external facing SharePoint site for a client.  When we made the site available for internal users to test it we got reports back complaining about being prompted to install the Silverlight plugin.  Some of our testers either didn’t want to install Silverlight, or were on locked down workstations where they couldn’t install Silverlight.  Unfortunately, if they didn’t install Silverlight they kept getting the nag prompt to install it every time they did something that required Silverlight.  The client wanted a way to permanently remove the nag prompt so none of the external users were ever asked to install Silverlight.  If they already had Silverlight installed that was fine, but this web site should never prompt them to do the install.

In looking for a way to disable the prompt I found that the SPWebApplication object in SharePoint contains a property called AllowSilverlightPrompt.  When this property is set to false users will not be prompted to load Silverlight if it isn’t already installed.  This setting isn’t surfaced anywhere in Central Administration that I was able to discover.  I also found that trying to set it from a Web Part or _layouts application page required raising the privileges of the impersonated user changing the setting.  So in the end I decided to write some short PowerShell scripts that would handle changing the setting.  I wrote both a script to display the current setting and one to change the setting.  Let’s look at the simple Get-SilverlightSetting.ps1 script first.

   1: $webapp= $args[0]

   2: if ($webapp){$wa =  [microsoft.sharepoint.administration.spwebapplication]::lookup("$webapp")

   3: if($wa){

   4:     $switch = $wa.allowsilverlightprompt

   5:     if ($switch){

   6:         write-host "`nSilverlight Prompt " -nonewline;

   7:         write-host "Enabled" -foregroundcolor red -nonewline;

   8:         write-host " on $wa `n";}

   9:     else{

  10:         write-host "`nSilverlight Prompt " -nonewline;

  11:         write-host "Disabled" -foregroundcolor red -nonewline;

  12:         write-host " on $wa `n";}

  13: }else{

  14:     write-host "`nInvalid URL"; 

  15:     write-host "usage: get-silverlightsetting WebApplicationURL `n"}

  16: }else{

  17:     write-host "`nusage: get-silverlightsetting WebApplicationURL `n"}

This script checks in line 2 to see if you have passed a URL for a web application as a commandline parameter and prints out usage information in line 17 if you didn’t.  Line 2 then uses the URL to find a specific SPWebApplication object.  If it can’t find one then it prints out an error message and usage information in lines 14-15.  If the web application is found it uses lines 6-8 to print that its enavled if the allowSilverlightPrompt is True.  Otherwise it uses lines 10-12 to print that its disabled.  This script just displays the current setting and makes no changes.   (Note: the `n used in the write-host lines is an escaped newline character used in the script to format the output.)

Now let’s look at the Set-SilverlightSetting.ps1 script used to turn the silverlight prompt on or off.

   1: $webapp= $args[0]

   2: $switch = $args[1]

   3: if ($webapp){

   4:     $wa =  [microsoft.sharepoint.administration.spwebapplication]::lookup("$webapp");

   5:     if($wa){

   6:         if ($switch -eq $true){

   7:             $wa.allowsilverlightprompt = $switch;$wa.update()}

   8:         elseif ($switch -eq $false){

   9:             $wa.allowsilverlightprompt = $switch;$wa.update()}

  10:         else{

  11:             write-host "`nMissing Switch";

  12:             write-host "usage: set-silverlightsetting WebApplicationURL `$True|`$False`n"}

  13:     }else{

  14:         write-host "`nInvalid URL"; 

  15:         write-host "usage: set-silverlightsetting WebApplicationURL `$True|`$False`n"}

  16: }else{

  17:     write-host "`nusage: set-silverlightsetting WebApplicationURL `$True|`$False `n"}

This script is similar to the last one, but in line 2 it collects an extra commandline parameter representing whether the prompt should be turned on or off.  If it finds the web application it uses the parameter supplied to turn the prompt on in line 7 or off in line 9.  If the prompt is invalid an error message is printed using lines 11-12.   To use the scripts simply open the SharePoint 2010 Managment Shell (be sure to remember to use run as Administrator when opening the shell) and run the following command line from wherever you have the scripts.

.\Set-SilverlightSetting http://siteaddress $False

That will turn off the Silverlight prompt for all the sites on that Web Application.  Once you’ve done that screenshot #1 from above will look like this:


I know it’s not a huge change, but it does remove the annoying yellow bar that makes it look like there is something wrong with your site if you don’t have Silverlight installed.  I hope that helps for all of you who work with SharePoint where Silverlight can’t be installed. 

For the rest of us….

I suggest you just install Silverlight and enjoy the newer interface.

June SharePoint Q&A with MVP Experts

MVP_FullColor_ForScreenDo you have tough technical questions regarding SharePoint for which you’re seeking answers? Do you want to tap into the deep knowledge of the talented Microsoft Most Valuable Professionals? Then join me and other SharePoint MVPs for answers to your questions in a live forum. So please join us and bring on the questions! These chats will cover WSS, MOSS and SharePoint 2010. Topics include setup and administration, design, development and general questions. This month there is only one time slot for the chat.  I’ll be there so bring your questions to the chat on Wednesday June 23rd.  Other MVPs who will also be attending include:

    • Amanda Perran (Canada)
    • Ben Curry
    • Bryan Phillips
    • Dan Attis
    • Daniel Larson
    • Jason Medero
    • Mike Oryszak
    • Muhanad Omar (Jordan)
    • Paul Schaeflein
    • Randy Drisgill
    • Rob Foster
    • Saifullah Shafiq Ahmed (Pakistan)
    • Serge Tremblay (Canada)
    • Shane Perran (Canada)
    • Spencer Harbar (UK)
    • Woody Windischman

Wed, June 23rd, 2010

Noon EDT (9am PDT)

Join the chat room on the day of the chat:


Twitter hastag:  #spmvpchat

Facebook Event:!/event.php?eid=125885194117000

SharePoint Team Blog post:

Using Managed Metadata in a Blank Site

A question came up in last night’s MVP Experts chat about a problem using the Enterprise Metadata and Keywords Settings in a Blank site.  We suggested various solutions like not having a Managed Metadata service application configured or the fact that the Enterprise Keywords column is not available for Metadata based navigation.  But the questioner said that his problem was that the link didn’t appear in his document library settings page like it should. For a while that had all of the MVPs stumped because none of us had seen a site that didn’t contain the setting.  I quickly created a new site based on the Blank Site template in my test image and as I expected the link was there.  So I told the questioner that we were all stumped on what might be causing the his problem. 

The Enterprise Metadata and Keywords Settings link contains two checkboxes.  The first adds a Managed Metadata column called Enterprise Keywords to the document library.  The second adds Enterprise Keywords and other Managed Metadata to your My Site profile.  You can see the two links in the screenshot below.


The questioner came back later to say that he had found a solution to his problem by activating a hidden Feature that he found in some Blog posts.  The Feature ID he used was “73EF14B1-13A9-416b-A9B5-ECECA2B0604C”.  I was happy that he found his solution, but decided that some further investigation was warranted to figure out what was happening and why?

It turns out that the Feature he was activating is Site scoped Feature called TaxonomyFieldAdded.  The Feature adds two links called Term store management and Content type publishing to the Site Settings page.  It also adds the Enterprise Metadata and Keywords Settings link to the Library Settings page.  There is also a Feature receiver assembly defined to handle events when the feature is installed, activated, deactivated, or uninstalled.  This Feature adds support for Managed metadata field support to an entire site collection.  But since the feature is hidden it leaves us with several questions:

  1. What normally activates this feature?
  2. Why was it active in the Blank site I created but not the one the questioner created?
  3. Is it safe to activate the feature manually?
  4. Why isn’t the feature activated in a Blank Site?


So I decided to take some time last night after the chat to track down answers to these questions and share them on my blog this morning.

What normally activates the TaxonomyFieldAdded Feature?

The answer to this is pretty straightforward.  There is another feature called TaxonomyFeatureStapler that “staples” the TaxonomyFieldAdded Feature to most of the site definitions used in SharePoint, including the Global site definition.  You can see the Elements file from the feature below.  The one glaring omission from the list is “STS#1”, which is of course the site definition for a Blank Site. 

<?xml version="1.0" encoding="utf-8" ?> 

<!-- Copyright (c) Microsoft Corporation. All rights reserved. -->
<Elements xmlns="">
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="GLOBAL" />

<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="STS#0" />

<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="STS#2" />

<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="MPS#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="MPS#1" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="MPS#2" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="MPS#3" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="MPS#4" />

<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="WIKI#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="BLOG#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SGS#0" />

<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="BDR#0" />

<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="OFFILE#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="OFFILE#1" />

<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPS#0" />

<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSPERS#0" />

<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSMSITE#0" />

<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSNEWS#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSNHOME#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSSITES#0" />

<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSREPORTCENTER#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SPSPORTAL#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="SRCHCEN#0" />
<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="PROFILES#0" />

<FeatureSiteTemplateAssociation Id="73EF14B1-13A9-416b-A9B5-ECECA2B0604C" TemplateName="CMSPUBLISHING#0" />


Why was it active in my Blank site but not the questioner’s?

After looking at the contents of the TaxonomyFieldAdded Feature itself and the Feature that staples it to most site definitions the answer to this question is pretty clear.  As a Site scoped feature this feature is only activated when creating a top level site for a new site collection.  The questioner had created his Blank site as the root of a new site collection while I had created mine as a sub site in a site collection with a Team site as the root.  So in my site collection the TaxonomyFieldAdded Feature was activated when I built the root Team site while the questioner never got the Feature by building their root site as a Blank site.

Is it safe to activate theTaxonomyFieldAdded Feature manually?

This question is a little harder to answer, but it would appear that the answer is yes its safe.  There are several points that lead me to believe that it is safe to activate manually:

  • The TaxonomyFeatureStapler Feature adds it to most of the other site definitions, including the Global template that everything else inherits from.  Its therefore likely that the Feature doesn’t depend on a particular site definition’s capabilities. 
  • The TaxonomyFieldAdded Feature itself is self contained and doesn’t have any additional Feature dependencies.
  • The Feature works normally in a sub-site created from the Blank Site template if the root site was created with one of the other “stapled” templates.

So it would appear to be safe to activate this hidden feature on any site collection, including those built with a Blank site at the root.  You can use the command line below to activate the feature using STSADM:

STSADM -o activatefeature -n TaxonomyFieldAdded -url <URL of Root Site>


Why isn’t the feature activated in a Blank Site based Site Collection?

I can’t give you a definitive answer for this one since I’m not on the SharePoint product team that developed the definitions.  But I think the answer can be found in the purpose of the Blank Site template.  This template is designed to be a completely blank slate to which you can add whatever you want.  Very few but the most basic Features are automatically activated when creating a Blank Site.  Even the Basic Standard and Enterprise Site Features are left deactivated.  So I think the TaxonomyFieldAdded Feature is left out for the same reason, to keep the Blank Site as bare as possible.

I hope this little exercise clears up the mystery and helps teach all of us a bit more about Features in SharePoint 2010.