Dogfood Conference 2015 Wrap-up and Slides

Dogfood2015I really enjoyed my time at the Dogfood Conference in Columbus last week. The attendees were great and all three of my talks were well received. I want to express my thanks to the conference organizers and the attendees for the wonderful conference. I really enjoyed myself this year and I hope to be invited back to speak again next year.

I had lots of attendees at both sessions who asked for the slides so I’ve uploaded them here.  You can also get them from the conference.  You can download a PDF of the slides from each talk using the links below:

Intro to Yammer: Redefining Enterprise Social

Intro to Office Graph and Delve: Finding what you want before you know you need it

SharePoint 2013 “Apps” 101: A Basic Introduction


Managing External Sharing in Office 365 – Part 2

Office365This is the second in a series of posts that is reviewing details about how to manage External Sharing in Office 365.  This post will cover the process of what happens from the time you fill in the sharing dialog to share a site or document with another user until that user accesses the site.  For the purpose of this overview we won’t get into the specifics of how this process differs for an external user.  We’ll cover that in the third installment of this series.  If you haven’t read the first post in the series you can access it through the links below:

  • Part 1 – A high level walk-through of how to configure external sharing starting with your O365 tenant and going down to an individual site collection.
  • Part 2 – (This Post) How the process flow of sharing differs between sharing a site versus sharing a document and how Office 365 adjusts this experience
  • Part 3 – How external sharing depends on the site collection access request list to manage permissions for an external sharing invitation
  • Part 4 – How to use PowerShell to manage external users

How Sharing Works

To understand how external sharing works you first need to understand what happens when a user shares a document or site.  In this post we’ll trace the process that SharePoint goes through whenever something is shared.  We’ll take a look at what permissions are required to share a site or document and explain what the user experience is for a user who receives a sharing request.  Along the way we’ll discover that there is a significant difference between the experience of the recipient when receiving an invitation to share a site versus share a specific document.  We’ll also point out a potential difference in the experience between sharing in Office 365 versus an On-premises SharePoint environment. Note:  we’ll dig more into the differences between SharePoint On-line and SharePoint On-premises in Part 3 of this series.

Sharing a Site

If you are the Site Collection Administrator (SCA) or Site Owner (SO) the process for sharing a site or a document is the same.

Speaking at the Columbus Buckeye SPUG

BuckeyeSPUG_TranspI will be speaking at the Columbus Buckeye SharePoint Users Group on Thursday, January 16th. The meeting will start at 5:30pm. My topic will be "Share, Follow, and Sync: How SharePoint 2013 uses Personal MySites for Social functionality”. Here’s a brief description of the talk:

Prior to SharePoint 2013 many organizations built a MySite Host but never implemented personal MySite storage. This was a very viable strategy in 2010. But with the introduction of the Social features in SharePoint 2013 things have changed. In this talk we’ll review all the new "Social" features in SharePoint 2013 that depend on personal MySites. We’ll also look at how to control and manage personal MySites in your organization and discuss how future integration with Yammer may change this requirement. 

Next Buckeye SPUG Meeting: Jan 16th – 5:30 pm @ the Microsoft Polaris Office

Agenda

5:30pm – 6:00pm –> Food Sponsor’s Presentation

6:00pm – 6:30pm –> Community Time

6:30pm – 7:30pm –> My Talk

7:30pm +           —> SharePint @ The Pub

MCM, MCSM, and MCA Programs Cancelled

tombstone-rip

Less than two months after Microsoft announced a major change to the Microsoft Certified Masters (MCSM formerly known as MCM) program they’ve dropped another bombshell on the community. At the end of June Microsoft abruptly announced that they were removing all the pre-requisites from taking the MCSM Knowledge Exams and Qualification Lab to make the certification available to more people.  Last night at about 1:00 AM Eastern Time they sent out an email to all currently certified MCMs, MCSMs, and MCAs to give them the bad news that as of October 1, 2013 (Yes, that’s only 30 days from now) all the MCSM and MCA certification exams and training will be retired and the certification will no longer be offered.  Here’s the beginning of the email:

We are contacting you to let you know we are making a change to the Microsoft Certified Master, Microsoft Certified Solutions Master, and Microsoft Certified Architect certifications. As technology changes so do Microsoft certifications and as such, we are continuing to evolve the Microsoft certification program. Microsoft will no longer offer Masters and Architect level training rotations and will be retiring the Masters level certification exams as of October 1, 2013.

Words cannot express how deeply disappointed I am by this news.  The MCSM community has helped me several times in the last few months alone to find the answers to SharePoint problems that I’ve experienced in the projects I work on.  And I hope that I’ve helped some of my other MCMs with their problems.  After the news earlier this summer I was trying to decide whether recertifying my MCSM: SharePoint certification was worth it or not.  I had just about made up my mind that it was and had started talking to my management about getting the time to go back to training (one of the best parts of the program) to complete my recertification before time was up next June.  I guess I don’t have to worry about that anymore.  Crying face

Configuring Search Authoritative Pages with PowerShell

logo-powershellSomeone at work recently asked if you could configure the Authoritative Pages settings in SharePoint 2013 Search using PowerShell or whether the only way to do it was using the Search Service UI.  After a bit of research I found out that indeed you can configure the settings using PowerShell.  But I also found out that there isn’t a lot of documentation available on the web about exactly how to do it.  The difficulty is made worse by the fact that most of the documentation that does exist is for SharePoint 2010 Enterprise Search and there is a new required parameter in 2013 that makes all those Blog posts invalid.  So I decided it would be a good idea to write a “How To” post that would explain the required PowerShell.

What are Authoritative Pages?

When SharePoint web site pages and documents are returned in Search results one of the factors that effects their relevance placement is static rank.  Static rank is computed as the smallest number of clicks it would take a user to navigate from an authoritative page to a document. The closer a document is to the most authoritative page, the higher its static rank is.  Search Administrators can enter three (3) levels of authoritative pages for calculating the static rank of a search result.  They can also add site addresses to a fourth level which will demote the static rank of a specific result when compared to all other references.  In other words the closer a specific document is to one of the three authoritative pages the higher it will appear in a set of search results, while results that come from the non-authoritative sites will be at the bottom of the search results list.  For example, you might list a team site that contains draft copies of documents in the Non-authoritative sites and the home page of a document center site contains published copies in the most authoritative pages section.  This would lead to the elevation of published copies in search results instead of draft copies.

The PowerShell Cmdlets

There are two sets of PowerShell Cmdlets used to manipulate the authoritative pages settings.  First, there are four (4) Cmdlets for creating/managing the three (3) main authoritative page lists.  They are:

  • Get-SPEnterpriseSearchQueryAuthority – retrieves existing authoritative page(s)
    -Identity <AuthorityPagePipeBind>
    -Owner <SearchObjectOwner>
    -SearchApplication <SearchServiceApplicationPipeBind>
  • New-SPEnterpriseSearchQueryAuthority – creates a new authoritative page setting
    -Url <String>
    -Level <Single>
    -Owner <SearchObjectOwner>
    -SearchApplication <SearchServiceApplicationPipeBind>
  • Set-SPEnterpriseSearchQueryAuthority – changes the level of an existing authoritative page
    -Identity <AuthorityPagePipeBind>
    -Level <Single>
    -Owner <SearchObjectOwner>
    -SearchApplication <SearchServiceApplicationPipeBind>
  • Remove-SPEnterpriseSearchQueryAuthority – removes an existing authoritative page
    -Identity <AuthorityPagePipeBind>
    -Owner <SearchObjectOwner>
    -SearchApplication <SearchServiceApplicationPipeBind>

