Enterprise Search in SharePoint 2013


As I have been increasingly working with Enterprise Search in SharePoint 2013, I have found myself continuously re-researching specific topics. Thus,¬†I have decided to publish this post and keep ot up to date with search content and configuration selfishly for my own reference, but if some else finds it useful – yayy! ūüôā

Search Schemahttp://technet.microsoft.com/en-us/library/jj219669.aspx
Large article encompassing search topics such as, crawled properties, managed properties, the seach index, and the variety of settings in search.

Search Relevancehttp://technet.microsoft.com/en-us/library/cc835623.aspx
Obviously a huge topic in SharePoint search. The above link is really just a reference point to several topics.

Search Architectural Diagramshttp://www.microsoft.com/en-ca/download/details.aspx?id=30374
PDF and VSD files containing the full search architeture in SharePoint 2013 Search.

Search Dictionaieshttp://office.microsoft.com/en-us/office365-sharepoint-online-enterprise-help/manage-search-dictionaries-HA103629159.aspx
Information regarding company names and spelling correction dictionaries.

Company Name Extractionhttp://technet.microsoft.com/en-us/library/jj591605.aspx
Functionality which allows administrators to provide SharePoint search with one or more company names. These can then be used as refiners to help narrow search results for users. Additionally this functionality supports both inclusion and exclusion lists.

Understanding Query Ruleshttp://office.microsoft.com/en-ca/sharepoint-server-help/understanding-query-rules-HA102848833.aspx
Pretty self-explanatory, but contains some high-level examples.

Changing the ranking of search results in SharePoint 2013http://blogs.technet.com/b/tothesharepoint/archive/2013/06/25/changing-the-ranking-of-search-results-in-sharepoint-2013.aspx

SharePoint 2013 Search Guidance –¬†http://planningservices.partners.extranet.microsoft.com/en/SDPS/SAPSDocuments/SharePoint%202013%20Search%20Guidance.docx

Building Search Queries in SharePoint 2013 –¬†http://msdn.microsoft.com/en-us/library/jj163973(v=office.15).aspx

I’ll keep updating this post as I find more useful information!

Trouble Upgrading to Windows 8.1?


I know I sure had a lot of trouble upgrading! I did all the updates like I was supposed to and the download would just not show up in the store! Very frustrating experience. So I did was all good IT folks to – Googled it!

The end procedure was simple actually:

  • Crack open IE on your target upgrade box
  • Paste the following link in your address bar and hit enter


  • This should open the Windows Store to a nice Windows 8.1 download
  • Click download and wait for it to start prompting you for action

This procedure seems to work for both Windows RT and Windows Pro. Special thank you to francescob who was kind enough to post the above Windows Store link in the comments section of this article.

Uploading a File to an Azure Storage Container


Here’s the scenario: You have a file or blob of sorts that needs to be stored in an Azure Storage Container. That’s great – how do you get it to the container?? I have done this a few times and PowerShell is definitely my preferred method but I can never remember the steps. So, for my benefit and maybe others, here they are:

1: Get-AzurePublishSettingsFile

This will actually pop open IE (or your default browser), have you log into Azure, and then automatically download a .publishsettings file. You’ll need this file to import and set up your subscriptions. More information on this command can be found on MSDN here.

2: Import-AzurePublishSettingsFile <pathToPublishSettingsFile>

This import command does exactly as it describes, allows you to import the .publishsettings file from step 1 to your local PowerShell environment. When this import completes, it will tell you which subscription (only matters if you have multiple) has been set as the default subscription. If you need to change this, use step 3, if not, proceed to step 4. More information on this command can be found on MSDN here.

3: Select-AzureSubscription <subscriptionName>

This command is optional and simply sets the current Azure subscription to be used in the existing context. More information on this command can be found on MSDN here.

4: $context = New-AzureStorageContext -StorageAccountName <storageAccountName> -StorageAccountKey <storageAccountKey>

This command generates a new Azure Storage Context and stores it in the variable $context. This will be used to tell PowerShell where the new blob is going to be stored in Azure. Your storage account name and key are both found within the Azure management site. More information on this command can be found on MSDN here.

