Collab365 Global Conference

This year’s 24-hour online conference is almost here! Like last year’s SP24, the new Collab365 Global Conference is a 24-hour online conference about SharePoint (and also about Office 365 and Azure) and it will take place on October 7th/8th. I’ll be presenting a session on “Building Solutions with Office Graph”.

This event is a huge undertaking and it has some impressive statistics:

  • 10,000 expected attendees (SP24 already got 9,000 last year)
  • 6 simultaneous tracks (Office 365, SharePoint, Azure, Business, French track and Spanish track)
  • Over 120 speakers from 6 continents
  • Keynotes by Jeremy Thake and Mark Kashman
  • 62 MVPs and 6 MCMs

You can expect a lot of great content about SharePoint 2016 and Office 365, and it’s FREE. If you’re interested in attending, don’t forget to register.

Microsoft Developer Tech Refresh

Next Monday, June 15th, Microsoft Portugal is hosting the Developer Tech Refresh 2015 event in Lisbon. It’s a developer focused event, with 20 sessions over 5 simultaneous tracks:

  • Windows Dev
  • Azure Dev
  • Office Dev
  • Data Platform / Internet of Things
  • Web

I will be presenting a session on “Office Graph” (and Office Delve) for the Office Dev track and my friend Jota will be presenting a session on “The new Azure App Service Architecture” for the Azure Dev track. It will be a great opportunity to learn about all the new stuff around Microsoft’s technology stack. Don’t forget to register, it’ll be worth it.

SharePoint 2016: News from Ignite

Build and Ignite, the two largest Microsoft technology conferences, have come and gone, leaving us with a lot of new announcements and tons of content to go through. Keeping up with all the new stuff is extremely hard with so much happening.

One of the topics I was really expecting to learn more about was SharePoint 2016 but, although it came up here and there, it got a surprisingly small coverage. Maybe it’s not so surprising, given it’s still a year away, but, nevertheless, I was hoping for more. Most of the information I gathered was presented by Bill Baer on his two sessions about SharePoint 2016 (The Evolution of SharePoint: Overview and Roadmap and What’s New for IT Professionals in SharePoint Server 2016)

Key takeaways

Microsoft is still betting strong in the cloud and Office 365, but they’ve been listening and have understood that many companies are still not ready or not willing to move to the cloud. SharePoint 2016 has been designed to bridge the on-premises world and the cloud, by making it a lot easier to deploy hybrid scenarios. Other investment areas include improved user experiences, compliance and security. It will certainly be an evolution from SharePoint 2013 but don’t expect anything dramatically different.

Regarding the release timeline, there are 3 milestones:

  • Q4 2015 – Public Beta (Beta 1)
  • Q1 2016 – Release Candidate
  • Q2 2016 – Final Version (RTM)

Hardware and Software Requirements

The hardware requirements for SharePoint 2016 are mostly the same as for SharePoint 2013:

  • RAM: 16-24 GB (for a single server farm) or 12-16 GB (for a multi-server farm)
  • CPU: 1 quad-core
  • HDD: 80 GB

As for software requirements, there are a few changes:

  • Windows Server 2012 R2 or Windows Server 10
  • SQL Server 2014 or SQL Server vNext
  • .NET Framework 4.5.2 (on Windows Server 2012 R2) or .NET Framework 4.5.6 (on Windows Server 10)


Regarding deployment, you can still deploy it on a Domain Controller as long as it’s a development environment, but stand alone mode, using SQL Server Express, is no longer supported. Like SharePoint 2013, you cannot deploy SharePoint 2016 on a client OS or Windows Web Server and dynamic memory is not supported.

Up until now, every SharePoint server was born equal, meaning the install process was the same for every server. The application role of each server was defined later, when you chose which services are started on the machine and which service applications are configured in the farm. For SharePoint 2016, Microsoft identified 4 common roles (called MinRoles) used in most multi-server farms and allows you to select one of them when installing a server:

  • Web Front End – Services end user requests. Servers assigned to this role are optimized for low latency.
  • Application – Services backend jobs or the requests triggered by backend jobs. Servers assigned to this role are optimized for high throughput.
  • Distributed Cache – Serves distributed cache for the farm. Servers assigned to this role can load balance end user requests among the web front ends.
  • Search – A specialized version of the application server, dedicated to the search

