This post is migrated from previous hosting provider. There are still some issues with old posts. Please make a comment on this post with any issues.

About the Customer Experience Improvement Program in SharePoint 2010

Tags: SharePoint 2010

The other day I was setting up another SharePoint 2010 farm and got the usual question to participate in the Customer Experience Improvement Program (CEIP). As always I bailed out of this. Why? Sending information to a third party about my SharePoint farm doesn't appeal me, even if it's Microsoft. You know, they might check how I configure my farm, how I use it etc., and then sit back and laugh at me. Not really, but I think most of us prefer not to send that information to Microsoft. But, this is not my normal standing to the CEIP. I use to participate in it, like when I install new software and they have that little checkbox asking me to send info about my installation. Why not give Microsoft some help about any kind of troubles during the installation. But when it comes to SharePoint - nope.

I did a quick Twitter Poll today to see if I was the only one bailing out of the CEIP. Currently 85% turns it off, while only 8% enables it. To make your voice heard - head on over here to the poll and I'll update this post in a few days.

Do you enable Customer Experience Improvement Program (CEIP) on your SharePoint farms?

At the same time when setting up this farm, and opting out of the CEIP, I also came to the conclusion that I really need to know what information is sent to Microsoft. Perhaps I should opt-in the next time?

About the CEIP in SharePoint 2010

When you are opting in to the Customer Experience Improvement Program in SharePoint 2010 you are enabling a daily timer job which inspects and collects information from your farm and sends it to the SharePoint mines in Redmond.

CEIP Timer Job

You enable the CEIP on the farm level through Central Administration > System Settings > Configure Privacy Options. Of course there is PowerShell cmdlets to do it as well - Get-SPBrowserCustomerExperienceImprovementProgram and Set-SPBrowserCustomerExperienceImprovementProgram.

CEIP Settings

There is also a setting at the Web Application level (General Settings) that allows you to specify if CEIP is enabled on the Web Application or not. When it's enabled on Web Application level the SPWebApplication.BrowserCEIPEnabled is set to true. The ScriptLink control uses this property to output the g_wsaEnabled JavaScript property.

JavaScript CEIP stuff

So what is actually collected and happening when CEIP is enabled?

This was my big question and as always I'm quite curious and just had to find out! So here we go - let's check out exactly what the CEIP is sending over to Microsoft.

The CEIP timer job

The CEIP timer job, SPSqmTimerJobDefinition, runs every night and iterates over all you content Web Applications and their databases respectively and sends the details through some methods defined in the onetnative.dll. The timer job performs the following tasks:

  1. Performs write test to a few directories in the SharePoint Root.
  2. Collects the following on all content databases in the farm (all summed to a farm total - so no details about each database or site)
    1. Size of content db
    2. The number of lists
    3. The number of webs
    4. The number of sites
    5. Information about alerts
  3. Collects information about if recycle bin is enabled and the retention period (only average retention time is sent)
  4. Collects information about the list throttling
  5. Collects the number of solutions in the farm, just the number - no more info than that
  6. Checks the registry for information about the server; is it a stand-alone, WFE or application server
  7. Collects a hash value of your Farm Id (interesting!)
  8. Collects the build version
  9. Collects the number of servers in the farm
  10. Collects the number database servers in the farm
  11. Retrieves the install type from the registry (clean, repair, V2V inplace, V2V gradual, B2B upgrade, uninstall, SKU2SKU upgrade)
  12. Collects information from the configuration database
    1. Product version and edition
    2. SQL type (embedded, Express etc)
  13. Finally it collects information about the number of virtual servers (not virtual machines)
  14. Server language and version (actually through some API's marked as obsolete)

That's it, it's a lot of information but nothing about content or anything that can identify or risk your data. The only thing that might identify you is the hashed code of you server farm id. But hashes are one-way and not guaranteed to by unique - so there's no risk there. It would be awesome to see some average values from the CEIP program.

The browser CEIP

If you enable the CEIP on the Web Application level I told you that a specific JavaScript variable is defined. And if this one is set to true - then the Ribbon makes some JavaScript magic (in SP.Ribbon.js). For every command that is executed in the fluent UI this is gathered by the CEIP JavaScript methods and sent to the local /_layouts/WsaUpload.ashx ASP.NET handler. The information gathered here includes:

  • Command Id of the command
  • Current Tab id
  • List and Page information
  • Time and duration

This one surprised me - I did not actually know that this actually was recorded. Must be huge amounts of data recorded and sent to the Redmond data centers. Hopefully they get something useful from this! Also here, it would be really cool to see some data - for instance how much Ribbon customizations have been done!


This whole excursion actually this makes me very confident in opting in on this in the future! You don't give away any data or put your farm under any risk. And it's no performance killer as I see it either - except for the browser CEIP - this will impact your farm since it will constantly hit the wsaupload.ashx file.

No Comments

  • Clint Hart said

    Wictor Wilén, You have been writing your book "SharePoint 2010 Web Parts in Action" since the last decade. Till now, I cant get the book. I wonder, When on earth will it be available for goons to buy it ? For the love of God, give me an accurate answer. Another point is, on your post on ( you have literally stated: "I have now written a total of 400 pages", and when I check Amazon on ( it states, it is 375 Pages. So where is the missing 25 Pages ?

  • Wictor said

    LOL, I finished writing the book in august. Unfortunatley the post-production has taken (far too) long. Yesterday I approved the typeset for the last chapter and the book is scheduled for a march release. About the page count - 375 was the initial thought of page count. The current count is about 10 pages front matter, 378 pages content, 32 pages appendix - and thats approx 420 pages...

Comments have been disabled for this content.

About Wictor...

Wictor Wilén is the Nordic Digital Workplace Lead working at Avanade. Wictor has achieved the Microsoft Certified Architect (MCA) - SharePoint 2010, Microsoft Certified Solutions Master (MCSM) - SharePoint  and Microsoft Certified Master (MCM) - SharePoint 2010 certifications. He has also been awarded Microsoft Most Valuable Professional (MVP) for seven consecutive years.

And a word from our sponsors...