Cannot access User Profile Service Application after provisioning Synchronization Service

If you are having problems accessing the User Profile Service Application after you provision the User Profile Synchronization Service, such as the receiving the following rather unhelpful Correlation ID when trying to access the User Profile Service Application :

The answer is nice and easy – just perform an IIS Reset.  For some reason if you have Central Administration on the same server, you will not be able to access the User Profile Service Application management area until you do an IISreset.  This is one of the steps mentioned in Spence Harbar‘s excellent article on setting up the User Profile Synchronization but it still manages to catch me out from time to time.

In the event you are having other problems with User Profile Synchronization I recommend you visit the blog post I mentioned earlier, it is effectively the bible for setting up User Profile Synch.

Enabling “Fuzzy Search” for SharePoint Server 2010

I like a challenge and one of our consultants really asked me for a hard one last week – implementing “Fuzzy Search” on SharePoint 2010.  This was not actually something I’d ever heard of before, so it took quite a bit of research before I was able to figure out what it was and how to implement it.  “Fuzzy Search” is a search that returns results not distinctly asked for when performing a query.  For instance searching for “Jon” should return results for “John”, “Jon” and perhaps even “Jean”.

The first clue from the consultant was “I think it needs the Speech platform installed on the server”.  I actually immediately dismissed this as it sounded pretty unlikely, why on earth would SharePoint Server 2010 require a speech server installable?

Soon enough I’d figured out that there is a cmdlet in SharePoint 2010 called “New-SPEnterpriseSearchLanguageResourcePhrase”, which by looking at the existing LanguageResourcePhrases with Get-SPEnterpriseSearchLanguageResourcePhrase contained a word and an alias for a word, which will allow a “Fuzzy Search” returning search results based on an alias name.

However even after I had uploaded a whole heap of new aliases based on my culture “en-AU” I was still not getting any results.  Out of desperation I installed the Speech Server platform binaries mentioned by my colleague and after a quick restart everything started working!

Here are the steps to get it working :

  1. Download the Microsoft Speech Server Run Time from here : http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=f704cd64-1dbf-47a7-ba49-27c5843a12d5.  Most likely you will want “EN-AU” as this appears to work off Browser settings not server settings.
  2. Install this onto the Server that does the crawling and searching, if in doubt put it on all of your app servers.
  3. Restart the application server
  4. Grab this file “C:\Program Files\Microsoft Office Servers\14.0\Bin\languageresources.txt” and make a copy of it to “C:\Windows\Temp” – this directory may change based on your SharePoint 2010 installation.
  5. I’d recomend using Excel to edit the file and strip out any languages you do not want. I would recommend retaining “en-US”.
  6. Remove any columns except for the original word and its alias.
  7. Insert the following headers “Name” and “Nickname” for the alias.
  8. Run the following PowerShell script
asnp microsoft.sharepoint.powershell
$langinfo = import-csv C:\windows\temp\AU-LanguageResources.csv
foreach ($line in $langinfo) {
New-spenterprisesearchlanguageresourcephrase -Name $($line.Name) -Language "en-AU" -Type "Nickname" -Mapping $($line.Nickname) -SearchApplication (Get-SPEnterpriseSearchServiceApplication)
}
start-sptimerjob "prepare query suggestions"
(Get-SPEnterpriseSearchCrawlContentSource -SearchApplication (get-SPEnterpriseSearchServiceApplication) -Identity "Local SharePoint Sites").StartFullCrawl()

This will likely take a couple of hours to go through, but the end result will be that your search will now be nice and fuzzy!  You will need to replace the culture (en-AU) specified with your own.  Cultures such as en-US and de-DE already exist in the database, so there is no point re-adding these.

I have to admit this is very cool!  and I was actually really thrown by the requirement of the Speech Server platform, my guess would be it has something in the API that is required by SharePoint Search to process aliases.  I was also quite surprised I was not able to find anything out there at all regarding this particular operation, even the cmdlet seems to be seldom used.

Update 9th Feb 2011 : If this is not working for you, it is worth noting that the culture selection seems to work off the users browser culture, not off the server culture.  If you have multiple cultures using your search, then it could be worth doing this for all of them that may apply.

