Friday, March 25, 2011

Outlook Live URL changes

Quoting from an email Microsoft sent, we want to remind you about upcoming URL requirements for accessing Outlook Live. Due date: June 30, 2011. It's already been extended so now is a good time to get it all done.


URL Changes

URLs that go directly to Outlook Web App, such as http://outlook.com or http://outlook.com/owa should be changed to go to http://outlook.com/ - for example, http://outlook.com/contoso.edu. To prepare for URL changes:

  • Inform your users of the change so that they can update any bookmarks they may have
  • Inform your support desk of the upcoming changes and how to help users use the new URL
  • Update any related links on Web pages and in documentation

If you are using the URL http://outlook.com/ecp to access the Exchange control panel management interface, you will also want to modify that URL to look like this: http://outlook.com/ecp/?realm=contoso.edu.

Single Sign-On Changes

Single sign-on solutions using the Live@edu SSO toolkit must make the following changes:

  • Update the Outlook URL in the web.config file as follows:
    • Change: https://outlook.com/owa”>
    • To: https://outlook.com/edu”>
  • Custom solutions have to make this change also, though the location will vary.
  • In addition, we have seen some cases where Live ID removes URL parameters, resulting in undesired behavior. To mitigate this issue, we advise that all single-sign-on solutions add the parameter exsvurl=1 as a setting in the URL. This setting will force the URL parameters to be preserved. Typically, the setting is appended to the end of the redirection URL and preceded with an ampersand, like this: https://outlook.com/edu&exsvurl=1.


Monday, March 07, 2011

Oracle Calendar / Outlook Free Busy Interchange

Free/Busy Lookups from MS Outlook into Oracle Calendar Server
Congratulations – you are dropping Oracle Calendar for Exchange. One problem: you need to stage it and you need some kind of connectivity between the two systems. This outlines how you can get Free/Busy lookups in Outlook / Exchange from OCS.
Outlook lets you have Internet Free Busy for Contacts:

SO: If we can produce IFBs for your OCS users (sorry about all the TLAs here), you can get Free-Busy lookups automatically working for your Outlook users into OCS.
One problem: The Oracle Calendar interface specifically does not create the IFB format known as VFREEBUSY:

Probably Oracle wanted to avoid exactly what we want in this case.
Not a problem. We can create VFREEBUSY from off the shelf tools in the OCS environment. In particular we will use the utility UNIICAL.
The solution works as follows:
· Select the OCS users you want to have Free-Busy available for in Outlook.
· Set up an internal share that is available to your OCS environment (you will be publishing to it) and your Exchange environment (you will be reading from it)
· One directory call “/…/EXPORT”
· Another directory call “/…/CURRENT”
· A third directory call “/…/IFB”
We’re going to take you through the process for one specific user, who we call Jimi.Hendrix
Create a batch file something like the following:

Uniical –export –u “S=Hendrix/G=Jimi” –f /…/EXPORT/jimi.hendrix.ics -n 1 –end 12/31/2011 –start 10/31/2011 –p PASSWORD
So we’re going to publish an ICS file into the /EXPORT directory.
Notes to this point: The above batch file hardcodes two dates. Obviously we want to make it general to start from TODAY and end at (TODAY + Default F/B Horizon). But let’s start with small ambitions and grow from there.

On a separate computer, we set up a process which interrogates the EXPORT ICS, compares it to the CURRENT ICS (say by comparing the MAX (CREATED) to see if it needs to parse or not), and if so moves it into the CURRENT and parses into an IFB. Practically any scripting language of your choice will work.
So what does ICS look like and what schematic takes it into IFB?

