Tuesday, December 30, 2014

A few miscellaneous useful links and articles to close out the year

Closing out 2014 with a few Exchange / Outlook related tips.

Really good info in Ways to Avoid Email Tracking.

This includes my favorite advice: Don't even click the UNSUBSCRIBE link.

What these guys are looking for is any kind of response.  You play into their hands by clicking anything.  Best to ignore them.

also -- 

The Best Command Line Replacements for Bloated Desktop Apps gives you some really good tools that are compact and functional.  That we use the exact same philosophy on our calendar migration tools is one of the attractions of this article to me.

and finally --

Adding Sun, Moon, and Stars to Google Calendar.  

Friday, December 05, 2014

Apple iCalendar to Office 365 Migration

Got a request for migrating Apple to Office 365.

It was for 80 users, so not a viable site for us to write a full-state migration.  

Always wanting to put useful information up here we thought we'd sketch how to do small migrations like this on your own.  Since last I looked at iCalServer 1.0.6, Apple Calendar Admin did not make migration an easy thing.

The Quick and Dirty Way

You will need to execute an AppleScript like this one: http://forums.macrumors.com/showthread.php?p=20317282  to produce ICS exports.  We have not tested this script so we cannot  guarantee it works, but you get the idea:  you need to extract your data in some meaningful form.    Next you need to read this file into Outlook via client-side import.  Yep -- one user at a time.

You will lose guest lists, guest responses, recurrence patterns, and live meetings.  Not to mention any resource bookings.  

But it is inexpensive and immediately actionable.

The Right Way

The right way is where we read the iCalendar calendar data store and insert into Office 365 of Exchange directly.  I.e., the right way is server-to-server rather than script-to-client. This also allows users to be remapped, and then inserted into Office 365 / Exchange while maintaining full-state calendar information

This amount of engineering is impossible to justify for small sites.  

If however, you have a few thousand users you need to migrate feel free to contact us.

(Later addition: We did this, as the video shows)

Wednesday, November 19, 2014

On-Prem #MSExchange to #Office365 Full-State Calendar Migration: Looking for testers!

Folks, we're looking for beta testers for our full-state Exchange to Office 365 (and vice-versa!) calendar migration.