Update 11th Oct 2011 : Updated import-txt to be import-csv, which actually exists.  Lesson learned, do not write powershell scripts from memory. 🙂

I am presenting at the Australian and New Zealand SharePoint Conferences

Just a quick post that I will be presenting at the Australian and New Zealand SharePoint Conferences this year.

Last year’s SharePoint conference was one of the best conferences in Australia that I have been to in recent years, it had a staggering amount of knowledge, excellent speakers and it was really fantastic to see a huge amount of Australian SharePoint professionals gather in one place.  If you are going to one conference this year, I would highly recommend that you make this one a priority.  Tickets start at $775, which compared with some of the other conferences is a steal!  And if you get in now you can get one of the Early Bird tickets for $620!

I will be running a session at both – I am still trying to come up with a catchy title, but for now lets call it :

Turn your Head and Cough : SharePoint 2010 Performance and Health Monitoring

An amazing amount of new and exciting features were added to SharePoint 2010 for IT Professionals, a major investment being Server Health and Monitoring Infrastructure. In this session Mark will look into these features in-depth, focusing on guidance for keeping SharePoint installations healthy and running at peak performance. Mark will also go into detail on supporting features such as Diagnostic Logging, the Developer Dashboard and the SharePoint 2010 Logging Database; illustrating how to successfully use these features and more, to troubleshoot issues quickly and accurately. If you have a production environment running SharePoint 2010, then this is a session not to miss!

I will also be doing a Get to the Point – this is a four hour training session in which I will be expanding upon my session greatly by working with participants in labs to demonstrate these features in depth :

SharePoint 2010 – Monitoring and Troubleshooting Health and Performance for your SharePoint Installation

SharePoint 2010 introduced a dazzling array of new Monitoring Functionality, but where do I start? How do I improve the time it takes to load my site and why won’t my solution deploy? In this session Mark will introduce and explain improvements made to this Monitoring Functionality, and how best to leverage these improvements for analysis and troubleshooting SharePoint 2010 Farms Servers, Web Applications and Site Collection. This session will be valuable for IT Pro’s and Developers. If you have the ability to log into to your SharePoint server, this is a training session you can’t afford to miss!

This session will cover off :

  • Developer Dashboard
  • SharePoint 2010 Logging Database
  • Diagnostic Logging improvements
  • SharePoint Health Analyzer
  • Web Analytics
  • and more!

Tickets for this Get to the Point can be purchased at Conference registration for an additional $350, which is a great price for four hours of hands on training.

I really hope to see you there!

WordPress Stats for 2010

Edit from Mark : Not a bad year, especially considering I’ve only been on WordPress for around 5 months!

The stats helper monkeys at WordPress.com mulled over how this blog did in 2010, and here’s a high level summary of its overall blog health:

Healthy blog!

The Blog-Health-o-Meter™ reads Fresher than ever.

Crunchy numbers

Featured image

A helper monkey made this abstract painting, inspired by your stats.

A Boeing 747-400 passenger jet can hold 416 passengers. This blog was viewed about 9,600 times in 2010. That’s about 23 full 747s.

In 2010, there were 19 new posts, growing the total archive of this blog to 60 posts. There were 68 pictures uploaded, taking up a total of 4mb. That’s about 1 pictures per week.

The busiest day of the year was September 14th with 144 views. The most popular post that day was Set Site Collection Search Settings by PowerShell.

Where did they come from?

The top referring sites in 2010 were google.com, google.co.in, social.technet.microsoft.com, msexperts.org, and stackoverflow.com.

Some visitors came searching, mostly for setspn, setspn -l, mark rhodes, http/1.1 200 ok server: microsoft-iis/7.5 connection: close, and remove-spmanagedaccount.

Attractions in 2010

These are the posts and pages that got the most views in 2010.

1

Set Site Collection Search Settings by PowerShell September 2010
8 comments

2

Resolving a HTTP/1.1 200 OK Server: Microsoft-IIS/7.5 Error with a SharePoint 2010 Web Application August 2010
1 comment