OCS ICS example
An OCS ICS file has a simple structure with a three-line preface before VEVENTS begin.
<><>
<><>For a one-time appointments we need only look at the DTSTART and the DTEND (they are in Zulu time, which is a godsend for IFB). These need to get converted into VFREEBUSY format:
FREEBUSY:DTSTART/DTEND map to:
FREEBUSY: 20110210T140000Z/20110210T150000Z
For recurring, we need to worry about RDATE and RRULE. First RDATE (because from OCS I have not yet found an RRULE in version 9.0.4, but they DO exist in version 10.x)
In this case this maps to:
FREEBUSY:DTSTART/DTEND
FREEBUSY:RDATE(1)/RDATE(1)+(DTEND-DTSTART)
FREEBUSY:RDATE(2)/RDATE(2)+(DTEND-DTSTART)
FREEBUSY:RDATE(3)/RDATE(3)+(DTEND-DTSTART)
Etc.
NOTES TO THIS POINT: IFB so far does not appear to need to be in chrono order to function properly. Of course a maintenance release could change that in a moment.
Optimization issue: IF MAX(CREATED ) in an ICS < export =""> is there no need to parse?
OUR END POINT NEEDS TO LOOK LIKE THIS:
Microsoft Free/Busy .vfb Format – External file
-----------------------------------------------------------------
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 11.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
BEGIN:VFREEBUSY
ORGANIZER:/o=First Organization/ou=First Administrative
Group/cn=Recipients/cn=jimi.hendrix
DTSTAMP:20070223T145148Z ; Time of FB File gene
DTSTART:20070201T050000Z ; Start of period NB:
DTEND:20070401T040000Z ; End of period
FREEBUSY:20070205T140000Z/20070205T143000Z ; Begin events
FREEBUSY:20070222T140000Z/20070222T143000Z
FREEBUSY:20070222T160000Z/20070222T163000Z
FREEBUSY:20070223T130000Z/20070223T133000Z ; Busy -- 1/2 hr mtg starting at 8AM
FREEBUSY:20070223T150000Z/20070223T153000Z ; EST = 1PM Zulu
FREEBUSY:20070224T130000Z/20070224T133000Z
FREEBUSY:20070226T140000Z/20070226T143000Z
FREEBUSY:20070228T150000Z/20070228T153000Z
FREEBUSY:20070319T140000Z/20070319T143000Z
FREEBUSY:20070319T180000Z/20070319T183000Z
FREEBUSY:20070320T160000Z/20070320T163000Z
FREEBUSY:20070321T140000Z/20070321T143000Z
FREEBUSY:20070323T140000Z/20070323T143000Z
FREEBUSY:20070326T140000Z/20070326T143000Z
FREEBUSY:20070328T140000Z/20070328T143000Z
END:VFREEBUSY
END:VCALENDAR
NOTES:
· When Outlook says “Publish 2 months” it means from the START of the current month to the end of the next month. It doesn’t roll with the day of the month.
· TIME SEQUENCE does not appear to be significant. I can move the VFREEBUSY entries around and they are still interpreted correctly for a reasonable (2 month-3 month) FB window.
What is the User Experience?
A user needs to create a Contact in Outlook
REQUIREMENTS: The contact must be in the CONTACTS folder. NOT a sub-folder, or any other folder.
Note that the email address does not need to match the IFB name.
They can then add that contact to their meeting list and see their Free/Busy just as if they were native on the Exchange server. (caveat: the timeliness of the information depends on how often you set your processes to export ICS files on the OCS side and how often you interrogate for parsing)
Do we recommend this long-term?
Heck no. But as a short-term-help-you-over-the-hump to get OUT of OCS it’s more useful in integrating the remaining OCS users into your growing Exchange environment than anything else, and it is workable with minimal effort (and real-time OCS-Exchange calendar sync is just one of those things you should cringe at).
References:
How to use the Internet Free/Busy Feature in Outlook
Using Free/Busy without Exchange Server (can be very helpful)

WARNING: Experimental evidence has shown that for this to work a contact with Internet Free Busy MUST be in your Contacts folder, not a subfolder, or a folder with any other name.

Friday, March 04, 2011

New xCalReader for using ICS format to migrate Oracle Calendar

Our latest xCalReader now reads .ics files from Oracle Calendar Server for an Exchange migration:

NB: This is because we've been picking up increasing reports of weirdness with the UNICPOUTU format. We've applied all our usual expertise to the iCal exports: including converting RDATE arrays to real recurrence patterns using RTYPE in Outlook / Exchange.
Also this includes support for Zimbra 6 migration.

Tuesday, March 01, 2011

New Mantra

Kudos to Russ for our newest mantra:

Hear it once, it's a trick.
Twice it's a special project.
Three times it's a new Sumatra product.

So the topic on the table here is Meeting Maker to Google Calendar migration (with link preservation).
We've had two requests in the last week. Is there anyone else out there?

Sunday, February 20, 2011

More Zimbra 6 to Exchange 2010 / Cloud

So I promised you could see the before and after of contacts and tasks. Here they are.

Migrates to Exchange like this:
Tasks come over with very few problems. What in Zimbra looks like this
Becomes this in Live @ Edu. It could just as easily be in Outlook -- but we're grooving on someone else keeping an Exchange server running for a change.
One thing to keep in mind: Migrating to Live @ Edu is slower than migrating into on-premises Exchange (by a factor of about 7). We're pretty sure it's going to be that way for the foreseeable future.





Friday, February 18, 2011

Zimbra 6 to Exchange 2010 calendar migration

It's been a year since Yahoo sold Zimbra to VMware (which reminded me of some of the scenes from prison movies involving cigarettes).

And now is when people are starting to contact us en masse asking if we can move their calendars from Zimbra 6 to Exchange 2010.

Yes, we can.

The way we do it is really convenient. We open the mySQL database and read all the calendar, contact, and task data directly and insert it into Exchange using our usual, field-proven process.
You heard that right: NO user intervention, one spot for an Admin to pull the data and insert the data.
So let's take a look at the BEFORE and AFTER.
Jimi Hendrix's calendar on Zimbra 6.0.7 looks like this:

After extraction and insertion into Live @ Edu it looks as we would expect:

Note, the tentative meeting is tentative, the accepted is accepted, and the declined doesn't appear because that's the way Exchange works. We keep all recurrences and the meetings are completely LIVE on live @ Edu.
But wait -- there's more.
Contacts and Tasks come along for the ride too.
But we'll show you those in a separate posting.

Friday, January 28, 2011

Color-coding your inserted calendar data

Something our QA department has been doing for almost a year now has suddenly struck me as a really really good idea suitable for blogging.
Did you know it's possible to color-code your inserted calendar data?
What amazes me is how simple it is.
In the following example we've inserted several times (with a minimal data set) adding additional digits to our usual Category string:

All you need do on an individual basis is Manage the categories (seen here in OWA our client of choice on the Cloud).

You can also use Group Policy to propagate this for everyone if that helps you out. See Configure Categories in Outlook 2007.

Wednesday, January 19, 2011

More on Live @ Edu vs. On-Premises Exchange Speed Differential

Live@EDU

On-Premises

Object Count

7675

7585

Total Time (seconds)

4193.25

597.01

Total Time (minutes)

69.89

9.95

Average Insertion time

0.55

0.08

Mode

0.41

0.05

Median

0.44

0.05

Max

9.29

3.5

Min

0.10

0.03


So our latest tests on inserting calendar items into Live@Edu vs. inserting into on-premises Exchange gives us a 7:1 time ratio.
That is: it is currently about seven times faster to migrate calendar data into your own Exchange server than it is to migrate it to Live@Edu. We've seen the same data set go far longer, but this is a good estimate to use in your planning purposes. Also yesterday another real-world site reported a figure similar to the one we found.
Just so you know.

Friday, January 07, 2011

Oracle Calendar to Exchange using UNIICAL / ICS formats

Yep. We have a version in-house we're using now -- so if any of you out there want to use ICS files to migrate to Exchange and are willing to be informed consent test sites drop us a line.
Oh yeah, same deal: we re-create meetings with responses and have put in tech to turn RDATE strings into real recurrence patterns (your Outlook client will thank you for that).

Sunday, January 02, 2011

iPhone Alarm Glitch Greets New Year

The title says it all, though the New York Times has some more information.
Apple of course offers no explanation because as all Apple employees know, Apple can do no possible wrong.

Monday, December 27, 2010

Oracle Calendar / Exchange Free/Busy

An odd combination today here in the Boston-Cambridge area. A request last week for Free/Busy interchange between OCS and Exchange, and a blizzard put one of us into the Zen-like frame of mind to come up with solutions that do not involve lots of custom programming.

If any sites currently in an OCS to Exchange migration with us want to try out Outlook based Free/Busy queries into Oracle Calendar, please drop your Sumatra contact a line.

We are looking for "informed consent experimental subjects."

Monday, December 20, 2010

Quotas and Live @ Edu Migrations

The calendar elves were busy this weekend migrating TWO former Oracle Calendar Server sites into Exchange in this Cloud thing.


One went into BPOS (one of the dumbest acronyms EVER!) which is in reality Exchange 2007, which does NOT have submission quotas. (So now you know where this is heading)


The other site went into Live @ Edu which, despite their having had their submission quotas removed for purposes of migration, found the quotas very much in place.


So this is about what you'll see if one of your users hits submission quota in a migration.


In this example we kept inserting meetings until we hit quota. So one went in fine (you see the guest list and responses) and one did NOT (it says "Invitations haven't been sent for this meeting").

Once your submission quota rolls over (and when is that exactly?) you can send this and it'll go out like a regular meeting invitation. Not fatal in a migration, but we agree, it is darned annoying.

Thursday, December 09, 2010

EWS, Outlook Live, Exchange Release Levels, OWA, and WTF?

Come with us on a journey to mystery.

The subject started out as Holidays but morphed into the more general one of All Day Events (ADEs).

Using EWS, it is possible to insert ADEs and we do LOTS of them in the course of a migration.
BUT, some combination of EWS, Exchange release levels, and OWA are currently giving our usually stable process conniption fits.

Start off with inserting an ADE under either Exchange 2007 rules (with deprecated Time Zone, rules, but bear with us for a moment here) into Live@Edu (not that we have a client trying to do this exactly now or anything like that).

In Outlook attached to Live @ Edu they will appear correctly (as below) if you specify Exchange 2007 SP1. But it will appear as a two day banner if you specify Exchange 2010.

JUST to keep thing really really interesting, viewing the EXACT SAME ADEs in OWA shows the 2007 SP1-defined ADE showing up correctly, and the 2010-defined ADE spanning THREE days:

If your head does not hurt you have not been paying attention.
SO, for the time being while running a holiday insertion with our tools, specify Exchange 2007 SP1. Everything will be hunky-dory.

Don't believe us? Here's the VB .net code (we use Exchange Web Services Managed API v1.1. )

Public Function ewsBuildAllDayEvent() As String

Try

Dim myUserEmail As String = "user10@test.com"
Dim myEWSURL As String = "https://sn1prd0202.outlook.com/EWS/Exchange.asmx"
Dim myExchangeVersion As ExchangeVersion = ExchangeVersion.Exchange2007_SP1
Dim myLogon As String = "admin@test.com"
Dim myPassword As String = "Gu3ssWh0"
'create Service
service = New ExchangeService(myExchangeVersion)
service.Url() = New Uri(myEWSURL)
service.Credentials = New WebCredentials(myLogon, myPassword)
service.ImpersonatedUserId = New ImpersonatedUserId(ConnectingIdType.SmtpAddress, myUserEmail)
'build appointment
Dim appointment = New Microsoft.Exchange.WebServices.Data.Appointment(service)
appointment.subject = "MyTestADE"
appointment.Start = CDate(Now.ToShortDateString)
appointment.End = CDate(DateAdd(DateInterval.Day, 1, Now))
If myExchangeVersion = ExchangeVersion.Exchange2007_SP1 Then
appointment.StartTimeZone = System.TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")
Else
appointment.StartTimeZone = System.TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")
appointment.EndTimeZone = System.TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")
End If
appointment.LegacyFreeBusyStatus = LegacyFreeBusyStatus.Busy
appointment.isalldayevent = True
appointment.Save(SendInvitationsMode.SendToNone)
Return "OK"