There is a fifth role – Specialized Load – for situations that don’t fit any of the above pre-defined roles, allowing you to select any services to run on the server.

The SharePoint Health Analyzer will scan each server daily to check if the service instances running on the server are compliant with the selected role for that server. All roles are scanned, except for Specialized Load.

Upgrade & Migration

Upgrading to SharePoint 2016 will only be supported from SharePoint 2013. If you’re still using SharePoint 2010 or a previous version, you’ll first have to upgrade to SharePoint 2013 and your site collection will have to be converted to 15 mode before you can upgrade to SharePoint 2016. The upgrade is done via the database attach process, so nothing new here. You can also choose to migrate content from a previous version of SharePoint using one of the available third party software applications.


Patches and updates will have a smaller footprint and will not require any downtime. As with most of the new features, the new patching process was developed for SharePoint Online and SharePoint 2016 will now benefit from the lessons learned from managing SharePoint in the cloud. Just for reference purposes, in SharePoint 2013 an update is comprised of 37 packages and an additional 18 packages for each installed language pack. In SharePoint 2016, an update is comprised of just 4 packages, plus 1 extra package for each installed language pack.

Boundaries and Limits

With each new version of SharePoint, Microsoft stretches the boundaries and limits of the platform.  For SharePoint 2016, here are the main improvements:

  • Supports content databases with TBs (specific number is not yet defined). For SharePoint 2013, general purpose content databases should not be more than 200GB in size.
  • Supports 100,000 site collections per content database (SharePoint 2013 supports 10,000 site collections per content database)
  • List item threshold will be over 5,000 items
  • Max file size is now 10GB and there won’t be character restrictions (SharePoint 2013 support files up to 2GB)
  • Search index can scale to 500 million items (SharePoint 2013’s search index can hold up to 250 million items)

Performance and Reliability Enhancements

Running SharePoint in the cloud required SharePoint to achieve a level of reliability that previous versions of the platform could not muster. Some of these improvements were brought to SharePoint 2016 which is expected to support a four-9s availability level (99.99% which amounts to a maximum of 52 minutes of downtime per year, in case you’re wondering what that means):

  • Server role optimizations
  • Zero downtime patching strategy
  • Improved distributed cache reliability
  • Traffic management with intelligent routing and server health checks

Performance was also improved across the board. Two good examples of such improvements are the new file handling protocol and the new site collection creation process.
Regarding file handling, here is a brief history of the enhancements introduced by each SharePoint version:

  • SharePoint 2010 introduced the Cobalt protocol. With Cobalt, when a document is being edited and the user saves it, only the modified portion of the file is sent by the client application to the server, greatly reducing the amount of data transmitted between client and server. However, the server still has to fetch the whole document from the database and merge the existing content with the user changes before saving the whole document back to the content database.
  • SharePoint 2013 brought the Shredded Storage mechanism which allows documents to be stored in small pieces in the content database. Because documents are already “shredded” in the database, the server does not have to fetch the whole document to merge the original contents with the changes, which reduces the server processing overhead.
  • SharePoint 2016 adds BITS (Background Intelligent Transfer Service) protocol which will improve upload and download speeds and resiliency.

The new site collection creation process (named Fast Site Creation) leverages the SPSite.Copy method to clone a pre-configured site collection template at the content database level. This process avoids the overhead of feature activation since the features are already activated in the source site collection.

UI Improvements

SharePoint 2016 looks and feels mostly like the current version of SharePoint Online (in Office 365), but a few improvements were made to the UI, namely:

  • New Authoring Canvas, a new and modern way to create content for a web page using a Sway-like user experience.
  • Support for Durable Links which allows documents to be moved while keeping the URL intact, because it is based on a resource ID.

Cloud Accelerated Experiences

