Well, I realised that I announced my presentation, but never posted the slidedeck here. Without further ado, here it is:

A year ago, Microsoft released an updated set of Visio Stencils with icons for Office 365 and related products. They updated the set slightly and also provided the option to download the “older 2012 version”:

These stencils contain more than 300 icons to help you create visual representations of Microsoft Office or Microsoft Office 365 deployments including Skype for Business, Microsoft Exchange Server 2013, Microsoft Lync Server 2013, and Microsoft SharePoint Server 2013. The zip file now includes both stencil sets from 2012 and 2014.

Here’s an overview of all icons in the newest version:





















On June 17th and 18th, an online SharePoint conference named SPBiz with a major focus on business-related topics will take place. I’ll participate with a session called “Practical Advice for developing your SharePoint Roadmap”:

On-premises, cloud, or both? One centralized farm or multiple farms in different geographical regions? SharePoint as an intranet, an Enterprise Content Management System, or as THE central platform for all your company’s applications? Deciding what to do with SharePoint in your organization is an important task that needs to be properly planned and aligned with business goals. Developing a roadmap can help you with getting a shared understanding of the way ahead, the initiatives to be undertaken, and the outcomes to be achieved. In this session, you will receive practical advice on how to get started and how to develop your own SharePoint roadmap.

My session will take place from 3-4pm EDT (9-10pm CET). More details can be found on the conference website, the schedule for the 17th can be seen here:

Hope to see you there!

The official Office 365 Roadmap received some updates today. Here are the changes:


Office 365 Groups Notebook Notebook enables teams to capture, compile, and share information within your Office 365 Groups experience. You’ll find the notebook In the ‘…’ menu in the group header, and you’ll be able to jump right into the notebook from any of our other groups experiences.

Compliance Center for Office 365 The Office 365 Compliance Center is one place to manage compliance across Office 365 for your organization. You can define central policies that apply across your data in Office 365, such as preserve policies that keep content in SharePoint and Exchange indefinitely or for a set time period. Links to existing SharePoint and Exchange compliance features bring together the compliance capabilities across Office 365.

Rolling Out

Edit Office 365 profile details page update The new edit profile details page experience will be available for Office 365 users via the portal web experience. You can access the new experience via the gear in the top right of the navigation bar Office 365 settings Me. The new experience will include additional features including updated web design while in edit mode, responsive page layout on smaller devices, and quick link to change your profile photo.

The official Office 365 Roadmap received some updates today. The 5 biggest ones are:


Office 365 Admin Center for Business
The dashboard experience has been simplified for the new business plans to highlight only the most used tasks including setup, adding new users, resetting passwords and managing subscriptions.The complete set of settings and tools are accessible from the left navigation menu.

Office 365 ISO 27018 Privacy Compliance
In the upcoming Office 365 ISO 27001 audit, Office 365 will be including the ISO 27018 Privacy controls in their assessment. Inclusion of these new controls in the ISO assessment will further help Office 365 validate to customers the level of protection Office 365 provides to protect the privacy of customer data.


Rolling Out

Clutter control and admin capabilities
We are adding capabilities to help you control some aspects for the mailbox Clutter feature. These include the ability to exclude selection communications from Clutter, enabling items such as corporate communications to bypass the Clutter model. It also adds controls to provide customer controlled sending identity for communications from the Clutter feature, such as controlling the sending name and applying a corporate identity to improve trust in the messages. The round of updates also provides admin controls to assign a specific retention tag for the Clutter folder.


In Development

About Me Update and New Authoring Tool
The Office 365 user profile page, aka “About Me,” is getting a significant update. First, it will be more user friendly in its overall presentation and how it looks and responds across all devices. This update also introduces a new page authoring tool – that at first will be used to create stories within the company – then expand to enable creation of new types of dynamic pages. These stories and pages are created within the browser and have built-in hooks to add other Office 365 content (like documents from OneDrive for Business, videos from Office 365 Video and images a document library) in a seamless way. Finally, the new “About Me” page will highlight people and people search in a whole new way – from hierachical views, to showing who people most closely work with, and even a method to send a kudo to a co-worker.