Catch ex As Exception
Return ("ERROR: " & ex.Message)
End Try

End Function

Monday, December 06, 2010

Migrating Email? Check out this blog

Frequently we get asked about email.
We do not touch email since we're calendaring guys and enough other people handle email.
But when we see a site that specializes in it and conceptualizes migrations in ways that we ourselves espouse, we just need to let you know.
Such a site is MigrationWiz.
I hate the name (any male who has been a teenager in the USA smirks when the word "wiz" shows up anywhere), but their analyses of email migration are right on.

Thursday, December 02, 2010

Asynchronous Programming

Earlier this week I went to a Microsoft Firestarter Event on Windows Azure. The event was run by a Microsoft Developer Evangelist Jim O'Neil. Jim's talks always inspire me to tweak Sumatra's code bases, ensuring we take advantage of as much of the emerging Microsoft technology as practical. One segment of the day talked about patterns and practices, specifically, the use of asynchronous communication when interacting with cloud (and the web).

They told us about a new Asynchronous Programming module (http://msdn.microsoft.com/en-us/vstudio/async.aspx.) I'm very interested in this because many customers in Sumatra's Education market segment are migrating to Exchange in the Cloud -- Microsoft's
Live@EDU. When inserting lots of data, the variability of "network speed" makes insertion times difficult to predict. We explored changing the Sumatra code to run on multiple threads, but concluded it added more complexity to the code and didn't address the underlying bottleneck: network latency.

What I find interesting about this CTP is that the new async calls have the potential to work around latency issues without increasing code complexity. We'll be testing this in our labs in the next few weeks!

Thursday, November 18, 2010

Exchange 2010 SP1 Managed API 1.1 released

For the last two weeks I've been puzzled why the installation of the EWS Managed API SDK v1.1 does not install the API library. Turns out it was released today (two weeks after the SDK was released.) Click here for the link to the release blog posting or to the download page.

Friday, November 12, 2010

Exchange 2010 Mapping Users - A Brief Guide

Compared to taking data from a legacy system and putting it into Exchange, you'd think user mapping between the two systems would be pretty easy. Usually it is straight-forward, just incredibly tedious and time-consuming (the occasional input error does not help much).
This is a brief guide to user mapping.

Let's say we have three users with the following addresses on Oracle Calendar Server and Exchange:


We design the process so that by the time you've created your intermediate database you should already have the email addresses for these users in the Users table.

So the brief rules are:
  • Do NOTHING for OCS email addresses that are the same as in Exchange
  • Add entries to the User_Adjusted_Maps table to map OCS accounts that have different Exhcange addresses
  • Run the following queries Q_Build_CustIDs_From_MMUserids, Q_Build_CustIDs_AdjustMMUsersids, Q_1_Make_User_Map, FInd duplicates for MM_Exchange_User_Map
  • Look at the results in MM_Exchange_User_Map
  • Repeat until all of your accounts are done.
The mapping table will look like this when you're done.

A few other things to keep in mind.
If Oracle Calendar Server IDs are THE SAME as Exchange:

If Oracle Calendar Server IDs are DIFFERENT from Exchange:

  • MAP the differences (Tables)
  • Build the mapping table
  • Overlay the changes

Once you've got all your users mapped you can just edit the mapping table. But please exercise proper handling and care with it. You do not want to be wondering which version to use when starting yoru migration at midnight on a Friday.

Wednesday, November 10, 2010

UNICPOUTU unreliable in some Oracle Calendar Environments

Let us let you in on one of the open secrets of calendar migration: It's not a wise investment to put a lot of code into pulling data OUT of a legacy system. Better to use one of the utilities the legacy system uses for purposes of upgrading servers or moving users between servers. Less prone to error, it uses the legacy's capability against itself, and it allows a migrator to put their effort into getting the data INTO the target system.

Sometimes though this gets more difficult when there's bugs in the legacy system.
One of our clients (shout out to Matt in North Carolina!), discovered some data missing from the UNICPOUTU export in their Solaris environment.

Quel horreur!

It's been mentioned a little on the OCS boards, but nobody is making a big deal about it and it is unlikely Oracle is going to fix it to make breaking your OCS habit any easier.

Thus far we've seen this ONLY with OCS 10.x on Solaris (all the 9.0.4 migration systems look absolutely peachy and we've been doing 10.x for years with no issues). We suspect it's with the very latest and is more prone to happen when the export is constrained by date (so export everything and let us segment it in our tools).

So as always, keep an eye out.

Monday, November 08, 2010

Putting Holidays into Live @ Edu Server-Side

We tested our holiday insertion code on Live @ Edu and a list of holidays like this:






Note that this is an All Day Event (and you can specify if the time is to be shown BUSY or FREE):

