Samstag, 5. September 2015

SharePoint 2016 BETA Search – a first look under the hood

PowerShell for SharePoint Search

Installing and configuration using PowerShell works similar to SharePoint 2013. You can use the same cmdlets and scripts as in SharePoint 2013.
Even if you not created a Cloud SSA as part of “Cloud Hybrid Search Preview for SharePoint Server 2013 and 2016” cloud and hybrid topics can be found everywhere.
For example I checked some new parameter within Get-SPEnterpriseSearchServiceApplication:
$sa = Get-SPEnterpriseSearchServiceApplication
$sa = Get-SPEnterpriseSearchServiceApplication
There is also another interesting information when we have a detailed look at the search topology. As you can see for every component we have a status information “ExperimentalComponent”. This can give us an information whether “Cloud Hybrid Search Preview for SharePoint Server 2013 and 2016” is configured or not.

SharePoint 2016 BETA Ceres – a first look

The Ceres shell is:

  • -          a set of PowerShell cmdlets.
  • -          It allow to control the internal workings of SharePoint Server search.
  • -          It is taken over from the FAST search engine
  • -          We can use it to tweak the search engine inner working
  • -          modifying the settings can completely crash SharePoint Search
  • -          it is part of SharePoint since SharePoint 2013
Manipulations are not for production use, nor supported by Microsoft – but, it can get us a better understanding of what is going on under the hood. If you are interested in further information about the Ceres have a look here: SharePoint 2013 Search internals: The Ceres shell.

Bevor we can use the cmdlets we need to set up PowerShell and connect to the Ceres:
  • cd "C:\Program Files\Microsoft Office Servers\16.0\Search\Scripts\"
  • .\ceresshell.ps1
  • Connect-System –Uri (Get-SPEnterpriseSearchServiceApplication).SystemManagerLocations[0] -ServiceIdentity (Get-SPEnterpriseSearchService).ProcessIdentity
  • Connect-Engine
  • Connect-AnalysisEngine -NodeName AdminComponent1

To get an overview of all available cmdlets use this:
Get-Command -Module analysisenginepssnapin
Comparing this overview to SharePoint 2013 we see new commands:
  • -           Get-AnalysisEngineIsPaused
  • -           Get-AnalysisEngineWorker
  • -           Register-Analysis
  • -           Unregister-Analysis

Actually no further information or documentation is available for this new cmdlets.
Using the get-analysis cmdlet we get an overview for all Analytics component SearchAnalytics, UsageAnalytics and SearchReports. If you are interested in further information about the Analytics components in SharePoint 2013 have a look here: PowerShell for SharePoint 2013 Analytics Feature
In SharePoint 2016 BETA we have a new Analytics component called “LinksStoreInput”
This new component also results in a new subfolder within the Office Server Analytics directory:
Actually no further information or documentation is available about this new component. Based on the name we only can suppose what it is doing.


Get-flow is about the definition of “what” is happening in the Search internals. Manipulations are not for production use, nor supported by Microsoft. The Content Enrichment Web Service is the primary documented and supported mechanism for implementing "custom" processing logic in SharePoint Search – but, it can get us a better understanding of what is going on under the hood and what is new in SharePoint 2016 Search.
Using the get-flow cmdlet results in an overview showing all flows.
In SharePoint 2016 BETA the following FLOWS are new:
-           Microsoft.ContentPushFlow
-           Microsoft.ContentPushHybridFlow
-           Microsoft.ConversationalLatencyFlow
-           Microsoft.PropertyRetrievalSearchFlow
-           Microsoft.SearchAnalyticsBuzzFeederFlow
-           Microsoft.SearchAnalyticsBuzzInputFlow
-           Microsoft.SearchAnalyticsBuzzImportFlow
-           Microsoft.SearchAnalyticsBuzzOutputFlow
-           Microsoft.SearchAnalyticsExternalContentMapFlow
-           Microsoft.SearchAnalyticsExternalContentPushFlow
-           Microsoft.SearchAnalyticsFollowsImportFlow
-           Microsoft.SearchAnalyticsFollowsInputFlow
-           Microsoft.SearchAnalyticsGraphIndexFeederFlow
-           Microsoft.SearchAnalyticsInFeedInputFlow
-           Microsoft.SearchAnalyticsTagsImportFlow
-           Microsoft.SearchAnalyticsTagsInputFlow
-           Microsoft.SignalStoreInputFlow
-           Microsoft.UsageAnalyticsImportFlow
-           Microsoft.DocumentPreviewMetadataFeederFlow
-           Microsoft.PeopleSuggestionDictionaryDeploymentFlow
-           Microsoft.QueryCompletionPeopleOutputFlow
-           Microsoft.QueryCompletionPersonalizedQueryLogsOutputFlow
-           Microsoft.QueryCompletionPreFetchOutputFlow
-           Microsoft.QueryCompletionQueryLogsInputFlow
-           Microsoft.QueryCompletionQueryLogsOutputFlow
-           Microsoft.CrawlerPropertyReportingSubFlow
-           Microsoft.CrawlerSecurityInsertHybridSubFlow
-           Microsoft.ExplorerFlow
-           Microsoft.GraphSearchProviderFlow
-           Microsoft.QuerySuggestionsQueryLogsFlow
-           Microsoft.DeleteTenantFromIndexSystemFlow
-           Microsoft.IndexingSubFlow
-           Microsoft.DataLossPreventionSubFlow

This can give us an overview of what has changed and what is new in SharePoint 2016 Search. So the main topics based on this get-flow list are:
  • -          Content Push
  • -          External Content Push
  • -          Graph Index Feeder
  • -          Graph Search Provider
  • -          Signal Store Input Flow
  • -          Crawler Security Insert Hybrid Flow
  • -          Data Loss Prevention

