Managing iCal Calendar Sharing with Exchange 2010 SP1 [Updated]
One of the new features available in Exchange 2010 SP1 beta that I’m excited about (and already making use of) is the ability to share calendars from Exchange either in iCalendar or HTML format.
So – why is this useful? Doesn’t Exchange 2010 already have improved Calendar sharing with the new federated sharing features available from RTM? Well, yes it does.. And this new features doesn’t replace federated sharing, however if you want to share calendars now is that the world doesn’t run Exchange 2010. Some organisations will move to it over the next year or two; but lets face facts – some enterprises out there may move to Google Apps, Zimbra or something else, so Federated Sharing isn’t going to be an option. While a workaround might be to create partner mailboxes or use third party software, it would be nice to have a solution that “just works” and enables the business to collaborate with partners easily without worrying too much about what technology each other uses. Only with open standards can this happen and with SP1 that’s now a reality.
The ability to publish calendars with anonymous viewers (and that’s an important point, which I’ll come back to) means that should the admin enable it, the user can now go in via OWA, select the calendar they wish to share and choose to publish it. They then receive a set of URLs that they can share via email. The recipient then can simply refer to the calendar via a web browser, or by using any iCalendar compliant software or web app they can subscribe to the shared Calendar.
Getting back to the anonymous part, there are two options. The end user can publish a calendar with a “public” URL that is searchable. The other option is a “restricted” URL with an obfuscated URL. Additionally, the user can restrict what will be shown for each calendar they choose to publish. On top of this, the admin can restrict via sharing policies the maximum amount of information users can publish, and sharing policies can be tied to a certain set of users. So there is some risk in enabling the facility, but by default no user’s calendars are shared, and there are a number of controls available to user and admin to pull the feature in line with the business and individual user’s requirements.
Now you know a little more about the new feature, let’s take a look at how it comes together from a user perspective, and how it’s configured by the admin.
The User Experience
If a feature is going to work well it has to be easy for a user to find and configure. Exchange 2010 SP1 doesn’t disappoint as the feature is listed in both OWA and Outlook in the same place as other calendar sharing options.
For an OWA user, they select the calendar they want to share, then choose “Share”, and the option is listed as “Publish This Calendar…”

If they’re using Outlook 2010 (beta ), the user right clicks the calendar they want to share, chooses “Share” and again, it’s listed as “Publish This Calendar…”

After clicking “Publish This Calendar…” via OWA or Outlook, the options can be chosen including the detail to show, the date range and the type of access:

After clicking “Start Publishing”, the links are generated:
The user can now either copy the links from this page, or via “Share” choose “Send Links to This Calendar…” which opens a new email with the two URLs attached.
Opening the calendar by the recipient is easy enough. For our first example, let’s have a look at Exchange’s primary competitor, Google Apps. To add the shared calendar to Google Calendar, the end user chooses “Add” then “Add by URL”.

They pop in the iCalendar URL, and it shows up in the recipients Google Calendar. You’ll see below I’m subscribing to two Exchange 2010 SP1 calendars – my personal one and my team’s:

(In my case – this is one aspect I personally like about the feature. Although I don’t use Google Calendar I do use iGoogle and it allows me to see my Exchange calendars on my homepage via the Google Calendar widget.)
Next up it’s Zimba. Add a new Calendar, choose Synchronise appointments from remote calendar, then pop in the Exchange iCalendar URL:

Again, the Calendars show perfectly:

Finally let’s not forget Outlook users; from Outlook 2007 onwards iCalendar subscriptions are supported. I’ve quickly tried this in Outlook 2010 beta – simple right click in the calendar list, choose “Add Calendar” and then select “From Internet…”
As above, after popping the iCalendar URLs in the subscriptions are created in the local Outlook client.

And, finally let’s not forget HTML sharing, which does exactly what you’d expect:

The Admin Experience
Now you’ve seen the user experience let’s take a look at what needs to be done to get it up and running in your SP1 environment. To get it all enabled we need to do the following:
- Set an ExternalURL for your organisation’s Client Access Server
- Enable Calendar Publishing on the OWA Virtual Directory
- Create or modify the sharing policy to allow anonymous sharing
Setup of the ExternalURL is pretty standard stuff so I won’t cover it here. Moving on to the Calendar Publishing OWA virtual directory feature, let’s look at what it’s made up of.
The Calendar Publishing works via a new virtual directory – “calendar”. This lives beneath the “owa” virtual directory as “/owa/calendar” and has anonymous, http access enabled (watch out ISA/TMG users). It’s enabled by default but should it need re-enabling it’s pretty straightforward using Powershell. Here’s a quick example:
Set-OWAVirtualDirectory "owa (Default Web Site)" –CalendarPublishingEnabled:$true
Next up, a sharing policy needs to be configured to allow anonymous access. You can do this via EMS or via the EMC. The EMS example below changes the Default Sharing Policy to only allow anonymous access with maximum access level of Calendar Sharing with Free/Busy plus Subject, Location and Body.
Set-SharingPolicy -Identity "Default Sharing Policy" -Domains "Anonymous:CalendarSharingFreeBusyReviewer"
Via the EMC is also pretty straightforward and particularly suitable when you need to create multiple policies or modify existing ones. Here’s a quick run through of how to create a new policy via EMC that only applies to certain users:
Open EMC and navigate to the Organizational Configuration node, then to Mailbox and select the Sharing Policies tab:

First, examine the sharing policies already present. In the above screenshot, I’ve got a single sharing policy which is disabled. As we’re adding a new policy right-click in the white space or click “New Sharing Policy…” on the actions pane. Give the policy a name and add a new “domain” called “Anonymous” and select an appropriate maximum level of access:

After you’ve added the “domain” anonymous to the policy, make sure it’s enabled, then press Next. On the next page you’ll be presented with the opportunity to add mailboxes now. You can of course add these later either via the EMC or via EMS:

Press Next, then after confirming the details, press New. After completion you’ll see a warning that lets you know calendar publishing is enabled for this policy:

Press Finish and we’re all done. You should now be able to login to the specific mailbox and following the first part of the article share the Calendar.
Conclusion
We’ve had a look at what the new feature brings both from an end-user experience and to an administrator. As we can seen it’s great for sharing calendars in an environment where open standards are important or where partners use different products. I’d like to see full WebDAV compatibility so a Linux user can plug straight in and go, but this is a great start as far as sharing is concerned.
Getting back to new shared calendar features in SP1 - I’m hoping more can be revealed over the next few weeks as there’s still a bit more in store!
And of course, you’ll be able to get your hands on this yourself early June.
A final thought – bear in mind all the features and steps described here are not necessarily final so don’t be surprised if things change over the next few months.
Steve
A quick look at Outlook Web App improvements coming in Exchange 2010 SP1
Today Microsoft made public some of the new features in Exchange 2010 SP1 over on the Exchange Team blog. There’s a multitude of new features available and I encourage you to take a look. I’ll be publishing a few posts over the coming days on features I’m most interested in but to start off, I’m looking at the massive improvements to Outlook Web App.
One of the biggest improvements in Exchange 2010 was the cross-browser OWA compatibility and cleaner interface. In the past, this would have been it until Exchange 15 came out, giving the competition (i.e. Google) a few years to catch up and leapfrog Microsoft. Today Microsoft made it clear that no longer will they allow the competition to out-innovate them against Exchange, and they will continue to deliver benefits to customers in between major releases.
What’s new in the premium interface?
Basically – nearly everything! Although from quick glance you might mistake the SP1 OWA for RTM, it won’t take long to realise it’s had an overhaul. The simpler UI is cleaner and well.. feels more like a modern web app than previous versions which have tried hard to mimic a desktop app. It’s less cluttered, easier to navigate and looks a lot more sexy
Enough anyway with the talk. Let’s get down to business and have a look.
Outlook Web App, Exchange 2010 RTM
Outlook Web App, Exchange 2010 SP1
As you’ll see the interface is a whole lot cleaner. There’s a breadcrumb navigation trail in the top left, just below the OWA logo to help you find where you are at a glance. The Exchange icon has gone - It’s just a simple tree menu. The structured lines separating the elements fade away and blend into the background. The icons have been refreshed and only what’s needed is present. If you look very closely you’ll even see that you can use checkboxes to select email. You don’t need to ctrl-click anymore, unless of course you want to!
The interface overhaul isn’t all that’s new. Also announced today were the following new features for OWA SP1 – A new set of themes, sharing calendars to the web and allowing the reading pane to be shown across the bottom.
Themes
Themes were an obvious omission from Exchange 2010 RTM, however in previous versions of OWA they have mainly been variations of the default theme but in different colours – apart from the Xbox and Zune themes – though I’m sure they weren’t overwhelmingly popular. I must say though, I am glad they didn’t rush these out. The new set of themes are absolutely amazing. I’m not going to reveal them all – that really would ruin the surprise but as a sneak preview here’s a couple of my favourite new themes and the new options button/themes picker:

New Options button and theme picker

Super Sparkle Happy theme

Blibbet (Check out the retro MSFT logo!)
Calendar sharing to the web
An often requested feature from my users has been the ability to share their calendar with non-exchange users. And now it’s possible. Below you see Google Calendar opening an Exchange 2010 SP1 calendar. Also, note which interface fits better on a small window and looks more modern…
I’ll be following up Calendar sharing in more detail in my next post in a couple of days time – as it requires a little server configuration, and there’s more to show off.
Hope you’ve found this interesting. If there’s some more Exchange 2010 SP1 features made public over at the Exchange Team Blog that you’d like more information about let me know. If I can tell you, I will.
Steve
Writing Powershell scripts that target Exchange 2007 and 2010
If you’re planning a migration to Exchange 2010 that won’t be completed overnight, you may want to be able to run Exchange Powershell scripts that execute both Exchange 2007 and 2010 cmdlets from the same script. There’s a few reasons for doing this, including:
- If you use logic to determine where to place new user mailboxes, and some mailboxes will be on 2007 and some on 2010.
- If you create new mailboxes on Exchange 2007 and then add the new mailbox to a Exchange 2010 distribution group (for example, if you use moderated distribution groups).
- If you’re using Outlook Live (Live@EDU hosted Exchange 2010) and create MailUsers on-premise and Mailboxes in the hosted environment.
- You are using the Transporter suite to migrate mail and need to create mailboxes on a temporary Exchange 2007 server, migrate mail, and then move mailboxes to Exchange 2010.
OK – so my examples are mostly about provisioning and these are real-life examples of where I’ve used this method, but I’m sure you can think of other examples where it might be useful to you. So – what do you need?
- Exchange 2007 SP2 management tools on any OS that supports them.
- Powershell 2.0
- Remote Powershell enabled on the account you run the script as (using Set-User username –RemotePowerShellEnabled:$true)
You can use this on Windows Server 2003 R2, x86; no Exchange 2010 management tools are required. Enough of what you need – here’s what you need to put in your Powershell scripts to do Exchange 2007/2010:
# Add Exchange 2007. If you'll always run from the Exchange Management Shell, you don't need the next line.Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin# Exchange 2007 Commands Go Here - i.e.Get-MailboxDatabase# Unload Exchange 2007Remove-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin# Create Remote Powershell session with Exchange 2010 - edit the server name in ConnetionUri$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exchange.contoso.com/powershell/ -Authentication KerberosImport-PSSession $Session# Exchange 2010 Commands Go Here - i.e.Get-MailboxDatabase# Unload Exchange 2010Remove-PSSession $Session
If you’re looking to connect to Outlook Live instead of Exchange 2010, simply replace the line beginning “$Session =” with a couple of lines similar to this:
$LiveCred = New-Object System.Management.Automation.PSCredential "yourliveadmin@contoso.edu", (ConvertTo-SecureString "password" -AsPlainText -Force)$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection -WarningAction SilentlyContinue
Hope this helps!
Steve
Enabling the Exchange 2010 ECP Performance Console
If you’ve been testing or even running Exchange 2010 in production, you will most certainly be aware of the Exchange Control Panel – which is now not only the user’s Options panel but provides access to a number of Administrative tools, such as basic user management and reporting/mailbox searches.
However one feature contained in the ECP but isn’t visible immediately is the ECP Performance Console.
The ECP Performance Console is ECP-specific in that it provides a whole wealth of information about how your Exchange Control Panel is performing – from how long client requests are taking, RPC latency down to what’s happening on the Powershell side. Although it is totally ECP specific the information can help you diagnose areas in which your client access server isn’t performing as it should and verifying improvements are working as they should.
The fields available in the ECP Performance console are as follows:
Request URL
Client Request Time (ms)
Server Request Time (ms)
RBAC Session
RBAC Session Latency (ms)
RPC Requests
RPC Latency (ms)
LDAP Requests
LDAP Latency (ms)
Serialization
Serialization Time (ms)
Runspace
Runspace Latency (ms)
Runspace Activations
Runspace Active Time (ms)
Windows PowerShell Invoke Count
Windows PowerShell Invoke Time (ms)
Cmdlets Instantiated
Cmdlet Time (ms)
Cmdlets Invoked
BeginProcessing Time (ms)
ProcessRecord Count
Process Record Time (ms)
EndProcessing Time (ms)
Authentication (ms)
Authorization (ms)
Resolve Cache (ms)
Map Request (ms)
Acquire State (ms)
Execute Handler (ms)
Release State (ms)
Update Cache (ms)
Log Request (ms)
Client Network Time (ms)
UI Response (ms)
To enable the ECP Performance Console, edit the ECP root directory’s web.config file on each Client Access server you wish to use this on. This is located at the following location:
C:\Program Files\Microsoft\Exchange Server\V14\ClientAccess\ecp\web.config
Look int he file for the following section:
<!-- Set ShowPerformanceConsole to "true" to show ECP's Perf Console: --><add key="ShowPerformanceConsole" value="false" />
Change the value for ShowPerformanceConsole to false to true as described in the preceding comment, and save the file.
Once you’ve made the change, run the customary iisreset /noforce to reset IIS then as normal login at your ECP URL (i.e. https://mail.contoso.com/ecp) and after login, click the drop-down to the right of the help icon:
You should see Performance Console now listed. Click it and voila – it should appear.
If you want to export the data - simply press the Copy button in the top left corner. The data can then be pasted into Excel.
Hope you find this useful, at some point!
Steve
Automatically install Exchange 2010 pre-requisites
This one’s a no-brainer even for those that don’t like the command line.
Exchange 2010 has a set of pre-requisites that although aren’t extensive, are a bit of a fiddle to install using the GUI. A quick way of getting them all on is to use the pre-packaged XML ServerManagerCmd Answer files provided in the scripts directory of installation media. I’ve provided a list of the most common answer files below with the respective command that can be run from inside the scripts directory .
Install Exchange Server 2010 operating system prerequisites for all server roles (Client Access, Hub Transport, Mailbox and UM)
ServerManagerCmd -ip Exchange-All.xml -Restart
Install Exchange Server 2010 operating system prerequisites for a typical installation (Client Access, Hub Transport and Mailbox)
ServerManagerCmd -ip Exchange-Typical.xml -Restart
Install Exchange Server 2010 operating system prerequisites for the Client Access server role
ServerManagerCmd -ip Exchange-CAS.xml -Restart
Install Exchange Server 2010 operating system prerequisites for the Hub transport server role
ServerManagerCmd -ip Exchange-Hub.xml -Restart
Install Exchange Server 2010 operating system prerequisites for the Mailbox server role (including Mailbox servers with Hub Transports)
ServerManagerCmd -ip Exchange-MBX.xml -Restart
Don’t forget on servers that will host the Client Access role to set the .Net TCP Port Sharing service to start automatically:
sc config NetTcpPortSharing start=auto
And on Hub Transport and Mailbox servers, install the Microsoft Filter Pack.
Exchange 2010 MCITP: EMA now available – my comments
As of today, exam 70-663 is now available to take at your local Prometic test centre. After passing 70-662, TS: Exchange 2010, Configuring this is the only exam you need to pass to become MCITP on Exchange 2010.
As someone lucky enough to take and pass the beta exam (they cancelled a LOT of places - thankfully I booked mine for Dec 1st) I can say it's certainly no harder than the Exchange 2007 MCITP exams. If you have already passed those, although there is not a specific upgrade path you won't be too dissapointed as much of the same ground is covered apart from new features, like DAG, RBAC etc.
One area where I am disappointed with the MCITP in general is that they aren't hard enough. I'm not likely to win any friends by saying that, but personally I want to feel really satified after passing the exam. With exams like the VCP getting harder I think Microsoft should follow this example and make the MCITP something that is hard to achieve; there simply is too much of a gap between MCITP and MCM/MCA and too little of a difference in skill level between MCTS and MCITP.