While this is an appointment we've put into every calendar without any muss or fuss. You could use the same technology to do that for anything else you want (Shareholder's Meetings, Fire Drills, as your business and imagination dictate).

Any of you who have been through a migration with us know why we keep the "(Migrated)" tags, but you can decide to not use them.
This is scriptable so you can create holidays as you provision users if you have an automated system for so doing.


A few other things to keep in mind:


  • This runs as an EWS application from a 32-bit workstation. So all your credentials are completely under your control. If there's demand to run this as an online service we'll listen.

  • We take the default time zone of your server for all insertions. If you have users in multiple time zones and want to do this contact us -- that would be a different version.

  • You can specify a single user, a list of users, or an LDAP query to handle your insertion.


Friday, November 05, 2010

Handling Conference Rooms in a migration into Exchange


Resources are kind of a pain in the neck in a migration. You want them to take care of themselves when you're done migrating. But to get your data from your old system into your new system with the same state, you're going to need to treat them with kid gloves and lots of TLC.

So we have the following guidelines:

Put all resources in one or more OUs for ease of administration.
PRIOR to migration:

  • ENABLE all of the resource accounts via Active Directory Users and Computers
  • HIDE the accounts from the GAL
  • Configure resources NOT to AutoAccept meetings

AFTER the migration

  • Disable the accounts and add them to the GAL
  • Configure the resource for AutoAccept (if you desire first-come-first-served functionality) or
  • Use group-policy settings for managed rooms and resources

Wednesday, November 03, 2010

Exchange 2010 Permissions for Migration


Impersonation has nothing to do with Frank Gorshin or Rich Little.
It's the permission you need to give your service account to execute a full-state calendar migration.

Create a managementRoleAssignment:

new-ManagementRoleAssignment

-Name:_suImp8

-Role:ApplicationImpersonation

-User:'mysvcaccount@mydomain.com'

If you have to ask where you're doing this, please go to your Exchange Administrator.

Sunday, October 31, 2010

Exchange 2010 - Throttling During a Migration

We're all for progress as much as the next techno uber-geeks, even though sometimes it bites/kicks/stabs us in the neck/butt/back. Such is the case with throttling in Exchange 2010.

So -- when doing a migration of about any non-trivial size into 2010 you're going to have to set a new throttling policy here called "SuPolicy":

New-ThrottlingPolicy SuPolicy

Set-ThrottlingPolicy SuPolicy -RCAMaxConcurrency $null

-RCAPercentTimeInAD $null

-RCAPercentTimeInCAS $null

-RCAPercentTimeInMailboxRPC $null

-EWSMaxConcurrency $null

-EWSPercentTimeInAD $null

-EWSPercentTimeInCAS $null

-EWSPercentTimeInMailboxRPC $null

-EWSMaxSubscriptions $null

-EWSFastSearchTimeoutInSeconds $null

-EWSFindCountLimit $null

Set-Mailbox myserviceaccount@mydomain.com -ThrottlingPolicy SuPolicy

Wednesday, October 20, 2010

ResourceWatch Online Capability Beta

Anybody who has done a migration with us has gotten one of our "Shock and Awe" reports showing what your calendar use looks like.
No surprise we've been developing this capability.
If you go to our on-line beta, you'll be able to generate a really cool report on your conference room or resource use.
We've used it on ICS format files from Exchange 'natch, but Oracle Calendar seems to work just as well. We're using Microsoft SilverLight, so working with anything other than Internet Explorer we do not guarantee, but if it works for you just let us know.

Wednesday, October 06, 2010

BlackBerry Enterprise Server - Stay on Top of It!

If you are planning on migrating and use the BES server. Please stay up to date with your BES versions.
How to Enable BlackBerry Enterprise Server 5.0 Sp1 and SP2 to use Microsoft Exchange Web Services is required reading.
Here's the issue: BES still relies on CDO 1.2.1, which is a little like a 2011 model year hybrid still needing a Model T crank. BES requires pretty much the same kinds of permissions we do in order to act on calendar objects in Exchange, so after migrating if you flip on BES and notice issues with setting up or responding to meeting invitations as a Delegate -- the first place to look is your BES configuration.

Sunday, September 19, 2010

Shared calendar items are shown incorrectly in Exchange 2007 (Fixed in SP3 RU1)