Office 365 Video Update
Office 365 Video went into First Release (FR) on 11/18/14. This update will both move Office 365 Video to the broader worldwide production environment, beyond FR customers, and bring new updates for increased mobility and improved performance. For mobility, Office 365 Video will now have a companion iPhone app in the App Store, responsive Web pages across the video portal for access across devices of all sizes (PC, Mac, Android and iOS), plus extend video playback to non-Flash capable devices via our new HTML5-based player from Azure Media Services. We, too, have taken user feedback to enable more refinement for some of the admin controls available to portal and channel owners.

Microsoft has released a new version of the set of visio stencils with icons for Office 365 and the corresponding server products:

This set of stencils contains more than 300 icons to help you create visual representations of Microsoft Office or Microsoft Office 365 deployments including Microsoft Exchange Server 2013, Microsoft Lync Server 2013, and Microsoft SharePoint Server 2013.

While the previous versions contained all stencils in a single file, this time they have separated them into 10 different sets.  Here’s an overview of all icons in those sets:











My family and myself moved from Singapore to Switzerland in May last year, and I had the opportunity to work as a SharePoint and Office 365 consultant in a small, but aspiring consultancy. And while the initially expected possibility to work with Office 365 turned out to be fairly small in the end, I was still able to learn quite a lot – be it preparing proposals, creating documentation, investigating server issues, or creating solutions. Earlier this year, another job opportunity came up, and for the first time in my life I had to choose between two really interesting and challenging roles. As the post title suggest, I chose the new role in the end. Thus, since the beginning of July, I’ve been working as a Collaboration & SharePoint Applications Teamlead for a large MNC. As the long job title implies, I’m leading a small team of SharePoint (and generally, collaboration applications) specialists. Our team focuses on the applications side of SharePoint, meaning we’re working closely with the business to deliver valuable solutions, while the platform team helps to provide a stable and performing infrastructure.

This move has brought a few changes with it for me personally. For one, while I was previously quite busy with a lot of things that kept me from blogging, I’ve been spending even less time on my blog ever since I changed roles. Part of this is due to a change in what I’m doing (see above), partially also because I tend to spent more time with my family after work (seeing your small daughter grow up is simply something that I wouldn’t want to miss for anything in the world) instead of “exploring the latest and greatest in technology”. The scope of my work has also changed from a nearly purely technical nature with a bit of “other stuff” (project involvement, documentation, governance, …) to one where I’m working more on the “softer side of SharePoint” and spend more time with developing a governance plan, contributing to or leading projects, and generally shaping the future of SharePoint within the organization. This also means that during the past few months, my community involvement has been extremely little. I hope to be able to pick up the pace again, but quite likely I’ll be contributing less actively than previously.

Nevertheless, there are a few smaller things that I want to write about soon, and some smaller projects that I am running on the side at the moment. So while there has been nothing new here for a while, you can look forward to at least a bit more content soon!

Over at the SharePoint Community, Balamurugan Kailasam posted that he was able to download the DLLs from SharePoint Online. While it is unclear at the moment why this is possible (maybe required by some tools?), or if this might be deactivated at some point, I decided nevertheless to write a small PowerShell script to download all DLLs that I’m aware of.

The code below create a subfolder with the current time as the name (in case you want to run it regularly and keep the older versions), and then downloads all the files into it. Additionally, it creates a file called info.txt with the version information of all DLLs

[Environment]::CurrentDirectory=(Get-Location -PSProvider FileSystem).ProviderPath
#replace contoso with your own tenant
$spUrl = ""