3

SharePoint Designer 2010 – The server could not complete your request. The content type of the response is “”. March 2010
2 comments

4

Moving a SharePoint 2010 Site Collection to another Content Database March 2010

5

Enabling or Disabling Claims Based Authentication July 2010
2 comments

2010 in review

Seeing its New Years Eve and I’m home early (perils of a young family) I thought I’d take a few minutes to reflect on 2010.

For me professionally 2010 was a phenomenal year.  Here is a bit of a break down :

This year I spent a lot of time presenting.  I presented at a grand total of 12 events, which is a huge improvement on the 5 of the previous year, some highlights include :

  • Over the course of the year I presented at every SharePoint Saturday in Australia except for Perth.  Sorry Perth, you were just too far… this year!
  • In May and December I organised and ran two successful events in Brisbane, SharePoint Saturday and Infrastructure Saturday
  • In December I presented at an overseas gig, SharePoint Saturday New Zealand
  • In June I presented at the Australian SharePoint Conference, this was a great experience and one I hope to repeat in 2011.
  • In August I had the privilege of presenting at Tech Ed Australia with Ben Fletcher.  This one was a long term goal I did not really expect to achieve this year, but somehow got there.  Thanks for the help Ben!
  • And finally the highlight of the year, I had the honour of attending the inaugural Microsoft Evangelist Academy.  I could rave about this for days, but its probably easier to look back a post or two on the blog for the full details.

Career wise what I think is probably the best and most exciting step and joined OBS in April as an Infrastructure Consultant.  Since before I even started I have been in awe of just how fantastic this company is, after sharing an office with them for 18 months prior to joining up, I got a very exclusive sneak preview into the exceptional people and work that really makes this company pop.  I had a fantastic first eight months, worked on some mammoth projects, got to work shoulder to shoulder with some of the people I consider to be the best in the SharePoint world, learnt a heap and generally had a blast.

So what is there to expect in 2011?

There are two professional aspects I am really going to focus on in 2011.

  1. I’m really looking forward to seeing what 2011 has to offer for me at OBS.  There are some fairly exciting things on the boil, and I have a few goals I’d like to achieve that I’d rather not share here yet.
  2. With the help of the Microsoft Evangelist Academy and a lot of my own hard work I’m going to really focus on my Presenting.  There are a lot of things I can do to really improve my presentation skills and making some really excellent presentations at events this year.  I also have a mini-goal of presenting at an event in the States, hopefully I can make that happen!

So 2010, thanks for a exceptionally good year.  Bring on 2011, I think it will be even better!

Upcoming Events

The next couple of months are going to be very busy as I have a handful of presentations and events that I will be presenting at :

Infrastructure Saturday
Brisbane – November 6th 2010

Join System Administrators, System Engineers, Architects and other IT Pro’s that work with Microsoft Server products for our ‘Infrastructure Saturday’ event. Infrastructure Saturday is an educational, informative & lively day filled with sessions from respected IT Pros, MVPs and other Community Members covering a wide variety of Microsoft server orientated topics. Infrastructure Saturday is FREE, open to the public and is your local chance to immerse yourself in Microsoft Infrastructure!

Infrastructure Saturday – Introduction to SharePoint Server 2010
Brisbane – November 6th 2010

SharePoint 2010 adds an amazing amount of new and exciting changes for IT professionals including radical improvements to Farm, Service and Health architecture.  Join Mark as he introduces all of the new functionality that will make IT Professionals drool with possibility.  This session will cover new functionality, including Service Applications, PowerShell, Health Monitoring, Redundancy and Performance improvements and even more.  If you are looking at deploying SharePoint 2010 do not miss this session!

Infrastructure Saturday in a very exciting one in particular.  A few people have likened this to a “Community driven mini Tech Ed”.  Places for this event are filling up fast and if you want to go I’d click the above link and register now!  Check out the site for more information on the Speakers, Sponsors and also how to register.

SharePoint Saturday Melbourne – SharePoint 2010 PowerShell Primer
October 2010