Sumatra enterprise clients use shared calendars to allow Managers to look at employee calendars, employees to access common calendars (e.g., the 'vacation' calendar, or to look at conference rooms (when free/busy doesn't contain enough information.)

Unfortunately, the calendar events are often shown at the wrong time.

Microsoft KB 976100 offered a hotfix for this issue. It was also included in the Exchange 2007 SP3 Rollup 1 (KB 2279665)

For clients who share calendars -- apply this rollup.

Friday, September 17, 2010

Exchange 2010 Calendar Permissions Using PowerShell

One of the Microsoft blogs did a great article on setting calendar permissions using PowerShell in Exchange 2010.
Their earlier article on setting Outlook Delegate permissions with RBACs is also worth reading for sites migrating into 2010.
Many thanks!

Wednesday, September 15, 2010

Dilbert on the importance of Conference Rooms

Dilbert from Sunday September 12, 2010 had an excellent strip on the importance of conference room scheduling.

Dilbert.com

We normally see this as the attempted "great conference room land rush" during migrations, which you can avoid by hiding your resources in the GAL for the migration period.

Tuesday, September 14, 2010

Circumvent Outlook Rules in Exchange 2010

We just completed an Exchange 2007 migration this past weekend. After each migration we review what worked and what didn't. One of the problems we faced - clients setup delegate forwarding rules, so the "bosses" and their delegates had copies of the meeting invites in their inboxes. The client used Redemption to write a MAPI script to disable those rules, but it didn't work as planned. The good news-- the Sumatra process correctly built the bosses calendars! The bad news - delegate had a bunch of meeting requests in their inbox that they had to delete (Not a show stopper -- just tedious!)

Had they migrated to Exchange 2010, this would not have been necessary because Exchange 2010 allows you to manage rules using these six commandlets: Get-InboxRule, Set-InboxRule, Remove-InboxRule, Disable-InboxRule, Enable-InboxRule and New-InboxRule.

One approach is to use "Get-InboxRule" to find all enabled, server-side rules. Disable those rules (remember which rules you disabled so you can re-enable them after the migration.)

We came up with another approach: Add a new rule that has the "highest" priority, have that rule do nothing, then say "stop processing rules." After the migration, remove that rule.

Here's how we approached it for one user, say, Zyg:

• New-inboxrule -mailbox:zyg@mailbox.sumatra.com -name:"_sumatraHiPriorityRule" -Priority "0" -StopprocessingRules:$true -Confirm:$false

and then to remove:
• Remove-inboxrule -mailbox zyg@cod.sumatra.local -Identity:"_sumatraHiPriorityRule" -Confirm:$False

Caveats:

  • Note the priority zero (0) makes this rule the highest-priority rule. All others drop down one.
  • We are ignoring the power-rule-user scenario: the user exceeds Exchange's inbox rule memory size buffer limit (it's 32KB) (or about 40-50 rules.) Obviously when you're at the limit you can't add any more rules. We don't have a suggestion except to say "look" for disabled rules and ask the end user if a few could be removed.
  • The "-force" parameter - removes disabled rules AND all Outlook client-side rules.
  • new-InboxRules doesn't accept pipelined userlist from "get-mailbox -filter {isResource -eq $false}". What happens if you have 5,000 accounts? Stay tuned ---

Friday, September 10, 2010

Sumatra Utilities - Holidays for the remainder of 2010

Since the year is drawing to a close, we're going to put up the Sumatra Utilities for 2010 for no charge for the rest of 2010.

So Exchange Admins in the USA can server-side insert Columbus Day, Thanksgiving, Christmas, and New Years, and Canadian users can do Thanksgiving and Remembrance Day, and UK users can do bank holidays from now until the end of the year and... OK OK you get the idea.

This version will only insert data up to January 2011. This version works with both Exchange 2007 and Exchange 2010, and will not work for hosted Exchange (i.e., Live @ Edu). Hosted sites working with us on migrations already have versions that will insert holidays.

To download the ZIP file just click here. If you want to read through the documentation first, please do.

Look for an update from us in October about what we'll do with server-side Exchange holidays in 2011.

If you are looking to private label or distribute and support the Utilities holiday insertion tool we'd be happy to discuss that.

Sunday, September 05, 2010

Exchange 2010 SP1 - ErrorRecord: Database is mandatory on UserMailbox error

We planned to upgrade our Exchange 2010 servers to SP1 this labor day weekend to take advantage of these calendar-related improvements:

  • Outlook Web App Improvements
  • Calendar Repair Assistant supports more scenarios than were available in Exchange 2010 RTM.
  • Mailbox Assistants are now all throttle-based (changed from time-based in Exchange 2010 RTM).
  • Internet calendar publishing allows users in your Exchange organization to share their Outlook calendars with a broad Internet audience.
  • Importing and exporting .pst files now uses the Mailbox Replication service and doesn't require Outlook.

(fyi be prepared to install hotfixes before installing SP1!)

But what happens when it fails on the mailbox role with these two errors?

  1. ErrorRecord: Database is mandatory on UserMailbox. Property Name: Database


  2. Microsoft.Exchange.Data.DataValidationException: Database is mandatory on UserMailbox. Property Name: Database

It seems we had to upgrade active directory (i.e, run setup.com /ps, then /p, and then /pad)

But that threw an error "Setup previously failed while performing the action "BuildToBuildUpgrade"

There are two fixes to this problem. The FIRST Fix - edit the registry (seems like that's always part of a fix), and SECOND remove a few system mailboxes:

Edit the registry. Under the key HKLM\Software\Microsoft\ExchangeServer\v14\MailboxRole you will find two keys - Watermark and Action. Export the mailbox role settings, then delete the two keys. Now re-run setup.com /ps, then /p, and then /pad. )I tried running the setup GUI, but it didn't completely upgrade AD.)


The SECOND fix: Now we're back to the initial "Database is mandatory on UserMailbox" problem. Launch AD Users & Computers, and delete the discovery mailbox, system mailbox(es)

Finally, if you are deploying Exchange 2010 for the first time, Exchange 2010 SP1 is a full install package. Pat Richard's Exchange2010Prereqs.ps1 script simplifies installation.

>>Update After I brought the servers back online and started writing this post, I found Brian Day's post in Technet (...wish I had found it earlier!)

--Russ

Tuesday, August 17, 2010

Migrating from Exchange to Live@Edu - NOT a no-brainer

We've been getting a lot of email from people who are weighing the decision between on-premises Exchange and Live @ Edu. We got worried when we started picking up on two assumptions that a lot of them are making: that both Live @ Edu and on-premises Exchange 2010 are functionally equivalent and that should you decide to move between them it is a simple, no-brainer activity to shift from on-premises Exchange 2010 to cloud-hosted Exchange later on.

Disillusionment Time!

There are two things you need to be aware of at the outset:
  1. Live @ Edu has limits compared to on-premises hardware (and this affects migrations disproportionately)
  2. Going from on-premises hardware to Live @ Edu is just as major a migration as going from (say) Oracle Calendar Server to Live @ Edu.
We've dealt with the first issue already in this blog, including some differences from a coding perspective.
Now let's talk about going from on-premises to Live @ Edu:
First the voice of experience, in this case a user going from E2K7 to Live @ Edu:
http://nzschooltech.blogspot.com/2010/04/migrating-from-exchange-2007-to-liveedu.html
Yes, you CAN devise and execute your own migration process. But but do not plan on it being either simple or fast.
Second, we have the voice of authority, Microsoft, warning about this:
http://outlookliveanswers.com/forums/p/519/4961.aspx#4961
So Microsoft is working the IMAP mail migration angle (be sure to test how long it takes), but calendars, contacts, tasks are not included.

Third, we have the voice of Sumatra:
If someone is moving your calendars, ask if the meetings come over live with guest lists and responses intact.
Our general recommendation: If you're looking at migrating from a legacy system and considering going into Live @ Edu sometime down the road -- all indications are that it is better to make your end-point decision FIRST. It will save you tons of work down the road.

Wednesday, August 11, 2010

Disable Meeting Forward Notifications

Gentle reader,
When migrating calendars and re-creating their state, Ms. Calendars finds it very useful to disable meeting forward notifications. Otherwise, Ms. Calendars does not know where the heck the darned invitations are or what has happened to them and has no reasonable way in this level of reality to respond to them appropriately.
To do so:
Disable External Meeting Forward Notifications for a Single User
Set-RemoteDomain -MeetingForwardNotificationEnabled $false

Disable Internal Meeting Forward Notifications for a Single User
Set-MailboxCalendarSettings -Identity user email@yourdomain.com
-RemoveForwardMeetingNotifications $true

Thursday, August 05, 2010

Wednesday, July 21, 2010

Outlook Live: Bulk E-Mail and Daily Recipient Rate Limits

Folks looking to go into Outlook Live should check this out:

Bulk E-Mail and Daily Recipient Rate Limits

Because when you re-create calendaring state as we do in a migration you are very likely to find some people who are hitting into this limit.

We sometimes do get the question: Why do you need to send messages if you are migrating calendars?

(We do, oh we really do!)

The answer: because calendaring in Exchange is a message-based protocol (Duh). Single appointments do not fall under this limit, but meetings DO. And remember, with meetings there's the invitation AND the response.

Saturday, July 17, 2010

Outlook Live and Outlook On-Premises Differences

You know.... there's a bunch of these differences between Outlook live and Exchange on-premises.
And like discovering land mines you're only going to know when you step on one of them.
Such is the case with Throttling Policies and the EWSFindCountLimit.
What does this have to do with calendar migrations? Just in our UNDO function (a prudent safeguard which many of you seem to find comforting).
Our QA team discovered weird behavior in Live @ Edu that does not exist in on-premises Exchange when we were trying to UNDO several test insertions at once. The default limit in ESWFindCOuntLimit is 1000 items (and this in our case includes things in the Deleted folder).
So some of our higher-end users were not being UNDO-ne.
We're fixing that and preparing for the next landmine.
Stay tuned.

Tuesday, July 06, 2010

Inserting into Live @ Edu vs. inserting into on premises hardware

We were working with a client doing a migration into Live @ Edu and wanted to get some absolute data on calendar migration performance on their machines versus everyone else. So in true Sumatra fashion we created a test database of 20 users and had them insert it in their test environment. It took 19 minutes.

And we then inserted the same database into our Exchange environment. That took 12 minutes (not surprising, we have good hardware and not an enterprise-level load)

Then we inserted the same data into Outlook Live @ Edu. It took 71 minutes.

Just to be sure we were not doing something really wrong we ran it twice and got the same manatee-like languid pace. We're used to measuring migrations with a clock, not a calendar.

We're sure we're not processor bound on our client system. The question is whether we're processor-bound on the server (likely) or network-bound (not as likely). The results are in any event troubling for anyone wanting to do a bulk calendar migration.

But wait -- there's even MORE BAD NEWS FOR calendar migrations!

According to Message, Mailbox, and Recipient Limits (tip 'o the hat to Duncan in London), there are limits of 30 messages per minute and 500 recipients per day. And the logs from London's test runs indicate they are already hitting this limit.

Taking calendar data over in a full-state method we re-create all of these and it is not unusual for the even moderately-scheduled user to hit these limits.

Stay tuned. We're working on creative solutions.
There is a ray of hope, though. This thread indicates others are running into the same absurd limits and Microsoft MAY be willing to make exceptions (check out the procedure at the end).

We suggest you folks who want to do a full-state calendar migration contact your Microsoft Rep and ask them if they can get these limits removed for the duration of your migration.

Wednesday, June 23, 2010

International characters going into Live at Edu migrations

Because we're nutcases about accuracy and dependability we checked international characters going into Live @ Edu migrations and found no problems.
So umlauts, acutes, cedillas, and various other characters should come out fine.

Thursday, June 03, 2010

Setting Permissions for a Live @ Edu Migration

OKAY, you are serious about getting out of Oracle Calendar and into the Exchange Cloud. So you need to know how to set up your permissions on your Live @ EDU Admin account so that the migration application has access to all accounts to do what it needs.


 

You only need to do this once and you can remove these (rather generous but necessary) permissions after you have verified the integrity of your data and removed the Keyword.


 

  1. Setup live@edu:
    1. Your domain must be Org-owned (you'll be setting RBACs….)
    2. Create a service account, e.g. deleg8@livetest.YOURDOMAIN.com
  2. On your PC, connect your local instance of Windows PowerShell to Outlook Live
    1. Prerequisites:
      1. You'll need Windows PowerShell 2.0.
        1. Get it here: http://support.microsoft.com/kb/968929
        2. If you have windows XP x86 must upgrade to SP3+; 
        3. If you have windows XP x64 use the windows server 2003 x64 version
      2. Launch PowerShell: Start > All Programs > Accessories > Windows PowerShell > Windows PowerShell right-hand click and "Run-As administrator"
    2. Set the credentials for your Windows Live ID and Password for your Outlook Live account, then define a session
      1. $LiveCred = Get-Credential 
      2. $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $LiveCred -Authentication Basic -AllowRedirection
        1. If it fails to execute, then:
          1. Set-ExecutionPolicy RemoteSigned 
          2. …. Or unrestricted if you are brave
      3. Start a session to import the Outlook Live commands into your session.
        1. Import-PSSession $Session
        2. Setup RBAC impersonation using built-in role "ApplicationImpersonation"
  3. Define RBAC impersonation in Powershell:
    1. New-ManagementRoleAssignment -Name EWSImpersonation -Role ApplicationImpersonation -User deleg8@livetest.YOURDOMAIN.com
    2. After you are done, disconnect Windows PowerShell from Outlook Live:
      1. Remove-PSSession $Session

Wednesday, June 02, 2010

Oracle Calendar to Exchange Live at Edu - the Video

We got a request for a video showing data migration from Oracle Calendar to Live @ Edu.

We put together an ad hoc committee to create the clearing for the conversation for possibility..... ah heck.... we just put some software up and did it.

Michael Moore has nothing to be afraid of.

You can also view it off our main site at http://www.sumatra.com/ocs-to-exchange.wmv

The melodious voice you hear is Zyg (whose role in Sumatra is the moody "Ben Affleck" character in contrast to Russ's "Matt Damon" persona).

Interested in trying it out? Our contact page is here.


Tuesday, June 01, 2010

Migrating Oracle Calendar Server into the Microsoft Exchange Cloud

The calendar gnomes have been busy.

We have gotten some requests to take Oracle Calendar Server into this Microsoft "cloud" thing (which last time I looked had a couple of different names).  Of course we started with Live @ Edu because that's where the first money is.

So if we look at Jimi's calendar in Oracle Calendar we see:


and if we look at his calendar in Sumatra's LIVE@ edu test system we see the exact same thing (minus the color which you cannot port anyway).



Some of you will notice the one appointment that's not there, which led us into looking at timing issues in Live @ Edu.  We found that changing our CAS and EWS URLs for the insertion to remove the "PSH" part removed the issue.

If your Outlook.com server is something like
PODnnnnnnPSH.outlook.com

use:
PODnnnnnn.outlook.com

instead on insertion.

... and Jimi's calendar comes out fine everywhere.  So in case you find yourself missing some data, check the URL you're pointing to.  We obviously don't have as much control over timing and performance in this scenario as we do in a native Exchange environment.  So the first few who go live with our tech are going to be taking the earliest risks for timing and the eternal X-Factor.



Oh yeah, this would work for Meeting Maker, Zimbra, Sun Java Calendar, anything else we can migrate.  But let's face it, Oracle Calendar Server is the one everyone is currently looking to drop ASAP.

This all involved minor changes to the SuExchange interface, mainly to specify Credentials to your CAS server.  Your Live admin account is the one to use:

This also means there's no need to "Run as..." with the Service Account.  Your  CAS credentials effectively ARE the Service Account.

There's also good news on conference rooms, which are looking like we can Accept and Decline them under our control but as always we want more field tests to make sure we're not drinking our own Kool-Aid: 


Keep in mind: our distinction is that we re-create meetings with guest lists and responses and re-create recurrence patterns in moving from OCS to Exchange, and that is the same whether going to the cloud or a native Exchange server.

So from the perspective of your end users it's a migration with results that make it act as though you've been using Exchange all along.