$dllsVTI = @("Microsoft.BusinessData.dll", "Microsoft.Office.Client.Policy.dll", "Microsoft.Office.Client.TranslationServices.dll", 
		"Microsoft.Office.DocumentManagement.dll", "Microsoft.Office.Excel.Server.Udf.dll", "Microsoft.Office.Excel.Server.WebServices.dll", 
		"Microsoft.Office.Policy.dll", "Microsoft.Office.SecureStoreService.Server.Security.dll", "Microsoft.Office.Server.dll", 
		"Microsoft.Office.Server.Search.Applications.dll", "Microsoft.Office.Server.Search.Connector.dll", "Microsoft.Office.Server.Search.dll", 
		"Microsoft.Office.Server.Search.ExchangeAdapter.dll", "Microsoft.Office.Server.UserProfiles.dll", 
		"", "Microsoft.Office.Word.Server.dll", "Microsoft.Office.Workflow.Actions.dll", 
		"", "Microsoft.SharePoint.Client.dll", "Microsoft.SharePoint.Client.DocumentManagement.dll", 
		"Microsoft.SharePoint.Client.Publishing.dll", "Microsoft.SharePoint.Client.Runtime.dll", "Microsoft.SharePoint.Client.Search.Applications.dll", 
		"Microsoft.SharePoint.Client.Search.dll", "Microsoft.SharePoint.Client.ServerRuntime.dll", "Microsoft.SharePoint.Client.Taxonomy.dll", 
		"Microsoft.SharePoint.Client.UserProfiles.dll", "Microsoft.SharePoint.Client.WorkflowServices.dll", "Microsoft.SharePoint.dll", 
		"Microsoft.SharePoint.Linq.dll", "Microsoft.SharePoint.Portal.dll", "Microsoft.SharePoint.Publishing.dll", "Microsoft.SharePoint.Search.dll", 
		"Microsoft.SharePoint.Search.Extended.Administration.Common.dll", "Microsoft.SharePoint.Search.Extended.Administration.dll", 
		"Microsoft.SharePoint.Search.Extended.Administration.ResourceStorage.dll", "Microsoft.SharePoint.Security.dll", "Microsoft.SharePoint.Taxonomy.dll", 
		"Microsoft.SharePoint.Taxonomy.Intl.dll", "microsoft.sharepoint.WorkflowActions.dll", "Microsoft.SharePoint.WorkManagement.Client.dll", 
		"Microsoft.Web.CommandUI.dll", "SHTML.dll", "spnativerequestmodule.dll")
$dllsAPP= @("Microsoft.Office.Discovery.Soap.dll", "Microsoft.Office.DocumentManagement.Pages.dll", 
 "Microsoft.Office.officialfileSoap.dll", "Microsoft.Office.Policy.Pages.dll", 
 "Microsoft.Office.Server.Search.Applications.ServerProxy.dll", "Microsoft.Office.Server.Search.ServerProxy.dll", 
 "Microsoft.Office.Server.UserProfiles.ServerStub.dll", "Microsoft.Office.Server.WorkManagement.ServerProxy.dll", "Microsoft.Office.SlideLibrarySoap.dll", 
 "Microsoft.Office.TranslationServices.ServerStub.dll", "Microsoft.Office.Workflow.Pages.dll", "Microsoft.Office.WorkflowSoap.dll", 
 "Microsoft.SharePoint.ApplicationPages.dll", "Microsoft.SharePoint.AppMonitoring.ApplicationPages.dll", "Microsoft.SharePoint.OfficeExtension.ApplicationPages.dll", 
 "Microsoft.SharePoint.Portal.Proxy.dll", "Microsoft.SharePoint.Taxonomy.ServerStub.dll", "Microsoft.SharePoint.WorkflowServices.ApplicationPages.dll", 
 "Microsoft.SharePoint.WorkflowServices.ServerProxy.dll", "STSSOAP.DLL")

$folder = new-item -type directory $(get-date -f yyyy-MM-dd_HH_mm_ss) 