There are also three (3) Cmdlets for creating/managing the non-authoritative page list.  They are:

  • Get-SPEnterpriseSearchQueryDemoted – retrieves existing non-authoritative page(s)
    -Identity <AuthorityPagePipeBind>
    -Owner <SearchObjectOwner>
    -SearchApplication <SearchServiceApplicationPipeBind>
  • New-SPEnterpriseSearchQueryDemoted – creates a new non-authoritative page setting
    -Url <String>
    -Owner <SearchObjectOwner>
    -SearchApplication <SearchServiceApplicationPipeBind>
  • Remove-SPEnterpriseSearchQueryDemoted – removes an existing non-authoritative page
    -Identity <AuthorityPagePipeBind>
    -Owner <SearchObjectOwner>
    -SearchApplication <SearchServiceApplicationPipeBind>

The Parameters

As I mentioned before some of the parameters have changed since SharePoint 2010.  Most importantly the –Owner parameter is now a required parameter and it wasn’t in 2010.  Here’s what you need to know about each of the parameters:

  • Url – The New commands require a Url to designate the page or site address to be added as an authoritative page entry.
  • Identity – Identity is optional for the Get command.  Without an Identity the Get command will return all the authoritative pages.  The Set and Remove commands require that a specific page be identified.
  • Level – Specifies the level where the page address should be added.  Valid values are integers 0, 1, and 2 with 0 being the Most Authoritative Pages and 2 being the Third-level Authoritative Pages.
  • Owner – This was optional for 2010 but is required in 2013.  It must be set to a Search Object Owner designating either a Search Service Application or a Tenant Subscription in a Multi-tenant environment.  I’ll provide an example of how to get the Search Object Owner in the sample code below.
  • SearchApplication – This is the Search service application object to which the pages will be added.

PowerShell Sample

Now that we’ve looked at the commands and parameters lets look at a sample script that demonstrates how to use the commands.

   1:  #Get the Enterprise Search Service Application
   2:  $ssa = Get-SPEnterpriseSearchServiceApplication
   3:  
   4:  #Get the Search Owner object.  
   5:  #Must be either SearchServiceApplication (Ssa) or Multitenancy SiteSubscription (SPSiteSubscription) 
   6:  $owner = Get-SPEnterpriseSearchOwner -Level Ssa
   7:  
   8:  #Identity is either a valid url or an AuthorityPage Object(Retrieved with Get-SPEnterPriseSearchQueryAuthority)
   9:  $url1 = "http://siteURL/"
  10:  $url2 = "http://siteURL/sites/sitecollection/"
  11:  $url3 = "http://siteURL/Pages/Default.aspx"
  12:  
  13:  $mostAuthoritative = 0
  14:  $secondMostAuthoritative = 1
  15:  $thirdMostAuthoritative = 2
  16:  
  17:  #Try to get an existing Authoritative Page 
  18:  $sqa = Get-SPEnterpriseSearchQueryAuthority -Identity $url1 -Owner $owner -SearchApplication $ssa -ErrorAction SilentlyContinue
  19:  if ($sqa -eq $null)
  20:  {
  21:      #Create a new Authoritative page if one doesn't exist
  22:      $sqa = New-SPEnterpriseSearchQueryAuthority -Owner $owner -SearchApplication $ssa -Url $url1 -Level $secondMostAuthoritative
  23:  }
  24:  else
  25:  {
  26:      #Change the level of an exiting Authoritative page
  27:      Set-SPEnterpriseSearchQueryAuthority -Identity $sqa -Level $thirdMostAuthoritative -SearchApplication $ssa -Owner $owner
  28:  }
  29:  
  30:  $sqa2 = Get-SPEnterpriseSearchQueryDemoted -Identity $url3 -Owner $owner -SearchApplication $ssa -ErrorAction SilentlyContinue
  31:  if ($sqa2 -eq $null)
  32:  {
  33:      New-SPEnterpriseSearchQueryDemoted -Owner $owner -SearchApplication $ssa -Url $url2
  34:  }
  35:  
  36:  Remove-SPEnterpriseSearchQueryAuthority -Identity $url3 -Owner $owner -SearchApplication $ssa -Confirm:$false