Month: March 2012

Updated Service Descriptions for Office 365 for Enterprise – March 2012 #2

Again, an updated set of the Office 365 for Enterprise Service Descriptions. Just as in JanuaryFebruary, and early March, I did a comparison of the changes. All major updates are listed below. The document that has received significant updates is (again) the Service Description for Exchange Online, and a smaller change was done to the SharePoint Online SD.

Exchange Online

•	Outlook 2003 via POP and IMAP only o	POP and IMAP protocols offer email-only access with a substantially reduced set of functionality

Mailbox size	1 gigabyte (GB) **** Outlook Web App  (regular and light versions)	Yes POP	Yes IMAP	No Outlook Anywhere (MAPI)	No Microsoft Exchange ActiveSync	Yes****

****The availability of a 1 GB mailbox and Microsoft Exchange ActiveSync® for a Kiosk user will vary. These updates are expected to be deployed to all customers in April 2012.  However, until these updates are deployed, a Kiosk user will continue to have a 500 MB mailbox and no Microsoft Exchange ActiveSync® access.

Table 7: Mailbox size limits and notifications Mailbox type	Warning	Prohibit Send	Prohibit Send/Receive Exchange Online Kiosk	450 MBTBD	475 MBTBD	500 MB1 GB Exchange Online (Plan 1)	24.5 GB	24.75 GB	25 GB Exchange Online (Plan 2)	24.5 GB	24.75 GB	25 GB  These limits and notifications are for the user’s primary mailbox. The personal archive has a separate, non-configurable quota. The availability of a 1 GB mailbox for Kiosk users will vary. This update is expected to be deployed to all customers in April 2012. However, until this update is deployed, a Kiosk user will continue to have the following mailbox size limits and notifications:  Mailbox type	Warning	Prohibit Send	Prohibit Send/Receive Exchange Online Kiosk	450 MB	475 MB	500 MB

Outlook 2003 Outlook 2003 is notonly supported for use with Exchange Online. via POP or IMAP. Using Outlook 2003 with POP or IMAP enables standard email functionality, but does have key limitations including: •	No calendar information •	No free/busy information •	No Global Address List •	No push email •	When connecting via POP, all messages will be downloaded to the client and there will be no synchronization between multiple computers or devices (such as between a laptop and a phone)


SharePoint Online

Available at a cost per gigabyte (GB) per month. No minimum purchase. Please review the Office 365 price list at

PowerShell Script – Office 365 Site Template Updater v.0.0.1

The Issue

You create a site in your Office 365 environment. You create a template from it (.wsp file), which you then also want to use in your “regular” SharePoint 2010 environment. You add this site template to your site collection’s solution gallery. However, when you try to create a site based on that template, you get errors telling you about missing features (as for example experienced by Marc D. Anderson).

What happened? SharePoint Online uses several features which aren’t available in normal SharePoint 2010 installations. Additionally, some features are only available in the P1 plan and site templates from these cannot be used in the E plans (the opposite is true as well). You can’t deactivate this features in the SharePoint Online UI, and you can’t use PowerShell to quickly connect to your Office 365 environment and deactivate them that way, so you’re stuck.

The Workaround

[warning_box]A big warning first: this is not a real solution, it’s a workaround. I cannot guarantee that this will work always. I cannot guarantee that you can create sites from your site templates afterwards, and even if you can, that all the functionality in these sites will work. I will not provide any support if things go wrong (and Microsoft surely won’t either).[/warning_box]

What it does

This PowerShell script takes a solution file (.wsp, your site template), extracts its contents (with the help of cablib.dll, taken from the WSPBuilder project site), updates the ONET.XML file by removing any relevant feature references, and repackages everything back into a solution file.

How to run it

You need PowerShell, the script (and cablib.dll), and a solution file. Open a PowerShell shell, and execute office365stupdater.ps1 <file>, where <file> is the location of your solution. Afterwards, if all went well, you can find an updated solution file in the same folder (named Updated-originalfilename.wsp)

Where to get it:

Script only: /content/20120320/office365stupdater.ps1
Script with cablib: /content/20120320/

I still can’t create sites, there are still some features missing

First, check if you have any custom features that are active on your SharePoint Online site. Did you install any custom solutions that have active features? Do you have these solutions/features also in the target environment?
If you found any other SharePoint Online specific features that aren’t already listed in the script, please let me know

Not all functionality is working!!

Some functionality is really only available on Office 365. For example, the “Create a new shared document using the Office Web Apps” functionality on the Team Site won’t work in regular environments.

How can I help?

Review the code. Test the script. Found anything that can be improved? Please let me know!

Updated Service Descriptions for Office 365 for Enterprise – March 2012

Another month, another update to the Service Descriptions for Office 365 for Enterprise. The changes this time are all about SharePoint and the upcoming Service Update.
(Updates from February 2012 and January 2012)