function GetDll([string]$dll, [string]$path) {
	$file = $folder.FullName+"\"+$dll
	$wc = (New-Object System.Net.WebClient)
	write-host "Downloading ",$spUrl,$path,$dll
    	$wc.DownloadFile($spUrl + $path + $dll, $file)
	$item = get-item $file
	if($item) {
		add-content "$($folder)\info.txt" "$($item.Name) - $($Item.VersionInfo.ProductVersion)"

foreach($dll in $dllsVTI) {
	GetDll $dll "_vti_bin/"

foreach($dll in $dllsAPP) {
	GetDll $dll "_app_bin/"


During a meeting with a customer yesterday, they spotted something amusing that I hadn’t noticed until they pointed it out. Have a look at the following screenshot from Office 365 and see if you can spot the issue as well:



And, did you discover it? The Edit Item button isn’t using it’s regular icon, but uses the same as the Delete Item button! Here’s how it should look like usually:

Now, the issue isn’t caused by Office 365 directly. In this case, we have some  JavaScript that does some smaller DOM manipulations, and replaces the Edit Item button with a different one (but which looks just the same). The code that gets inserted into the DOM contains the image as follows: <img style=”left: -511px; top: -103px;” src=”/_layouts/15/1033/images/formatmap32x32.png?rev=23″ unselectable=”on”>

This works perfectly fine in older versions of SharePoint as well as SharePoint 2013, but in Office 365 you get the Delete icon for the position left: -511px; top: -103px. The correct position in Office 365 is left: -511px; top: -137px. What SharePoint actually does is not to use a separate image file for each icon, put rather “store” all icons in a single image to save on bandwidth and increase performance (to learn more about this, visit your preferred search engine and look for “CSS sprites”). And exactly this image (formatmap32x32.png) is different in SharePoint 2013 (the same for RTM all the way to SP1) and Office 365. How different? Have a look at the animation which shows both version for a second each:



So, what does all this mean?

Just recently, changes to the DOM of Office 365 pages that made it different from the one in SharePoint 2013 were made by Microsoft, see e.g. the blog posts “Office 365 Update Changes ‘Display Name’ on Required Fields” by Marc D Anderson and “Office 365 Needs to Treat the UX as an API if Our Customizations are to Stay Off the Server” by Andrew Connell (ok, I just have to make a Star Wars reference here: “I am altering the DOM, pray I don’t alter it any further”). In my opinion, this change here falls into a similar category, with Microsoft making a small change in the background that can have a negative effect on customizations that rely on the icons. For example, if you want to use the same icons as default SharePoint, and thus make use of the same code, you now need to be careful that things like the issue I mentioned at the top of this blog post don’t occur in your solutions. So don’t just simply rely on the fact that it may have worked before, but make sure that if you’re using SharePoint icons, the correct one is indeed used.

And as final words,

A few days ago, Microsoft released a new version of their SharePoint Online Management Shell (the PowerShell cmdlets that can be used to manage SharePoint Online). In this blog post, I will briefly explain what was changed and what you can do now with the new options. Note: The new internal version number for the cmdlets is : 15.0.4569.1506


The first new attribute that is available is for Site Collections and is called SharingCapability. Basically, this attribute tells you if sharing has been enabled for a site collection or not. The three possible values are Disabled, ExternalUserSharingOnly, and ExternalUserAndGuestSharing (see also

When you run Get-SPOSite  | select Url, SharingCapability you’ll get a list of all site collections and the corresponding Sharing Capability.

You can also set the values, so if you want to enable sharing for a site collection for authenticated users only, run Set-SPOSite -Identity <YourSiteUrl> -SharingCapability ExternalUserSharingOnly:


For tenants, there are three new attributes: DisplayStartASiteOptionSharingCapabilityStartASiteFormUrl

You can get the current settings by simply running Get-SPOTenant:

SharingCapability simply shows you which settings have been set for your tenant in general.

DisplayStartASiteOption and StartASiteFormUrl can help you with allowing users to create new site collections, and which form to use. For example, there’s a sample app from Richard diZerega from Microsoft that you could customise for this purpose.

DisplayStartASiteOption controls if the “new site” link is available when you click on Websites in the Ribbon. If it’s deactivated, you don’t get to see such an option:

Turning it on (Set-SPOTenant -DisplayStartASiteOption $true) will provide you with the link:

If you don’t want to use the default form, you can then also specifiy your custom form via Set-SPOTenant -StartASiteFormUrl  <FormUrl>.

Please note that these two options are also available through the UI.  These two options can be found in the SharePoint Admin Center under Settings:

If DisplayStartASiteOption  is set to false, “Hide the link” is activated for Start a Site:


Setting it to true, “Show the link” becomes active:


Lastly, if you set a URL for StartASiteFormUrl, the corresponding field is set:


 External Users

The last changes in the new version of the cmdlets offer a few new attributes for external users: InvitedByWhenCreatedAcceptedAs

When you run Get-SPOExternalUser, you can see who invited the external user, when he accepted, and with which email address:

Additionally, you also have the option to get the external users of a single site collection only, and not the whole tenant, by running Get-SPOExternalUser with the -SiteURL parameter: