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

Holidays.

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.
Notes:                                     
·         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.

Start POWERSHELL.

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:

Hit ENTER
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.



Thursday, May 01, 2014

Hosted Oracle Beehive to Office 365 Field-Proven

We had an informal bet, Zyg taking the side that Hosted Beehive to Office 365 was not going to work the first time out and Russ figuring that it was.

Russ won. 

Data goes in like a champ in the current version of the Beehive migration code.

Since we're having to go through a proxy server performance is much lower than we see in on-premises migrations -- but that is what multiple instances are for.  Stay tuned for more news.

Thursday, April 24, 2014

Burt's Bees calendar Advertising

From the New York Times, Burt's Bees is promoting a new line of anti-aging products via opt-in calendar events.


I first saw calendar spam in Yahoo calendar in 2008.  This at least is an active opt-in which I have no problems with.

Going to be interesting to see if it catches on.