5:¬†Set-AzureStorageBlobContent -Blob “<blobName>” -Container <containerName> -File “<sourceFileName>” -Context $context -Force

This is where the magic happens. Set-AzureStorageBlobContent, again, does exactly as it describes. The Blob parameter is what the file (or blob) will be called once uploaded to the Azure container. Container is the target container within your Azure storage account. The File parameter is the full path and name of the source file that you want to uploaded to the Azure container. Context is the context variable from step 4. Once executed, you will see a status appear at the top of your PowerShell console which shows the percentage uploaded until the upload is complete. More information on this command can be found on MSDN here.

For bulk uploading, the best thought I have is to read a directory that is to be uploaded, then run this command in a loop. If anyone has a better way – please feel free to comment on this post and I’ll update it and give credit for the suggestion!

News on the Office Store Front: Subscription Apps!


This is really big news on the Office Store front, at least in my humble opinion, and straight from the Office News blog: http://blogs.office.com/b/office-news/archive/2013/10/01/office-store-investments-bring-new-opportunities-to-developers.aspx.

It reads as though we’ll be able to submitting updates to existing apps and submitting new apps for approval which leverage a subscription model sometime this month (October 2013). These apps will be available for purchase in the store starting in November! Looks like some of the supporting pricing model documentation has been updated too.

Now, I am personally a bit less concerned with Apps for Office and more concerned about Apps for SharePoint – naturally – but this is a big deal for both! What is the significance of the addition of this subscription pricing model? The answer is two-fold for me:

1) Constant revenue stream

This is a big problem I have had with the whole movement toward apps in general. For phones, tablets, you name it – anything you buy apps for. I know Apple addressed it a while ago – which was great – but for those of us taking a hard look at SharePoint 2013 app feasibility – how do you build a business focused app, sell it for a one-time fee, and support it forever? It’s not exactly a business model I’d be to ecstatic¬†to jump into.

There was the option of making the app free and building your own subscription model into it, but knowing sometime down the road that Microsoft was going to release this functionality to the store didn’t really drive me to dedicate resources to building one of my own.

2) Support / maintenance costs

This really goes hand-in-hand with the requirement of a constant revenue stream, but I like to highlight it due to the importance of it in planning an app. Typically a solid app is going to require some kind of back-end system or infrastructure  as well as people to support it. I know there are apps or services out there, such as some of the platform agnostic messaging apps, which are reliant on outside capital to support their infrastructure and development while the business grows. There is nothing wrong with the outside capital approach and it could very well be used to when developing subscription apps Рbut the subscription model provides that clear revenue path to support and maintain what is required for the app to function. It also makes the business model a bit more desirable if you do need capital.

Take a document conversion app for SharePoint Online as an example, the conversion itself needs to happen somewhere outside of SharePoint and someone needs to pay for that processing power. A subscription takes care of these costs. Don’t get me wrong, a large enough single purchase price could as well, but a small monthly cost is easier to sell than a large one-time cost.

There are many more reasons why this announcement is important to app developers and businesses, I for one am just happy the Office app subscription model is becoming a reality!

CalSPUG – October 17, 2013


I am very excited to tell you that Ruven Gotz (yes his blog is also part of spinsiders.com) will be presenting the topic “Taxonomies, Content Types and Metadata, Oh My!” this October at our regular CalSPUG meeting day on the third Thursday of the month (Oct. 17th). Doors open at 5:00, presentation should start around 5:30 with food and drinks provided! To register, please do so here:¬†http://calspug-2013-10-17.eventbrite.ca/.

For those keen individuals, you may have also noticed that we haven’t announced anything for September yet. While it doesn’t look likely that we will be having an event this month (due to scheduling conflicts), we are working diligently with presenter to organize a possible second event in October. Please keep an eye to your inbox for further details.


Office 365 Pricing for Nonprofits Released