Whether you are a developer, IT Pro or even a day to day user if you are not using PowerShell you are missing out! In this session Mark will introduce the audience to PowerShell with a focus on its role with SharePoint 2010. While this session starts out aimed at helping first time users get started with PowerShell, even more seasoned users will benefit from the introduction to SharePoint 2010′s huge range of functionality.

Brisbane Infrastructure Group – Cloud Secret Sauce and What you can cook with it (With Ben Fletcher)
Microsoft Brisbane – 12 October 2010 – 5:30 PM

Ever wondered how a public cloud is made? Considered using cloud techniques and methodology in your own infrastructure? In this session Enteprises can learn how to improve security, efficiencies and services by utilising the methods and principles applied in hosting cloud services in their own infrastructure. This high level and thought provoking discussion will talk about the challenges of hosting, what tools and principles used in hosted and cloud services can be used to provide services in the enterprise such as user and department self management, control panels, identity management and automation. It will highlight the challenges and limitations of hosting cloud services from an enterprise point of view, with a focus on AD, Exchange, SharePoint, OCS, and IIS. It will also talk about Microsoft’s Dynamic Datacenter and how you can create your own private cloud.

For anyone that was not able to go to TechEd and wanted to see our “Cloud Secret Sauce” session, we will be doing this again at this months BIG.  Hope to see you there!

Set Site Collection Search Settings by PowerShell

Setting your Site Collection Search Settings by Powershell, what a tongue twister, try saying that six times fast. Setting your search settings via PowerShell is not something that is immediately obvious and requires a bit of digging.

First – how do we see what settings we’ve currently got?  First lets get our web and throw it into a variable to make it a bit easier to handle.

$web = get-spweb http://address

By digging down through the properties of the $web object we can see two areas that might house this : allProperties and Properties.  I do not know why there are two property areas, seems a little confusing.

The properties we are after are in AllProperties and are called :

SRCH_ENH_FTR_URL and SRCH_SITE_DROPDOWN_MODE

SRCH_ENH_FTR_URL is pretty straight forward, it is the URL or relative path of the Search Center you want to use and can be set like follows :

$web.AllProperties[“SRCH_ENH_FTR_URL”] = “http://address.to/searchcenter”

Controlling the drop down is a little more difficult, as there are lots of not too transparent options to pick.  Here they are mapped out :

Site Collection Search Dropdown Mode Property Value Search Results URL
Do Not Show Scopes Dropdown, and default to contextual scope HideScopeDD_DefaultContextual Y
Do Not Show Scopes Dropdown, and default to target results page HideScopeDD N
Show scopes Dropdown ShowDD Y
Show, and default to ‘s’ URL parameter ShowDD_DefaultURL Y
Show and default to contextual scope ShowDD_DefaultContextual Y
Show, do not include contextual scopes ShowDD_NoContextual N
Show, do not include contextual scopes, and default to ‘s’ URL parameter ShowDD_NoContextual_DefaultURL N
It is pretty easy to set this with the following :
$web.AllProperties[“SRCH_SITE_DROPDOWN_MODE”] = HideScopeDD_Defaultcontextual
If a dropdown mode is selected that requires a results URL set, then this can be set using the SRCH_TRAGET_RESULTS_PAGE property.  Please note that this is NOT my typo, this is how it is in the Web AllProperties property.
$web.AllProperties[“SRCH_TRAGET_RESULTS_PAGE”] = “http://address.to/searchcenter/_layouts/OSSSearchResults.aspx”

Nice and easy, and you’ve just set your search settings via PowerShell.  If you are like me, and I’m guessing you will be, you’ll be doing a $web.update() just to finish this off and write all the settings back to the site.

Here is the full script, please note it assumes you have loaded Microsoft.SharePoint.PowerShell

$web = Get-SPWeb http://www.address.com
$web.AllProperties[“SRCH_ENH_FTR_URL”] = “/search/”
$web.AllProperties[“SRCH_SITE_DROPDOWN_MODE”] = HideScopeDD_Defaultcontextual
$web.AllProperties[“SRCH_TRAGET_RESULTS_PAGE”] =”/_layouts/OSSSearchResults.aspx”
$web.update()