We've got it all there: live guest lists, re-created responses, meetings being actual functional meetings when it's all done.  But we always find the real world is a lot better place to test things out than our labs (however good we've gotten at anticipating problems).

Interested?  Want to discuss for informed consent?  Contact us

Monday, November 17, 2014

#Oracle Calendar Server to #MSExchange migration option comparison matrix

Because you asked for it -- a comparison matrix of Oracle Calendar Server to Exchange calendar options.

 ICS export as-is
Generates Recurring meetings. Add guests to agendas
Generates Recurring meetings. Add guests to meetings & sends out proposals
Full state for all accounts
Migrate Selected Accounts in phases or batches
Big bang
Re-Map legacy accounts to Exchange Addresses
Adds Appointments, All Day Events
Merge individual occurrences into recurring item
Guests added to Current Meetings
ü (added to agenda)
ü (added to item)
ü (added to item)
Proposes Current Meetings
ü (optional, tagged)
Adds meetings you attend
ü(as appointment)
  ü(as appointment)
ü (as tentative item)
Responds to Meeting Requests
Archives Historic (Completed) Meetings
Re-Books Resources for Meetings
No Server-Side Install
Migrate to Exchange 2013/Office 365
Email – use imapsync
Uses which OCS Export?
UNDO (back out strategy!)

Wednesday, November 05, 2014

Exchange On-premises to Office 365 calendar Migrations

One of our long time friends of Sumatra is considering an on-premises Exchange to Office 365 migration and has determined that the lack of a full-state calendar migration is a problem.  All meetings come over as appointments without guest lists or they come in through the long, tedious PST method and there is no way to easily re-map the addresses.

Not that we predicted this coming issue a few years ago or anything.

So the short answer is: yes, we can handle this, keeping the meetings and guest responses live.

Anyone else out there looking to be an early informed consent test subject?

Wednesday, October 29, 2014

Free #Oracle Calendar to #MSExchange / #Office365 Migration Software for Download

We've made our Oracle Calendar Server (OCS) to Exchange 2013 / Office 365 migration software available for free at this link.

See our previous post for documentation.

This will let you insert ICS exports from OCS from today one month forward.

If that works for your needs, go hog wild in your production systems, we will not mind.

If you want to preserve recurrence patterns and guest lists, you will need a license key from Sumatra.

We wish you successful migrations!

Oracle Calendar Server to Exchange Migration Documentation

The software is coming really soon (like this week or next week depending on final Quality Assurance regressions).

But in the meantime you can view the documentation here.

Friday, October 24, 2014

Recurring appointments in Oracle Calendar Server to Office 365 migrations

We've greatly simplified the migration process for retaining recurrences in migrating from Oracle Calendar Server to Office 365.  This video shows it in action and goes over some of the gory details of matching recurring patterns.

Tuesday, October 14, 2014

New #Oracle Calendar Server to #MSExchange #Office365 migration tools

Lately we have been getting lots of folks (mainly medium businesses and small universities) contacting us looking to migrate their Oracle Calendar Server data into Exchange better than the current crop of low-end solutions can accomplish.  This means three things:
  1. Give us recurring meetings and appointments
  2. Please please please make the meetings live post-migration
  3. We want to choose solutions that reflect our budgets and business goals (i.e., we do not have a lot of money or time)
OK -- we've heard you and we can do all of that.  You could try to write this at home, but we have years of experience that keep us safe.  

So we've created three new options, the first of which we'll let you download and run if you contact us with your work email and size of the migration.

The application allows you to try out what we refer to as our FREE insertion, we think of it as a trial, but if all you need is the next 30 days worth of calendar data from your OCS, hey -- go ahead and use it in production.

The Free version does not re-create recurrence patterns.  You need to license that in what we call the Flat option, which will also include the attendees in the meeting agenda, like this:

The Partial version will actually RE-PROPOSE all current meetings (i.e., not meetings in the past) so that the meetings are real MEETINGS, not static entries in your calendar.  Post-migration your users will need to respond to these meeting invitations (this is part of the deal for lower cost).  But they're live, functioning meetings.  Like this:

Note that now "Attendees" is active because Jimi Hendrix has invited Janis.Joplin to the meeting and that it is remapped to their new domain.

Clicking Attendees shows us that Janis is Required but we have no response from her yet.

Got questions, feel free to contact us.

This also comes with our selective UNDO which will remove ONLY the data we've inserted.

You can see the current version in action in this video:

Want a convenient summary?  Here you go:

If you want your OCS calendar migration…
Choose this Sumatra OCS Migration option
Free, fast, no frills
no live meetings, no recurrence patterns.  No history and only 30 days into the future.
FREE -- Inserts ICS export as-is
Inexpensive, fast
recurrence patterns and guests in agendas but no live meetings
Flat-- Generates Recurring meetings. Add guests to agendas
Reasonably priced, fast
recurrence patterns and current meetings re-proposed (but not responded to automatically)
Partial -- Generates Recurring meetings. Add guests to meetings & sends out proposals
White glove full state-recreation for an enterprise
Full – Recreates Full calendar state recreation for all accounts

Looking to migrate your email as well?

We have found imapsync is an excellent product for email migrations.

Please see our blog postings MDaemon Mail to Exchange via imapsync and imapsync vs PST: Tonnage and Speed (spoiler alert: PSTs are incredibly slow and inefficient) as well as any other recent email migration postings on our blog to give you an idea how easy and fast it is to use imapsync.

Monday, October 13, 2014

Russian Time Zone Changes and Exchange

The title says it all:  Be aware: October 26, 2014 Russian Time Zone Changes and Exchange

Daylight savings time changes -- the gift that kept on giving.  We only tell stories of the great 2007 US DST shift with fermented beverages in our hands.

Buona fortuna aux nos amis les russes !

Tuesday, September 23, 2014

Metrics for an #Oracle #Beehive Migration to #Office365

Our latest Oracle Beehive to Microsoft Exchange migration tool brings back the "Use Report" capability that allows you to generate an HTML summary of how much data your Beehive server contains.

Clicking the highlighted button....

Will generate a report called beehivemetrics.htm that looks like this:


Yes, we had some fun with how we referred to the top volume users.

This is great information for determining how to do a segmented migration across multiple CPU instances (not that we had to enable exactly this over the last weekend or anything....).

Saturday, September 20, 2014

#MeetingMaker User Password Recovery

Meeting Maker 7x / 8x User Password Recovery

First get comfortable with reading binary data.

Second, open up a Meeting Maker Server Export in said binary file viewer.

Third, figure out how to turn all this gobbledygook into something semi-useful (as we have done below), but barring that, search for your USER NAME or USER LOGIN, in the example below we use “Adam Ant” with User Login “adam”

Adam’s password is encrypted in the line beginning with “OVNI 0103” (which will ALWAYS immediately follow his USER LOGIN)

The first digit “1” tells me the password is 1-byte long.  In this example I know his password is “b” but it is encrypted in the export file as “c”

You should start to suspect a pattern.

If the clear password is “aa” (61 61h) the hex string is “63 8C”

The pattern holds.  The first encrypted character = character + LENGTH of password

Now we proceed to the next digits in turn and build a table (a, aa, aaa, aaaa, b, bb, bbb...) you get the idea) which we will leave as an exercise for the reader. 

