Don’t create a SharePoint site with the URL “con”

This might not be news to everyone but this issue was a new one for me. I went to go create a site for a client around the state of Connecticut. I had created multiple other sites using the first 3 characters of the state name; ARI, WIS, etc. So I then went to go create a site with the URL of “con” ……

And then……

Server Error in ‘/ Application with a 404 cannot be found error! At first glance this makes no sense. Your site exists, you can see it in site contents:

I found out that this was due to a reserved words list. This list is not directly within SharePoint, but within the fundamental rules of naming files in Microsoft, regardless of file system. Here are the words that you cannot use as the name of a site, library or list.

CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9

If you have created one of these sites you can still delete them through Site Settings -> Content and Structure.

Select your sub site and click Delete.

SharePoint Server 2016 Release Candidate

sp2016rc

Microsoft has released its latest public release of SharePoint Server 2016 as a Release Candidate.  This is the next update after the SharePoint Server 2016 Beta 2.  This release is “mostly feature complete.”  That means that we should not expect to see any major changes prior to the General Availability release this year.  I wanted to write this post to highlight a few key areas for this release.

  1. The SharePoint Server 2016 RC is an UPDATE to SharePoint Server 2016 Beta 2.  So if you have Beta 2 installed this should be installed just like another SharePoint update with psconfig being ran after the update is installed.
  2. InfoPath 2013 and SharePoint Designer 2013 will continue to be the last version of these products and follow the support life cycle of SharePoint Server 2016 through 2026

Here are the handy links!

How to Promote Office 365 Video Search Results in SharePoint

The Office 365 Video portal is a great solution for managing videos. It is much better than trying to host videos in a standard site collection in SharePoint Online. I don’t want to go into the Office 365 Video portal in this post but here are some great starting points.

After using the Office 365 Video portal both internally and with clients there was one area that I wanted to try to improve on, searching and finding. The majority of clients I work with have a standard intranet with many now being hosted in SharePoint Online. When I help with intranet builds I try to incorporate the search center as a key piece of functionality. In Office 365, this is a prebuilt site collection under the URL – https://domain.sharepoint.com/search.

With the search center, I try to include core metadata that can be used as refinement when possible. As the search center can be a central area for functionality I wanted to try to improve the usability of the current Videos vertical refiner with better incorporation of videos hosted in the Office 365 Video portal. Office 365 Videos are already returned in search results via this refiner but this will most likely also pull junk videos people have uploaded across SharePoint.  So I was looking for a way to clean this up.

  • A simple solution to hide junk videos is to promote all videos that are hosted in the Office 365 Video portal above any other items being returned through the Videos search results through a query rule.

Here was our search center before…

2016-01-15-23_11_28-Search_-Internet-Explorer_thumb (1)

Here is our search center after…

image_thumb

As you can see the videos that we want people to see are now front and center.  I also added the Content Type refiner so people could pick other Content Types besides Cloud Video.

Steps to build the query rule

** As a reference I am building this query rule just on the Search site collection.  This could be done at the tenant level as well.  **

  1. Navigate to your search center as someone who has site collection administration
    • https://domain.sharepoint.com/search
  2. Use the gear to go to Site Settings.   Under Site Collection Administration click Search Query Rules
    • image_thumb1
  3. Click the Select a Result Source… drop down and select Local Video Results (System)
    • image_thumb2
  4. Click New Query Rule
    • image_thumb3
  5. Give it a name (i.e. Video Portal Promotion)
  6. Under Query Conditions, click Remove Condition. We are selecting this because we want this to fire on all events.
    • image_thumb4
  7. Under Actions, click Change ranked results by changing the query
    • image_thumb5
  8. Under the Sorting tab, change the Sort by to be by Rank
    • image_thumb6
  9. On the same sorting tab, click Add dynamic ordering rule
    • image_thumb7
  10. Now we get to change the ranking.  On the first drop down select Manual condition.  In the manual condition, we only want to return videos from the O365 video portal.  To do this we will filter by the ContentTypeID.  There is a new content type called “Cloud Video” that is published with videos in the O365 video portal.  The last section of the ContentTypeID is not consistent across channels (site collections) but the beginning string is.  Here is the condition:
    • ContentTypeId:0x010100F3754F12A9B6490D9622A01FE9D8F012*
  11. Ensure the last drop down states Promote to top and then click OK and Save.
    • image_thumb8
  12. Sit back and look at your great new query rule
    • image_thumb9
  13. Now if you run a search your good videos will always be before your bad videos
    • image_thumb10

The last step you could do is add the Content Type option as a refiner.  This is done through editing the page and editing the refiner web part.

With videos being available in search and the power of Display Templates in SharePoint, this could be just the start of integrating videos back into your SharePoint sites and user experiences.

Create SharePoint Subsites with Custom Permissions & Templates Using Powershell

powershell2I had a situation recently in which we were performing a migration from SharePoint Services 2.0 up to SharePoint 2013. When testing the path of copying the sites directly from 2.0 to 2013 they didn’t come across very clean. One of the main reasons was the way permissions was done in 2.0 does not directly match 2013. If we would have performed a migration like this they would have had a working environment but it would have been very hard to manage moving forward. Knowing that we didn’t want to copy the sites we decided to try to create all the new sites prior to the migration and then only copy the content.

When performing our pre-migration analysis we found around 2,000 sites and subsites. We performed multiple information architecture planning workshops to figure out the new site structure for 2013. Once we had the agreed upon new site structure we could then map the sites that needed to be migrated to their new locations. Once we had this kind of data I knew I could automate the creation of all the sites. Now I never like to start my scripts from scratch if I don’t have to and there are a lot of very smart people out there posting helpful info. I found some scripts online and put them together with my own special inserts and use cases. To give the proper credit to where I got this script started.

  • This is a great codeplex solution from @PhillipChilds that will create subsite structure as a CSV. This was a good start but would require me to enter all the information for the SharePoint groups that I needed.
  • I then found this script from @PointBeyond which would create the 3 default SharePoint groups I was looking for.

So now I had a script that would create subsites based on a CSV and create 3 default SharePoint groups if stated, awesome!

My last issue I ran into was the ability to apply a custom site template on the subsite. (here is a list of available site templates in SharePoint 2013 thanks to @vladcatrinescu) When you try to create a subsite using Powershell and pass through a custom site template it will not actually apply the template. The way to get this to work was to apply the site template after the subsite was created. So now all templates being applied whether default or custom will be applied after the site is created. Here is a little trick on how to get a custom site template ID without using Powershell.

I also included the enabling and disabling of a few site features.

  • Minimal Download Strategy will be disabled
  • Getting Started will be disabled
  • Publishing will be enabled

Here is a link to the script and the CSV to get started.

16235-illustration-of-a-green-download-button-pv

There are other areas that I would like to expand on this script but if you have any ideas please let me know!