If you interested in a deeper look in what’s going on in a flow you can use this cmdlet:
get-flow %flow name%


Cloud-awareness can be found everywhere in SharePoint 2016 Search, even if no Cloud SSA is configured.
New features in SharePoint 2016 Search will be:
  • -          Content Push
  • -          External Content Push
  • -          Office Graph interactions
  • -          Hybrid Crawler
  • -          Data Loss Prevention support

Dienstag, 23. Juni 2015

Delve‬ ‪PeopleProfile‬ ‪Blog‬‬‬

The new Delve-based Blog engine is launched in Office 365

We can use this new feature by navigation to Delve, click on a Profile page and click “All Posts” or “Start Writing”
Clicking the “Start Writing” option we are redirected to the new authoring engine.
Everyone who already worked with Sway will find a really similar and well known experience. In the top section we can easily add a picture and a title. In the lower section we can add text or content located in OneDrive for Business or uploaded from out device.
Using the “Add Office Document or select a suggested Document below” we can add content to the site

Within some mouse clicks we can create a new site / post. This new UI is based on the ideas of Sway and follows the new user experience for “Ready to go next Generation Portals”. The ideas and techniques we can see here are the same we will hopefully see for “Infopedia” and Microsites in SharePoint as shown during Ignite 2015 in Chicago in May.
For more details and to see the new Blog engine in action watch this video:

Samstag, 9. Mai 2015

My impressions & notes from this year Microsoft Ignite

I share my OneNote stuff and impressions from this year Microsoft Ignite with you.
Fined my notes as I typed them during the sessions I watched in this Sway...:

...if you have any questions, something is not clear to you or you are interesting in a special topic just contact me.

Sonntag, 8. Februar 2015

Getting Emails with Attachments from Office Graph using REST API

Email attachments are now also covered by the Office Graph and Delve

Since a couple of days Delve is showing Email attachment:
More details about this, the Delve card for “Emails with Attachments” and its functions can be found in this blogpost: Delve starts to add emails with attachments to results

Using the REST API we can get this data, too. Getting all emails with attachments for the signed in user we can use this call:

The contentcalass filter 'contentclass:exchangeattachment’ is scoping the result only to mails with attachments.
This query only returns result for the user who runs the query. Because of Email contentclass results are only shown in the Home Feet in Delve it is a private signal. In Detail every person who received the mail and within the mail also the attachment gets it in his Delve Home Feet:

Montag, 12. Januar 2015

O365 Groups – new feature

Opening a document attached to a Group discussion is showing a new feature. The document opens in Office WebApps and the discussion thread is showing at the right side.
Cool new feature.

Sonntag, 4. Januar 2015

The anatomy of Office 365 Groups

Microsoft released a new feature called „Groups“. This article is about the anatomy of this feature, the architecture and the structures in the backend.
For common information and the ideas behind Groups check out this link:

Create a Group

Groups are actually only available in O365 using Outlook online. You can create a new Group by navigating to Outlook online “Group” tab and press “Create Group”:

This starts a dialog for to collect the needed information’s like Name, Privacy settings etc.
Default setting for Groups in O365 allows everyone to start a new Group. To change this we need PowerShell:
Connect to your O365 Tenant -> Exchange Online:
Then we can use this commands:
-          to disable Groups: Set-OwaMailboxPolicy -Identity\OwaMailboxPolicy-Default -GroupCreationEnabled $false
-          to enable Groups: Set-OwaMailboxPolicy –Identity\OwaMailboxPolicy-Default -GroupCreationEnabled $true

Groups architecture

After a new Group is created you see a new tab in Outlook online for this Group. For every Group we have an overview page like this:

We can see all the conversations for this Group. Based on the “subscribe setting” during the create dialog every post in a conversation will result in an Email to all members of this Group. Insofar we are still in Exchange online.
We can also see that per Group we have elements like Calendar and Files. Calendar is also based in Exchange online but Files are based in SharePoint online. Navigating to the Files of a Group redirects to the MySite of the user:

But the MySite host is not where the documents a stored. For every Group a hidden Site Collection is created in SharePoint online. We cannot see this Site Collection in SharePoint online administration, but you see the URL for example in the hover-panel of a document:

So in my example the URL of the hidden Site Collection associated to my Group is:
We cannot access this Site Collection. Navigation to this URL automatically redirects us to the Group Files overview page located in users MySite. This is also true for every other Sub-URL. So if we try to go to _layouts/15/seetings.aspx or to the _layouts/15/listedit.aspx to change Document Library Setting etc. we are redirected to the Group Files overview page located in users MySite. The only way to manipulate settings is using SharePoint Designer or SharePoint Client Browser. Opening the Site in SharePoint Designer looks like this:

As we see we can manipulated some settings using SharePoint Designer. BUT this is not supported and can only be useful as part of testing and troubleshooting scenarios!
Last component is Azure AD. As we see so far Groups are using Exchange online and SharePoint online. So question is what kind of objects are Groups – and the answer is that Groups are Azure AD objects.

As you can see we have a Groups tab in Azure AD and there we can find a list of all Groups. Navigating to a Group we have several settings and information’s, amongst other things we can see the Objekt-ID which is the unique identifier for the Group.
So Groups are not a SharePoint online thing and also not an Exchange- or Outlook online thing. Groups are located in Windows Azure AD and Groups are a Office 365 feature. Because of this: Groups can easily be used in all features belonging to Office 365 and the underlying Windows Azure AD. The article I mentioned at the start of this post talks about “…In upcoming phases, we will add Yammer and Lync to the Groups experience to help you do even more”. Now we understand that this can easily be done based on the underlying Azure AD.