The changes are as follows:

Subscription Plans  Each user who accesses the SharePoint Online service must be assigned to a subscription plan. SharePoint Online offers multiple types of plans. See Table 4 below. In addition to the K1-2 and E1-4 suite-level plans, SharePoint Online Plan 1 and SharePoint Online Plan 2 can be purchased on a standalone basis or as part of an Office 365 suite. A Kiosk subscription is not sold as a standalone offer, only as part of the Kiosk suite (Exchange Online Kiosk and SharePoint Online Kiosk suite). It is possible to mix subscription plans within a single tenancy. Customers can also purchase an additional add-on associated to SharePoint Online: •	Additional storage. Cost is $2.50USD/GB/month.Should you require more storage, it isvailable at a cost per gigabyte (GB) per month. Please review the Office 365 price list at   Note  For customers with more than 20,000 users objects in their Active Directory planning to purchase SharePoint Online as part of the Office 365 suite or as a standalone service, there is a temporary limitation that the SharePoint service can support. Please work with your local Microsoft representative to understand the implications of this temporary limitation. This does not imply that you cannot purchase the full Office 365 suite, but merely that SharePoint Online may not be provisioned at the same time until the scale limitations are lifted beyond 20,000 user objects.


10 gigabytes (GB) base customer storage plus 500 megabytes (MB) per enterprise user subscription license (E1-E4)   Up to 5 terabyte 25 terabytes (TB) per tenant


Deleted Item Recovery SharePoint Online users have a Recycle Bin where deleted content is stored. They can access the Recycle Bin to recover deleted documents and lists if they need to. Items in the Recycle Bin are retained for 30 days. The following data types are captured by the Recycle Bin: •	Site Collections •	Sites •	Lists •	Libraries •	Folders •	List items •	Documents •	Web Part pages The following data types are not captured by the Recycle Bin: •	Deleted site collections •	Deleted webpages •	Site customizations made through SharePoint Designer 2010


•	PDFs and other types of files can potentially run scripts against sites. To prevent this security threat, PDF files open directly in Adobe Reader (version 10.1.2) – and the PDF file will remain connected to SharePoint Online requires users to download these types of files. When the user tries. You can also edit and save your changes to open a PDF document stored in a SharePoint Online document library, from the user will see a “Save As…” window and must download the PDF file to their local directory.desktop. And further, you can now use versioning (check-in and check-out) with PDF files for better management and review..