Going down the column is less clear than going across the rows.  Going from “a” to “b” everything augments by one (and this has held across a range of experimentation), meaning we can in a pinch use each “a” length cipher as a base to figure out anything of that length.

So the algorithm:
1.       Find a user
2.       Read the password length
3.       Subtract length from the first digit to get the hex of the first character
4.       Use the “a” column in your table as an offset for all the other letters in the password sequence. 
5.       Do not ask for any more information you script kiddies in India – this is more than adequate.
So the 7 digit string “7B 96 BA E9 04 38 26” deciphers as “theman5”
7 letter “50 A4 B6 EA 04 FD 24” deciphers as “Ivana33”
5 letter “70 8F D0 E1 14” is “kayak”
Go wild.

Wednesday, September 17, 2014

Hacking Canon Firmware -- Use This on Meeting Maker

With Meeting Maker in the final throes of its extended swan song, I'd like to point folks who still want to roll their own server-side migration to Hacking Canon Pixma Printers.  Aside from being an excellent tutorial on reverse engineering, it's pretty much the same method we used (all those years ago) in breaking the Meeting Maker export format. 

Keep in mind, the issue there is not getting at the encryption key (since except for the user passwords there isn't one and you can break those in a few minutes), but establishing the encoding scheme for individual data records.  After you run this for the first few you'll have the wash-rinse-repeat cycle for the entire data set.

You'll then have to assemble object-oriented database elements into something like a coherent whole, but if you get this far into the process that should not be a barrier to success.

Only other hint I need to give you: work on the server export file not the live server data.  The live server data is a hot mess horror show.

Friday, September 12, 2014

Messages stuck in OWA's DRAFTS folder (Post Exchange 2013 CU6 update)

I updated our Exchange servers to CU6 over the US Labor Day weekend and hit a few head-banging errors.

First, CU6 failed on the mailbox role. The solution: remove the Discovery mailbox.  Then setup successfully completed.  (Remember to recreate the discovery mailbox!)

After I restarted the Exchange servers, mail was stuck in the drafts folder.  I tested mailflow using the "test-mailflow" cmdlet, and saw it failed (not that stuck messages in OWA weren't enough):

A quick search pointed to DNS or Security policy problems. Not in our case. Next check, were all services running...."Test-ServiceHealth"

No...Two  services were disabled:  MS Exchange Transport Delivery (MSExchangeDelivery) and MS Exchange Transport Submission (MSExchangeSubmission.) Restarting those services made the mail flow once more!

Tuesday, September 09, 2014

Sumatra Holiday cmdlet for Microsoft Exchange - Download


Our server-side holiday cmdlet for Microsoft Exchange simply works and has more functionality than the client-side holiday capability Microsoft built into Outlook.  And of course an admin runs this server-side rather than hoping users run use Outlook to add holidays client-side.

When we offered it up as a "pay what you want" we got thousands of downloads, and a number of people who actually paid of the "use your fingers" magnitude.

But people keep asking for it, so we're going to let you download it under our advertising model meaning every item inserted will be stamped "Courtesy of Sumatra" in the agenda.

So you may download it here

If you want to suggest additions or modifications, contact us.

And check this blog or  to see what we'll support in the future. 

Friday, September 05, 2014

Disappearing Contact/Calendar item body fixed in Exchange 2013 CU6

We blogged about clients reporting problems with notes after inserting contacts and calendar items from Beehive and MDaemon migrations April, '14.)

KB 2975003 confirmed this was a problem! The KB says: "...compose or edit a Calendar item by using Outlook Web App...and then save the item. When you open the item in Microsoft Outlook 2013 or Outlook 2010 in online mode, the body of the item disappears."  We scrambled and updated our code to set MAPI codes to fix the problem in our code.  But they reported their end users were still having the same problem on NEW items.

Now there is a fix: install Cumulative Update 6 for Exchange Server 2013: 2961810

Tuesday, August 19, 2014

Western Australia Holidays with the cmdlet

We've had some requests from Western Australia lately, so here's the cmdlet working with holidays in OZ.

September 16, 2014 update.  Read this post to download the cmdlet.
February 23, 2015:  Folks, please leave us some feedback about what you like in the cmdlet and what you'd like changed.  We see how many of you are downloading it.  We'd love some feedback.

Tuesday, August 12, 2014

Server-side cmdlet for Holiday Insertion into Microsoft Exchange

Preliminary video of our server-side holiday insertion cmdlet.

It doesn't look good in full screen mode but you get the idea how it works.

Sunday, July 20, 2014

What the heck are all you guys in Turkey doing reading this blog?

Dear Turkish Readers,

I get why the USA and Western Europe read this blog.  

I get why India, China, and Russia read this blog.

I get why South America and Africa do not read this blog.

What I do not get is why we have so many hits lately from Turkey.

Can any of you guys please enlighten me?

Thursday, July 17, 2014

Human Resource Conference Room Bookings as Indicators of Impending Doom

If you follow this blog you probably also know as the New York Times puts it, A Large Round of Layoffs Is Expected at Microsoft.

This is the key sentence "Human resources managers have begun reserving conference rooms for most of Thursday, most likely a sign that they will be used to meet with laid-off employees..."

Now HR and Conference Rooms is almost never a good combination. I flash back to my days at Lotus (pre-IBM), when the only thing worse than a group meeting with HR was a group meeting with HR with a few dozen donuts -- translation: "re-organization time!".

What I find interesting is that the conference room bookings are the most direct and compelling evidence.

Microsoft folk, if you wanted to get really subtle in your analysis of your future chances, just use Outlook to look for free time in the conference room YOUR corporate mouthpiece.... er.... Human Resources Manager... uses.

Tuesday, June 24, 2014

#Oracle Beehive to #MSExchange through a proxy -- alternate strategy

We never shy away from saying that migrations are hard.

We also never shy away from saying "Nope -- you're in over your head."

And we thought both of these were going to come to bite us as we looked at migrating Oracle Beehive from behind a proxy server.  

A set of test data we would normally expect to migrate in a few minutes was taking hours.

And there was no way to remove the proxy.

Running the calculations told us the full set of users would take four days on a single instance.  We could not put someone through that and maintain anything like guilt-free sleep patterns.  We put on our thinking caps and came up with the idea of exporting the data into a format we could use (Oracle Beehive IS a SQL database after all), taking that outside the firewall, importing it into an Oracle database, and then inserting the data (the final step herewith shown):

Problem solved.

If it's applicable to you we'll take you through it in your trial phase.

Tuesday, June 17, 2014

Oracle Beehive to Microsoft Exchange Calendar Migration: Beehive-Buddy

Oracle Beehive seems to be the legacy system folks are replacing at record pace these days.

So we've been burnishing some of the features.

Latest one: Beehive Buddy Lists.  
Any contacts tagged as Beehive-Buddy will not migrate.  This reduces the number of duplicate contacts.

Thursday, June 12, 2014

How to Stop Facebook From Using Your Browsing History

This is not about calendaring.

But let's face it, none of us democracy-loving folk want to live with the Thought Police looking at our every move.

How to Stop Facebook From Using Your Browsing History is a REALLY useful link.

Remember: if you're not paying for the product, you ARE the product (see:Season 1, Episode 11: To Heck and Back) .

Tuesday, June 10, 2014

Migrating #MDaemon Public Distribution Lists to #MSExchange

To Migrate MDaemon Public Distribution Lists to Microsoft Exchange using our tools, follow this procedure:

  1. Create a new directory to hold the processed group files.
  2. Launch the mCalReader_ParseGroupFiles application.  Browse to the MDaemon server directory for the group files (these all have an extension of *.grp and the format NAME@Yourcompany.com.grp), and the output directory from Step 1.  Ensure the file extension pattern matches your group files (Note: it defaults to @YOURCOMPANY.com.grp)
  3. Press “Go.” The processing should happen quickly. Then exit the program.  In the directory from Step 1 you should have a file called Distributionlists.csv.
  4. Move the files and the shell cmdlet “DistGroupCmdlet.ps1”  to the Exchange server (or any shared/accessible directory)
  5. Edit DistGroupCmdlet.ps1:
a. Modify $MyDistFileList to point to the Distributionlists.csv file.
                              i. Note:  the shell will create distribution lists for all entries in this file.  Remove entries that you do not want migrated/created.
b.   Modify $myMigratedOU to point to the OU that will contain the distribution lists.  Note this is a PATH to the OU, and not a typical OU identifier (e.g., ou=xxx,dc=my,dc=com),  Sample OU:, $myMigratedOU = "orca.sumatra.local/Clients/YOURCOMPANY/Lists"
6.Launch Exchange PowerShell, change directory to the location of the script and distribution list files, then run the script: .\ DistGroupCmdlet.ps1.
·         If you want to test a few distribution lists:
o   Run the EXE to parse all of the GRP files.  The EXE produces the file  Distributionlists.csv
o   Edit that file, and leave the first line (header) and only those groups you want to test.  Then,
o   Copy the Distributionlists.csv, the supporting group CSV export files, and the PowerShell script to Exchange
·         Accounts:
o   Since there is a possibility that users might not exist in Exchange, the script creates the distribution list first, then adds users to the list one user at a time. 
o   If the user does not exist in Exchange, the cmdlet throws an error but continues.
o   Also, the tool does not change any of the SMTP address domains, e.g., email addresses such as “@YOURCOMPANYmail.YOURCOMPANY.com” will be migrated as “@YOURCOMPANYmail.YOURCOMPANY.com”, and not “@YOURCOMPANY.com.”

By the way, this was field-proven as the last stage of a migration at a 300 user site over this past weekend.

Tuesday, May 27, 2014

#CalDAV to #MSExchange calendar migration tool

A quick gut-check from our loyal readers: do you guys want a CalDAV to Microsoft Exchange migration tool?

UPDATE December 2016:  Folks: We did this.

Tuesday, May 06, 2014

The Cookbook Version of Exchange 2013 Migration Rights

Gentle reader,

No matter what you want to do with calendars server-side in Exchange, you are going to need to become conversant in Exchange permissions.  It's the devil's bargain: if you want to migrate all your calendar data and preserve its utility with guest lists and responses, then you need to be able to manage Permissions on your Exchange users.  

So here we're putting out our best effort at a cookbook guide to Exchange 2013 permissions for migrations.  Even though full-state calendar migrations will never be a purely cookbook operation we think this will get you there (and we have some field experience taking a couple of novices through it this way),

First:  GLOBAL ADMINISTRATOR rights are NOT enough.  These rights give you administration rights over Exchange / Active Directory, but they do not give you the rights to access mailboxes – which is what you will need to move in data and re-create state.

We’re going to take this in stages.

BackgroundYour ADMINISTRATOR account needs to be able to:
  • Use REMOTE POWERSHELL to Log into Office 365
  • Create a separate service account (this keeps your ADMIN function separate from your MIGRATION function)
    • We call the Service Account EXSU.  When you create it, make sure it is mailbox-enabled (you will be sending email on behalf of this account
    • Grant EXSU three rights:
      • Impersonation
      • No throttling.  This is relevant (i.e., in your control) only for on-premises Exchange.  For Office 365 you will need to contact your Microsoft rep and explain what you are doing and ask throttling turned off for the duration of your migration.
      • FULL ACCESS to mailboxes (this makes it easy to use OWA with this account to check the results for individual users in testing and migration)
Execution.  To do this – use the various Exchange PowerShell cmdlets which execute the appropriate actions.


REMOTE to your OFFICE365 account

IMPERSONATION: You’re creating a ROLE called “_suImp8” that allows Impersonation and then assigning it to EXSU

THROTTLING: You’re creating a policy called SuThrottling Policy and then assigning it to EXSU.  (Otherwise Exchange 2013 might shut you off mid-migration)

FULL ACCESS:  this grants access to ALL MAILBOXES in your domain to EXSU.

Test.  Can you put the EWS URL in a BROWSER and when prompted for credentials get this?

Log in with your EXSU credentials.
You should see this:

This example shows access to Office 365.  Obviously if you are going into your on-premises or your own hosted domain, your URL and service name will be different.
Now to test FULLACCESS go to the URL box and modify it as I have with a user on your domain:

Now you will be prompted for your end user mailbox credentials.   Use the service account (EXSU) and the password to access to the mailbox.  This is where FullAccess comes in – you don’t have to crack all of your end users' passwords!
NOW it should display your test users’ mailboxes in OWA

If all of these are successful, now you can do a test insertion!
Congratulate yourself.  Permissions are historically the worst learning curve in a migration.