One of the most touted new features of SharePoint 2016 is the support for cloud accelerated experiences or, in other words, the ability to surface features that are only available in the cloud, using a hybrid scenario:

  • Compliance and data loss prevention (DLP) across cloud and on-premises
  • Cloud search service application which unifies the on-premises and cloud search indexes and provides support for Office Graph / Delve experiences on-premises
  • Distributed team sites across SharePoint 2016 and Office 365
  • Hybrid deployment automation with UI-based configuration

Other Announcements

  • There will not be a SharePoint Designer 2016
  • Office Graph / Office Delve will be made available (through a cloud accelerated experience) on SharePoint 2013 via an update later this year


SharePoint 2016 is still a year away which means some features might suffer some changes and new features will likely be announced between now and then. However, it is clear that this release is intended to be a stepping stone in the path to the cloud, given that most new features are already available on SharePoint Online or will be soon enough. Hybrid scenarios are easier than ever to deploy and some of the most compelling new use cases will require this approach, which reinforces that idea. There is still a lot to learn about the new SharePoint, and I’ll be posting my findings along the way.

European SharePoint Conference 2015

The programme for the European SharePoint Conference 2015 was announced yesterday and guess what? I’ll be presenting a session on day 3 (November 12th) about Content Recommendation with SharePoint Search! You’ll also find my good friend and SharePoint MVP Rodrigo Pinto, as well as Nuno Oliveira Costa and João Oliveira, from Microsoft Portugal, among the speakers.

The conference will take place in Stockholm, Sweden, from November 9th to November 12th, and has a fantastic session lineup from some of the best speakers in the business. The programme team did a great job putting it together. I know how hard it is to select 100 breakout sessions and 8 full-day tutorials out of several hundred candidates to build a balanced and interesting session lineup.

If you have not attended in previous years, I highly recommend it. It’s well worth it.
You still have 7 days to grab the ticket at Super Early Booking Rate (ends on April 17th) so, if you’re considering attending, don’t wait!

I’ll see you there!

Webinar: Information Rights Management in SharePoint

On April 7th at 11am CET I will be presenting a live webinar to the European SharePoint Community on Information Rights Management in SharePoint.

Here’s what I’ll be talking about:

Information security is one of the most important concerns when designing a content management solution. Learn about Information Rights Management (IRM) and what it allows you to do to protect your information and control its usage. Learn how it can be applied to SharePoint 2013 and SharePoint Online and the main differences between the way it works in each version.

In this webinar for IT Pro’s you will:

    1. Learn what is Information Rights Management (IRM)
    2. Learn how IRM works in SharePoint 2013 and SharePoint Online
    3. Learn how to manage IRM

You can register for my webinar on Information Rights Management here. I hope you can join me!

Querying SharePoint Search from PowerShell

FAST Search for SharePoint 2010 (FS4SP) is a really powerful, flexible and scalable enterprise search engine. However, when compared with the search landscape in SharePoint 2013, it feels like a separate product, an add-on to SharePoint 2010 that gives you a more powerful alternative to the out-of-the-box search engine.

When using FS4SP in a production environment, you need a separate farm just for FAST. That is, you need a set of servers where you install FS4SP and then you connect that FAST farm to a SharePoint farm, by means of two Search Service Applications. These FAST servers don’t have SharePoint installed on them and they have their own PowerShell snap-in that allows you to perform a whole bunch of administration tasks on FS4SP.

Suppose you want to query your search index, for testing or maintenance purposes, in PowerShell. The easiest solution would be to open your SharePoint 2010 Administration PowerShell console, and use the Server Side Object Model to create a new KeywordQuery object and invoke the Execute method on it. You can find many blog posts that teach how to do this. Here’s one example. If, for some reason, you need to run that PowerShell script from one of the FAST servers it won’t work because these servers don’t have SharePoint installed and are not part of the SharePoint farm, hence you can’t use the Server Object Model.

In this case, you’ll need to use the search web service, which can be called from any server as long as it can communicate with the SharePoint farm. The script below shows how you can do this.

$WebApplicationURL = "http://myserver:9999"
$SearchServiceURL = "/_vti_bin/search.asmx"

# Create a proxy to call the search web service
$SearchWS = New-WebServiceProxy -Uri ($WebApplicationURL + $SearchServiceURL) -UseDefaultCredential

# Build the query XML. You can use FQL or KQL.
$queryXml = @"
<QueryPacket Revision="1000">
      <QueryText language="en-US" type="FQL">SharePoint</QueryText>
    <SupportedFormats Format="urn:Microsoft.Search.Response.Document.Document" />
      <Property name="Rank" />
      <Property name="Title" />
      <Property name="Author" />
      <Property name="Write" />
      <Property name="Path" />

# call the web service
$results = $SearchWS.QueryEx($queryXml)

# process the results
if ($results -ne $null -And $results.Tables["RelevantResults"] -ne $null)
    # check the result count (this page) and the total result count (all pages)
    $resultCount = $results.Tables["RelevantResults"].Rows.Count
    $totalCount = $results.Tables["RelevantResults"].ExtendedProperties["TotalRows"]
    Write-Host "Retrieved $resultCount (from a total of $totalCount) results."
    # write the title of each result in the console window
    foreach ($row in $results.Tables["RelevantResults"].Rows)
        Write-Host $row["Title"]

Microsoft WebCamp 2014: Working with AngularJS

Last week I delivered a session at Microsoft WebCamp 2014 event. A full-day event, with 3 simultaneous session tracks, focused on web technologies, not only from Microsoft but also open source, and design/communication topics. A lot of good stuff was shown, from node.js to service stack.

My session was about Working with AngularJS, a fantastic Single Page Application framework in JavaScript. It’s an introductory session, meant to give attendees a basic understanding of the framework and its components. I had a packed room, with around 200 people, and the feedback was great so I felt it might be worth sharing the slides and demos I wrote for the session:

You’re probably wondering why would I, a SharePoint guy, be talking about AngularJS. SharePoint guys are not exactly known for embracing the latest and greatest web technologies, mostly because when a new SharePoint version is released, it’s already one .Net version behind, not to mention all the new JavaScript frameworks. With SharePoint 2013, all that is changed. The new SharePoint App Model allows us to build our apps in any technology we want, and that means we can use all the big boys toys now such as ASP.NET MVC and, of course, AngularJS.

Also presenting a session on WebCamp about KnockoutJS was my good friend and colleague João “Jota” Martins, which is a great JavaScript data-binding library. Although they share some concepts, Knockout and Angular are very different technologies, on very different abstraction levels, so it’s good to know when to use one or the other. Checkout his slides and code samples here.

European SharePoint Conference 2014

The European SharePoint Conference 2014, Europe’s largest SharePoint-focused conference, took place last week (May 5th to May 8th) in Barcelona, and it was a great! I was fortunate to be a part of the Programme Team and contribute, although just a little bit, to the success of this huge event. A few statistics about the conference:

  • 6 pre-conference full-day tutorials by SharePoint all stars like Dan Holme, Rafal Lukawiecki and Joel Oleson.
  • 4 keynotes by Simon Skaria, Dan Holme, Christian Buckley, Mark Kashman and Rafal Lukawiecki
  • 110 breakout sessions over 8 simultaneous tracks
  • Over 80 speakers
  • More than 1200 attendees from all around the world
  • 55 sponsors

Each day was focused on a specific theme based on the main trends in the industry:

  • The first day was focused on Cloud and Office 365
  • The second day’s theme was Enterprise Social, Enterprise Content Management and Best Practices
  • The third day was about Solutions and Devices

Without getting into too much detail, here are the general trends around SharePoint and Office 365, some of which were already shared in Microsoft’s SharePoint Conference, last March:

  • The future is the cloud but SharePoint on-premise is not going away anytime soon. Next year a new version of SharePoint Server will be released and, after that, there are plans for an additional one. However, all the new features will first appear on SharePoint Online (Office 365) and some might never be released on-premises.
  • When developing for SharePoint on-premises, always try to use the cloud-proof App Model to allow your solution to be used in SharePoint Online. Only go for Full Trust Code (old school solutions) if there is no other way.
  • SharePoint Social will not be developed further because Yammer will end up replacing it completely.
  • Yammer will be integrated into all Office collaborative experiences, from Outlook to Word, both Online and On Premises. Outlook will feature Yammer groups, Office documents will have an associated Yammer thread, and Yammer groups will have an associated calendar.
  • The “Codename Oslo” Experience will bring us a new way of working, where the information you need is brought too you automatically through the power of the Office Graph, FAST-based search technology and the use of machine learning. It will be available through Office 365 and my guess is that it will become the new Office 365 homepage – an personalized information hub tailored to each user’s needs.
  • Microsoft’s Business Intelligence stack continues to evolve. PowerBI, PowerPivot, PowerQuery, PowerMap and PowerView are all very impressive pieces of technology and I hear there will be announcements soon around these topics…
  • SharePoint development is now achieving a maturity level that allows real Application Lifecycle Management. Source control, continuous integration, automated testing, automated code analysis and continuous deployment, are concepts that can currently be applied to SharePoint projects.

The Expo Hall featured the sponsors’ booths where everyone could meet their products and services, and meet some familiar faces such as Mike Fitzmaurice (Nintex), Edin Kapic (Beezy), Chris McNulty (HiSoftware) and Christian Buckley (Metalogix). The Community Area was also located in the Expo Hall, and a lot was happening here, especially during breaks:

  • Soapbox sessions were being delivered by some of the SharePoint all stars (Dan Holme, Michael Noel, Mike Fitzmaurice, Joel Oleson, Jeremy Thake, Geoff Evelyn, Paolo Pialorsi, Agnes Molnar, Edin Kapic and Eric Overfield)
  • The ShareMentor program was kicked off by Agnes Molnar
  • Book signings
  • Prize draws

Just like in previous years, one of the highlights of the ESPC is always the Gala Dinner. A social event that mixes attendees, speakers and organizers, and where the European SharePoint Community Awards winners are announced, as well as the Top 25 SharePoint Influencers. As expected, it was a great occasion to meet new people and the fact that |create|it| won an ESPC award for the third consecutive year only made it better.

Overall, it was a great experience and I just hope I get to attend it next year.

SharePoint Conference 2014: Keynote Takeaways

Microsoft’s SharePoint Conference 2014 started yesterday in Las Vegas with a keynote by Bill Clinton, followed by the usual suspects, Jared Spataro, Jeff Teper and Arpan Shah, presenting all the new stuff. This year I was unable to attend the Conference in person, but I got to watch the keynote live on Channel 9, and here’s what I’ve learned from it (and from a bunch of additional sources such as tweets, blog posts, and the like).

As the conference started, a few posts were published on Office Blogs:

Cloud vs On-Prem

Make no mistake – feature-wise, SharePoint On-Premise will start to lag behind SharePoint Online / Office 365. The only way is up. Here are some facts that support this claim:

  • The next SharePoint Server version will be out in 2015. Meanwhile, Office 365 is getting updates almost on a weekly basis, and maintaining a very impressive 99,98% uptime.
  • SharePoint “2015” will still include Social features but these will remain unchanged from SharePoint 2013. No investment will be made to improve it (more on this below).
  • SharePoint SP1 (released in February 2014) adds support for hybrid scenarios where an on-premise SharePoint farm can have personal sites stored on OneDrive for Business (formerly SkyDrive Pro) in the cloud, and better Yammer integration with Yammer feeds instead of SharePoint Social feeds (more information here).
  • Office 365 will have a new site template for Video Portal which will allow you to create a YouTube-like experience for your enterprise based on Azure Media Services.
  • Elastic scale will come to Office 365, which will support site collections of up to 1TB (additional fees apply) and infinite scale per tenancy.
  • OneDrive for Business will be released as a standalone service, competing directly with Dropbox and similar services (more information here).


Yammer will eventually replace SharePoint’s native social features so, according to Jared Spataro, we should all “Go Yammer”.

  • Yammer is now integrated into Dynamics CRM
  • Yammer is now accessible directly from the suite bar on Office 365, without requiring additional authentication
  • Yammer conversations will be completely integrated with showing up as you click on a document, email or contact.
  • Yammer will be a part of Office 365 Academic and Midsize Business Plans. It was already part of all Enterprise Plans.
  • Microsoft expanded Yammer’s Enterprise Graph and built the Office Graph, which maps relationships between people and information by recording posts, likes, emails, replies, shares and uploads.
  • A new app named Oslo will unleash the Office Graph potential and allow you to navigate through these relationships and discover new information.
  • Yammer groups will become a cross-Office 365 concept. Creating a group anywhere on Office 365 will automatically provision a corresponding inbox, social feed, calendar and document library that group members can use. This new feature effectively replaces SharePoint’s workspaces.
  • Yammer will be integrated with Lync and Skype.

Office Apps

With Office 2013 Service Pack 1, Office Apps gain additional features:

  • PowerPoint and Access now support the new App Model.
  • Outlook now supports a new type of App – Compose App – which allow you to interact will email messages or appointments when you are creating them.
  • New Office Web Widgets, ListView and PeoplePicker, available as a NuGet package (more information here).

Tooling and Development

  • New APIs for Office 365 focused on files/folders, calendar and contacts (more information here). It will also be possible to provision site collections on Office 365 programmatically.
  • New open source Android SDK for Office 365 to help developers access data in Office 365 from Android Apps (more information here).
  • New Cloud Business App project template on Visual Studio 2013 helps you create SharePoint Apps that leverage Windows Azure.
  • Office Developer Tools for Visual Studio 2013 – March 2014 Update (get it here).
  • Napa Development Tools were updated and improved

Forms Solutions

At the Conference, Joel Oleson organized a funeral procession for InfoPath, and that was about all I heard about Microsoft’s new approach to form solutions. I read somewhere that Access will have an important role in InfoPath’s replacement but, so far, nothing specific. Since this is one of the topics that SharePoint professionals and clients are most worried about, I was expecting it to be addressed during the keynote. I believe there will be, at least, one breakout session on this topic so let’s wait and see.

User License Enforcement in SharePoint 2013

Note: this post was first published in the European SharePoint Community blog.

Amongst the several new features included in SharePoint 2013, there is one that I have unfairly overlooked until just recently and that is User License Enforcement. I say unfairly because it’s a feature that has been requested for a long time and I believe it deserves more attention than it has been receiving.

Up until now, any user that accessed a SharePoint farm would have access to all the features included in the installed SharePoint SKU, regardless of the CAL (Client Access License) level assigned to her. This means that, if a company had a SharePoint farm with an Enterprise license, any user would be able to access all Enterprise features, even if it was assigned a Standard CAL.

On most large companies, for cost saving purposes, it’s quite common to find scenarios where only some of the users are assigned an Enterprise CAL, while every other user is assigned a Standard CAL. One way to ensure that each user can only access the features included in his license, is to have two separate SharePoint farms, one with a Standard SKU and the other with an Enterprise SKU. However, this is hardly an acceptable solution.

SharePoint 2013 solves this with the new User License Enforcement capability, which enables the mapping of licenses with specific users or Active Directory security groups. When User License Enforcement is enabled, users can only access the SharePoint features included with their license, otherwise they are blocked. When it’s disabled, which is the default, SharePoint behaves the same as in previous versions.

User License Enforcement management is performed exclusively through PowerShell cmdlets in SharePoint 2013 Management Shell. There are eight cmdlets which are explained in detail in the following sections:

  • Get-SPUserLicensing
  • Enable-SPUserLicensing
  • Disable-SPUserLicensing
  • Get-SPUserLicense
  • Get-SPUserLicenseMapping
  • New-SPUserLicenseMapping
  • Add-SPUserLicenseMapping
  • Remove-SPUserLicenseMapping

Enabling and Disabling User License Enforcement

To check if this feature is enabled, use the Get-SPUserLicensing cmdlet in SharePoint 2013 Management Shell. It will return true if the feature is enabled, and false otherwise (see Figure 1). As stated before, User License Enforcement is disabled by default.

Figure 1 – Usage of Get-SPUserLicensing cmdlet

To enable it, execute the Enable-SPUserLicensing cmdlet. To disable it, execute the Disable-SPUserLicensing cmdlet. Both cmdlets require no parameters and return no values (see Figure 2).

Figure 2 – Using the Enable-SPUserLicensing and Disable-SPUserLicensing cmdlets

Now that you know how to enable and disable it, I should advise you to keep it disabled until you have configured it properly. Otherwise you might involuntarily block access to Enterprise features for users that should have access to them or allow access to features that users should not be allowed to use.

Checking Available User Licenses

To check what licenses are available in your SharePoint farm, you can use the Get-SPUserLicense cmdlet (see figure 3).

Figure 3 – Using the Get-SPUserLicense cmdlet

There are five license types (although on my farm there are only four):

  • Enterprise
  • Standard
  • Project
  • OfficeWebAppsEdit
  • Duet

The Enterprise and Standard licenses are the two SharePoint Server editions, which have been around for several versions already. You can check the differences between the two in TechNet:

As for the others: the Project license is used to allow access to Project Server features, the OfficeWebAppsEdit license is used to allow users to edit documents in Office Web Apps, and the Duet license is used to allow access to Duet features (integration between SharePoint and SAP).

Mapping User Licenses

Mapping users to licenses is, in fact, mapping claims to rights. To create a new mapping you must execute the New-SPUserLicenseMapping cmdlet which can be used in a few different ways, depending on the type of claim you are mapping.

You can map an Active Directory security group to a license, executing the following command:

$mapping = New-SPUserLicenseMapping
–SecurityGroup “Enterprise Users”
–License “Enterprise”

You can also map a Forms-based Role to a license by using the –RoleProvider and –Role parameters instead of the –SecurityGroup parameter:

$mapping = New-SPUserLicenseMapping
–RoleProvider “MyRoleProvider”
–Role “Enterprise Users”
–License “Enterprise”

Finally, you can map a claim to a license by using the –ClaimType, –OriginalProvider and –Value parameters, or just the –Claim parameter with a reference to a SPClaim object.

Figure 4 – Using the New-SPUserLicenseMapping cmdlet

When creating the mapping you can also specify which Web Application the mapping applies to, allowing you to configure user licenses on a per-web application basis. If you don’t specify a web application, the mapping will be applied to the whole farm.

After creating the mapping, you must call the Add-SPUserLicenseMapping to add it to the farm:

Add-SPUserLicenseMapping –Mapping $mapping

Checking User License Mappings

To check which mappings are configured in the farm, you can use the Get-SPUserLicenseMapping cmdlet without any additional parameters. Note that any mappings defined on a web application level will not be returned when retrieving the farm level mappings.

Figure 5 – Using Get-SPUserLicenseMapping cmdlet

To list the mappings configured for a specific web application, add the –Web Application parameter with the respective URL value.

Removing User License Mappings

To remove a mapping, you can use the Remove-SPUserLicenseMapping cmdlet. The only required parameter is the identity of the mapping (a GUID) which you can easily get by executing the Get-SPUserLicenseMapping cmdlet.

Enforcement Effects

Two common questions regarding User License Enforcement are:

  • Where is the user license enforced?
  • What happens when a user tries to access a feature that is not available to his license type?

Regarding the first question, the user license enforcement will be used in the following situations:

  • When accessing a page with web parts that require a specific license (e.g. Excel Viewer Web Part or InfoPath Form Viewer);
  • Accessing the web part gallery to add a new web part to a page;
  • Selecting a site template when creating a new site;
  • Trying to edit a document in Office Web Apps.

As for what happens in these situations, two things can happen:

  • A user without the required license won’t see the components he has no access to (web parts and site templates); or
  • SharePoint will deny access to a component the user has no license for, presenting a message explaining why the user cannot access the component.

Additional Notes

There are a few additional notes I believe are important to keep in mind:

  • User License Enforcement is available only for On Premise SharePoint 2013 deployments. SharePoint Online uses a per-user licensing model hence it does not require this capability to control access to specific features.
  • User License Enforcement works only with Web Applications that use Claims-based Authentication.
  • Once enabled, every user has to be assigned a license, even service accounts. If you forget to assign a license to a user, it will be logged as Unlicensed and will be denied access to most SharePoint features.


You can find additional information on the PowerShell cmdlets on TechNet:

SharePoint, Office, FAST Search, Azure, .NET