… well, kind of. We’re still waiting on some Office 365 for Small Business Nonprofit pricing, but it shouldn’t be too long. Complete details can be found here.¬†Here are the highlights (prices are in CAD):

  • Office 365 Small Business for Nonprofits ‚Äď Price coming soon, limit 25 users (Retail $5.10/user/month annual subscription)
  • Office 365 Small Business Premium* for Nonprofits ‚Äď Price coming soon, limit 25 users (Retail $13.25/user/month annual subscription)
  • Office 365 Enterprise E1 for Nonprofits ‚Äď Donation, unlimited users (Retail $8.20/user/month annual subscription)
  • Office 365 Enterprise E3* for Nonprofits ‚Äď $5.20/user/month, unlimited users (Retail $23.20/user/month annual subscription)

*Note: These plans include desktop installations of Microsoft Office 2013.

Not-for-profits / charities involved in the following activities are eligible (if you’re eligible for TechSoup, you should be eligible for this):

  • Providing relief to the poor
  • Advancing education
  • Improving social welfare
  • Preserving culture
  • Preserving or restoring the environment
  • Promoting human rights
  • Establishment of civil society

The usual organization are not eligible such as government, education, health care, etc.

Complete pricing and plan details can be found here.

Who has forwarding enabled in their Exchange Online mailbox??


How do I know, without looking at the properties of every Exchange Online mailbox, which users have setup mail forwarding on their mailbox? ¬†That is a very good question. ¬†If you Google around you’ll find lots of interesting answers, particularly around using LDAP queries to identify those mailboxes – but how do you do that in Exchange Online??? ¬†PowerShell is the answer!

First, here is how you connect to your Exchange Online tenant: http://technet.microsoft.com/en-us/library/jj984289(v=exchg.150).aspx.

Second, run this command:

Get-Mailbox -Filter {ForwardingSmtpAddress -ne $null}

That will give you a list of all the users that have enabled (or have a not null) forwarding address configured.  Taking this one step further you can grab the user and the destination address by using this command:

Get-Mailbox -Filter {ForwardingSmtpAddress -ne $null} | foreach {$recipient = $_; $forwardingsmtp = (Get-Recipient $_.ForwardingAddress).PrimarySmtpAddress; Write-Host $recipient.Name, $_.ForwardingSmtpAddress }

Ultimately you’d probably want to put this in a script of it’s own an pipe the results to a text file for further analysis.

Lastly, don’t forget to disconnect your PowerShell session – remember, you can only have 3 open sessions to Exchange Online.

Creating a Site-to-Site Connection between Azure and pfSense


This was a big of a tricky endeavour¬†and obviously a topic that I I don’t typically cover on this blog. ¬†The whole reason for the post actually directly relates back to my Moving to Office 365 post as I haven’t get succeeded in moving enough of my operations to the cloud such that I am not dependent on my main internet connection any more.

I was able to find a few resources on this topic which were helpful with my initial configuration:

How you can connect an Azure cloud to a pfSense network over IPSec – Excellent how-to article to get you started!

After repeatedly not successfully establishing a connection between the two networks and only seeing ERROR: invalid flag 0x08 in my IPsec log I concluded that something had changed after the articles were written.  After lots of digging I found couple changes which were required:

1) The first thing I found in this article which indicated that the encryption algorithm had moved to AES 265 from AES 128.  Change made, still saw the same error.

2) The second obvious thing missing from the above article is after step 12 (Create Gateway). ¬†Along with the Create Gateway function now, you have the choice of creating a Static Routing or Dynamic Routing Gateway. ¬†Doing a bit more research I came across this¬†(same as issue 1) article which recommends that you create a dynamic routing gateway. ¬†Fair enough, it sounds like it would be the easiest for me to maintain. ¬†WRONG! Scrolling further down that article, you find the ‘Key exchange’ property, on a static routing gateway it is IKE v1, on a dynamic routing gateway it is IKE v2. ¬†What is the significance of this you ask? I refer you to this discussion on the pfSense form. ¬†IKEv2 is not supported by racoon which is the foundation of the pfSense IPSec implementation. ¬†A quick removal of my current Azure gateway and creation of a static routing gateway worked beautifully! ¬†Connection established!



Bad Behavior has blocked 44 access attempts in the last 7 days.