•	EasiID, the portion of LiveID that allows externalExternal users to associate can now use their business email address (ex: to the LiveIDauthenticate when invited into an Office 365 customer's site collection. To associate a business email user name to the Live ID system, is not supported at this time.go to, select "Use existing email address:" and follow the instructions.


Developer Dashboard	Yes	No

Getting all licensed Office 365 users with PowerShell

Let’s say you want to have a list of all licensed users in your Office 365 environment. You could look at the Office 365 Dashboard under Users and look at the list there, but quite often you may want to have that information in a spreadsheet for further processing. How to?, you ask? PowerShell to the rescue!

[info_box]More information on available PowerShell cmdlets for Office 365 can be found on the following site: [/info_box]

Open PowerShell, connect to Office 365 (Connect-MsolService), and test the following cmdlets:


“The Get-MsolUser cmdlet can be used to retrieve an individual user, or list of users. An individual user will be retrieved if the ObjectId or UserPrincipalName parameter is used.”

So, we’ve got a list of all users right now. Let’s try to export it to a CSV file that we can then open with Excel

Get-MsolUser | Export-Csv c:\allUsers.csv

If we open the file allUsers.csv now, we get to see all users in our Office 365 environment, together with lots of additional attributes

We’re just interested in the ones with licenses, so let’s filter a bit:

Get-MsolUser | Where-Object {$_.isLicensed -eq "TRUE"}

Great! We’ve now reduced the list to only those users for which the attribute isLicensed is set to True. Meeting Rooms don’t need a license, thus they don’t show up here.

Next step: exporting this list (in my case only 1 user) to Excel:

Get-MsolUser | Where-Object {$_.isLicensed -eq "TRUE"} | Export-Csv c:\licensedUsers.csv

A combination of the two code snippets above, this one here grabs all users, filters them, and exports the result to a CSV file. Opening that file, we can see the list of all users, however also with all attributes

As a last steps, let’s reduce the results further by only displaying the UserPrincipalName attribute/column/property in our CSV file:

Get-MsolUser | Where-Object {$_.isLicensed -eq "TRUE"} | 
Select-Object -property "UserPrincipalName" | Export-Csv c:\licensedUsers.csv

(After filtering, we then proceed to select only the UserPrincipalName property of all our users before exporting them.


Using the Where-Object Cmdlet
Using the Select-Object Cmdlet
Using the Export-Csv Cmdlet 
Windows PowerShell cmdlets for Office 365

Updated RSS Feed Web Part for Office 365

Update: SharePoint Online RSS Viewer now supports external feeds


[warning_box]A newer version of the web part is available at Updated Release: RSS Feed Web Part for Office 365[/warning_box]

Back in August, I released a RSS Feed Web Part for Office 365, as the SharePoint RSS feed web part doesn’t work in SharePoint Online. Today I’m releasing a better updated version. Why? What has changed? Where can you get it and how do you install and use it? Read below

Which known errors existed?

People reported that they weren’t able to use the web part with SharePoint Online internal feeds, e.g. the RSS feed of a document library. After I got all the details needed to reproduce that error, I found the source of it quite quickly:

In my web part, I’m using the free jQuery library zRSSFeed, which itself is providing its functionality through using the Google Feed API. It calls this API to receive the feed data in JSON format, which it then parses and outputs. For SharePoint Online RSS feeds this fails, as the Google Feed API naturally can’t accessed secured content. Thus, only public feeds could be used with this first version of the web part!

What has changed in the new version?

Most importantly (the reason for this fix), you can now use SharePoint Online RSS feeds as well! For this to work, I had to modify the zRSSFeed library slightly. If a feed originates from SharePoint Online (identified through the same domain as the one the script is run on, as well as _layouts/listfeed.aspx in the URL), then some custom code is run instead of the zRSSFeed default code that calls the Google Feed API. I simple fetch the RSS data, parse it into a jQuery object, and do the (more or less) same output as the default behaviour.

In addition to that, I added some cleanup code. Whenever the feature is deactivated, the support libraries that are installed as part of this solution are removed. Thus, do not reference these files anywhere else if you aren’t absolutely sure that you won’t deactivate the solution!

Where can I download it?

Get the latest version at Updated Release: RSS Feed Web Part for Office 365

How do I install it?

You can follow the same instruction as in the previous posting. If you have the previous version installed, simply deactivate it first, upload the newer version of the solution, and activate it again.

Is anything else planned?

There’s a good chance I’ll release another update in the coming weeks. I’ve received some feedback regarding some design improvements, if time permits I’ll start working on them soon.


I’ve got some ideas how to improve the web part

As the source is available, feel free to make your own customisations. Alternatively, contact me with any suggestions that you have

Using Assembla’s free Subversion service within a Cloudshare SharePoint development environment

After being tempted by CloudShare for a while now, I finally went ahead and got a subscription. One of the reasons for this is that I want to be able to do some SharePoint/Office 365 development wherever I am, even if my laptop is not with me (basically, that currently means that I do it from either my laptop at home or my laptop at work). To keep my code separate from my virtual machine, I signed up for the free Subversion service from Assembla, and put all my relevant code (also the one I’m working on inside my CloudShare environment) into repositories hosted there. The benefit of this is that if I stop using CloudShare, want to develop inside my own local virtual machine, rebuild my ClousShare environment, start developing in multiple machines, or other similar reasons, I can easily access my code repository again, anytime & anywhere (I could even share it with others, if I wanted to). Following are the simple steps to set it all up:
Does it work with other Subversion repositories? – Yes, but as I use Assembla, I focus on it here.
Does it work for non-SharePoint code as well? – Yes, I just use it as an example (again, because I’m using it)
Can I use Assembla in my own environment (local VM, e.g.) – Of course!


Sign up for Assembla

I will skip the detailed section of how to do this, there’s nothing special or magical about it. Go to, sign up, that’s it.


Install your favourite Subversion tool for Visual Studio

There are many Visual Studio plu-ins thaz can be used with Subversion, I chose the free tool AnkhSVN ( for my development purposes. Download it, install it. To configure it in VS, go to Options, Source Control, and Plug-in Selection.


Add a new project

When you create a new project, you have the option to select “Add to Subversion”.

If you do so, an extra dialog will pop up after the project has been created.

Add to Subversion

After you click OK,you’re asked for the Repository URL. You can get it from your Assembla subversion site:

Paste it, select an appropriate local folder, and if desired select if a trunk folder should be created.

Once you click OK, you will get to see your solution in the Solution Explorer, together with the corresponding Subversion icons (as you can see from the blue “plus”, these are new files that haven’t been committed to the repository yet)

Commit your changes

Right-clicking on an individual file/folder/module/project/solution/etc., you will have the option to commit the corresponding changes to subversion.

Once you do so, you can still select which items you want to commit, and add a log message:


View your repository on Assembla

Once you’ve committed your code, you can also view the folder and file structure directly on the Assembla site:


Having multiple repositories on Assembla

You are not restricted to a single Subversion repository on Assembla, you can create multiple repositories (called spaces) if wanted:

Viewing the activity stream

When you log on to Assembla, you can also see the activity stream of all Space,s and check what has happened recently (your actions as well as those of anyone else who has access to your space(s))