Présentation rapide de “Microsoft Graph”



Alors, Microsoft Graph, Késako ?

Pour faire simple, Microsoft Graph est un point d’entrée unique pour récupérer différentes informations, sur votre tenant Office365, à partir de plusieurs applications.

En gros, Microsoft Graph vous permet de requêter un seul endpoint et de récupérer vos informations personnelles Office365 (comme votre photo, votre adresse mail, …), vos tâches, votre calendrier à partir de Outlook, vos notes à partir de OneNote, … Bref, cela permettra à vos applications de se connecter, de récupérer et de présenter beaucoup plus facilement toutes les informations nécessaires de l’utilisateur courant.

Pour plus d’information, consultez le lien suivant :



How to prevent user from sharing content or assigning other site collection administrators in his "MySite"

Use case : User can administer his “MySite” site but he shouldn’t have the right to share anything content or assign permissions in his site (customer need).

Platform : SharePoint Server 2013

Problem : The owner of a “MySite” site is a site collection administration. Even if we change his permissions on a list or document library and remove the “Manager Permissions” base permission, as he is a site collection administrator, he will have the right to share his content.

Workaround : The idea is using the “Permission Policy Levels” on the web application that is hosting the “MySites” site collections.

The steps are described below : 

  1. Go to “Central Administration” and click on “Manage Web Applications”
  2. Click once on the “MySites” hosting web application and click on the ribbon on the button “Permission Policy” under the group “Policy”.
  3. Click on “Add Permission Policy Level”
  4. Under the “Name and Description” section, give your permission policy level a name (‘FullPermissionsWithoutSharing’ for example), a description (not required).
  5. Under the “Site Collection Administrator” section, don’t check the two checkboxes.
  6. Under the “Permissions” section, check the “Grant All” checkbox. This will check all the checkboxes in this column. Under the “Deny All” column, we check the “Manage Permissions” and the “Manage Web Site” checkboxes. The first one will prevent users from sharing their content or inviting other users to their site contents. The second one will prevent users from assigning other site collection administrators (The first one didn’t allow to do that).
  7. Save the “Permission Policy Level”
  8. In the “Central Administration”, go to the “Security” section and click on “Specify Web Application User Policy” (under “Users” group).
  9. Click on “Add users”
  10. Click “Next” (you can specify the zone affected by this permission policy level or keep it by default for all zones).
  11. Under “Choose Users” section, choose the user/group on which you want to apply this permission policy. For my case, I selected a group of users.
  12. Under “Choose Permissions”, Check the new permission that you created.
  13. Click on “Finish”.

Now, when a user creates his own “MySite”, he will be assigned this new permission policy. He will have full control over his site but he will not be able to share any content or assign other site collection administrators.

Hope this helps you. Please, feel free to give your feedback.

"The Feature is not a Farm Level Feature and is not found in a Site level" for a web scoped feature in SharePoint 2013

I have a SharePoint 2013 farm and I faced this issue when I tried to enable my web scoped feature in all site collections root webs by using PowerShell. The error was “Enable SPFeature : The Feature is not a Farm Level Feature  and is not found in a Site level”.

But the weirdest thing is that all the tricks that I found on different blogs did not resolve my problem. This was due to the face that I was in a special condition. In fact, I was trying to activate a feature with compatibility level of 15 in a site collection which wasn’t already upgraded to the 15 mode, i.e in a site collection that has been migrated but not yet upgraded.

So, in order to resolve this weird error, I’ve just upgraded my SC and the error was gone. Voila !

SharePoint 2013 – Deploying a solution to a single Web Application

Has anyone of you faced this a day ? A simple SharePoint project with a simple web scoped feature, having tens of web applications and you want to deploy your wsp to a single web app ? This is possible, but considering having many web applications, the deployment timer job will take too much time .You think you can do it ? Yes, simply by specifying the name of the web application in which you want to deploy your wsp, like this :

but SharePoint will not allow you to do it. This is what SharePoint answers :

The trick is simple, just add a SafeControl element in the package.package manifest. Open your package.Template.xml file, then, you’ll just need to specify the location of your dll (normally, it’s the same as your dll name), the assembly name and the namespace.

Now you package and deploy your solution again, and voila ! Your wsp is now deployed to the web application that you specified in your powershell script.

SharePoint lists : Techniques for managing large lists

I know that there are a lot of blogs and posts treating this sensitive subject, but I recently found what I call a “Summary Post”.

This post is a course from the official Office site, it will help you understand what is the SharePoint list limit threshold and how to avoid it, and a bonus, there’s a nice Q&A session at the end, so enjoy 🙂

Blog :

SPDistributedCachePointerWrapper::InitializeDataCacheFactory – No cache hosts are present in the farm.

After a new installation of SharePoint Server 2013, I tried to open the default site on port 80 but this one wouldn’t. I looked in the logs for the exception according to the correlation id, I found the following message : “SPDistributedCachePointerWrapper::InitializeDataCacheFactory – No cache hosts are present in the farm.”.

Many blogs point you to the solution “Delete and add a new Distributed Cache”, but the error was simply caused by the firewall which closed the port 22233 of the AppFabric.

So you can simply disable the firewall like I did or add exceptions for 22233, 22234, 22235 and 22236 TCP ports for AppFabric to work perfectly.

You can refer to this blog :