Monday, January 21, 2013

Office365 Staged Migration Thoughts

This weekend I did a staged migration from an SBS 2008 server to Office365.  I followed this article for the most part, which was excellent:

In my case, I had the $4 per month Exchange Online plan, which does do active directory sycning as opposed to the small business plan, which does not.

In my case, I had 77 mailboxes I wanted to migrate, some as small as 50 MB, a couple that were 6+ GB and about a dozen that were 3+ GB.  


The things I'd like to remember for future migrations are:
1) really spend time archiving (either just for this process or overall) to get mailboxes as small as possible.  Over time, mailboxes seemed to transfer at a rate of 5 MB per minute - whether I was migrating 3 mailboxes at a time or 10 at a time, so this seemed to be the max upload rate over time (over my 10 Mbps symmetrical circuit).
2) Migrate as many possible mailboxes at a time as the math allows.  In the migration process, Microsoft recommends only doing 3 mailboxes simultaneously.  I don't know where that number (3) comes from.  The process tells you the speed of you upload as you do it, which seemed to average 5 MB/min per mailbox for me.  So I'd recommend figuring out the maximum amount of bandwidth you'd like to use for the process.  Let's say you have 4 Mbps for this process (or 4000 Kbps).  Take that number in Kbps and divide by 666.  That's how many mailboxes the bandwidth will allow.  So in this case, you could do 6 mailboxes simultaneously.
3) When you start a batch, all the users in that batch start forwarding to the Office365 mailbox even though their actual migration has started.  Let's say there are 30 users in your batch and you migrate 8 users concurrently.  If your first 8 users are migrating, those last 22 will already be set to forward their mail to Office365.  Just something to keep in mind.
4) use as few batches as possible.  I had told my users that "you'll be migrated from approximately 3 pm to 6 pm" and then put users in appropriate batches.  While it looked nice to the user to give them exact timelines, making many batches is not efficient because only one batch at a time can run.  Let's say you've got a batch with 10 users and 9 users with 1 GB mailboxes and 1 user with a 6 GB mailbox, that last mailbox will hold up the entire batch from finishing.  Making the batches as large as possible allows for the process to be as dynamic as possible.
5) Don't run the PowerShell scrips to convert on-premise mailboxes to mail user objects until the migration process is complete for the mailbox.  In step 5 of the above article, you can run some PowerShell scripts that will enable autodiscover to reroute to Office365 for migrated mailboxes even though your main autodiscover still points to your on-premise mailbox.  This allows you to migrate a subset of your users (where autodiscover points to on-premise for some and Office365 for others).  In my case, I told my staff that I'd be done Sunday at 6 pm.  I had 8 users who were still mid-migration Sunday at 6 pm.  I ran the PowerShell scripts on those users under the assumption that the migration process would continue afterwards.  This is not true.  The on-premise users no longer have a mailbox so the migration process will break.  I'm going to open up the users's old OST file, export to PST and then import to their new mailbox and not import duplicates in order to fix that since only a subset of data was uploaded.
6) Check email addresses after migration.  Some of my users were sending out email as USERNAME@DOMAIN.onmicrosoft.com after the migration.  For some reason, 3/4 of my users had the correct email address set for them in my on-premise AD in the mail user objects, but the other 1/4 had a default reply address that included onmicrosoft.com.  This should be checked by going to Recipient Configuration -> Mail Contact in the on-premise mail server.  I didn't see where to set this globally, so I fixed this manually for my misconfigured users.
7) Public folders don't exist on Office365.  Assuming you have shared calendars or contact lists, you can create users that will serve that function.
8) Be prepared for the saturation of your connection when downloading all data for the first time.  The first day after the upload (after a weekend upload), I started configuring user Outlooks as they arrived.  My 10 Mbps downstream bandwidth weas fully utilized all day which led to awful behavior.  The larger OSTs never fully downloaded all their data by day's end and inboxes were updating very slowly.  I got many complaints of "I haven't received an email in over an hour" since the Outlook was downloading data and not updating the inbox.  I had users use webmail on day 1.  Overall, for my network, I had users leave their computers on with Outlook open overnight and overall my connection was completely saturated from 8:30 am to midnight (15.5 hours).  

Sunday, January 13, 2013

Installing .net 3.5 on Server 2012 - error '“Do you want to specify an alternate source path? One or more installation selections are missing source files…”

I was installing DirSync on a Server 2012 server (in the process of doing a staged migration to Office365 from an SBS 2008 machine) and DirSync required .net 3.5.  It should be easy, but when using Server Manager to install the feature, I got this error:

Do you want to specify an alternate source path? One or more installation selections are missing source files…

I followed these excellent instructions to install it:
http://www.danielclasson.com/install-net-framework-35-server-2012/

In my case, I downloaded the ISO file and unzipped just the sources folder and modified the path.


Friday, January 4, 2013

H202 error on Quickbooks caused by DNS/network settings mismatch

This problem caused me hours and hours of headache.

I wanted to move my Quickbooks Pro 2010 database host from one server to another.  I had done everything right on the new host as far as I could tell:

  1. install the database only option on the new server
  2. update the Quickbooks version on the server to the most recent version (R16 as of the installation time)
  3. open up the necessary ports in the firewall (8019, 55338)
  4. share out a folder with the appropriate sharing and file/folder permissions
  5. Open the quickbooks database server manager and scan the appropriate folder were QBW files are stored

In this case, I was getting H202 folders over and over again no matter what I did.  I went through many wrong paths, but I eventually found the problem to be the static IP address I had set.  Even though every network setting matched the settings that DHCP provided to workstations, it still did not work.

The only change I made to get Quickbooks hosting to work was give this new server (a Win 2008 32 bit server) a DHCP reservation instead of a static IP address.  I don't know if this added A record entry in my SBS 2008 server that was required or there was some other property (no WINS on my network) - but that was the sole change I made.

As for what I was seeing (in case this helps others).

This is what I'd get in the ND file when running the QB database server manager (without opening the files - note that engine name ends in _18 even though I'm on QB 2010 which means it should end in _20 . . . this is normal):

[NetConnect]
ServerIp=10.0.0.7
EngineName=QB_server7_18
ServerPort=10180
FilePath=E:\quickbooks\Test Company.QBW
ServerMode=1


This is what the ND file would change to when I had static DNS in place:


[NetConnect]
EngineName=QB_data_engine_20
FilePath=\\10.0.0.7\quickbooks\Test Company.QBW
ServerMode=2
FileConnectionGuid=cc8c20cf6bf5445bb1397c152c58645c


This is what the ND file changed to after being successfully opened once I had the DHCP reservation in place:

[NetConnect]
ServerIp=10.0.0.7
EngineName=QB_server7_20
ServerPort=55338
FilePath=E:\quickbooks\TestCompany.QBW
ServerMode=1
FileConnectionGuid=




Sunday, December 23, 2012

Fixing 800B0001 in Windows Update on SBS networks

If receiving 800B0001 errors on domain connected machines on your SBS 2008 network, it's because an update had strengthened the communication channel between the machine and the SBS server and broken the connection.

Ignoring the absurdity of the issue, the fix is to run an update on the SBS box.  This page talks about it (you can ignore the portions about NLB - network load balancing for your SBS box):
http://support.microsoft.com/default.aspx?scid=kb;en-us;2720211

In essence, the resolution is to download this:
http://www.microsoft.com/downloads/details.aspx?FamilyId=2ba0b137-d85b-4734-9a95-11a04004a355

and run this command from an elevated command prompt:

WSUS-KB2720211-x64.exe /q C:\MySetup.log




Monday, December 17, 2012

Calling Office365 support

Microsoft seems to make it as difficult as possible to find the number for phone support for Office365.  After going through the trials and tribulations of finding it, I'm putting it here:

1-800-865-9408

Wednesday, November 21, 2012

autocomplete on Outlook 2011 connected to SBS 2008 not working

I had a user with Outlook 2011 for Mac (running on OS X 10.8) connected to his Exchange account.  The server runs SBS 2008, fully patched (running Exchange 2007 SP 3).

The Outlook account was set up using autodiscover when the user was on the same LAN as the Exchange server.  When the user was not on the same LAN as the Exchange server, autocomplete did not work.

I troubleshot this problem off-site where I was able to replicate the problem.

I'm not sure exactly what I did to fix the problem, but I'm going to document what I did and what I saw.

First, I investigated the user's settings.  Interestingly, the field for server under directory services was blank.  I wasn't sure if there was supposed to be something there.  I assumed yes.

I created a new identity in Outlook 2011 and created a new Exchange account in that new identity that pointed to my personal Office365 account.  I let autodiscover create the Outlook connection settings.  Interestingly, there was nothing there in the server field for directory services either.  The autocomplete was not working in this Outlook profile/account either.

I logged out as the user and logged in as another user (another local account on the Mac).  I opened Outlook and Office update told me there was an update to install (perhaps 10.2.5 - I'm not sure).  I let that update install.  I opened Outlook and set up an Exchange account for a complete separate client that also has an SBS 2008 server (fully patched).  I let autodiscover create the settings.  Autocomplete was not working on this account either, but I did notice that there was a value in the server field in directory services. The value was set to servername.domainname.local.  Clearly, this server would not resolve since the server was not local and there was no route to the server.  This make some logical sense to me that my client's autocomplete was working in the office when he was on the same LAN as the server so Outlook must have been able to route to the server in some way to pull autocomplete data.  So I replaced servername.domainname.local with the FQDN of the server - remote.contoso.com.  I checked the box for SSL.  Directory services said it would use port 3269 so I went to the firewall of my SBS 2008 server and redirected port 3269 to the local IP of my SBS 2008 box.  I closed Outlook and reopened it.  Outlook complained of a certificate mismatch (directory services was pointing to remote.contoso.com but the cert was for servername.domainname.local).  I allowed Outlook to use the server anyway despite the certificate mismatch.  And lo and behold, autocomplete began working.

In addition, Office 2011 also notified me of another update, 10.2.6 i believe - which I allowed to install.

But this is where it gets weird.

I go back into my the user's original profile and autocomplete is working.  I made no changes to his Exchange account.  None at all.  All I did was get aucomplete working on another Exchange account in a completely different Mac profile.  There is no reason that would have any effect on the user's profile.  Autocomplete also began working on my Office365 profile as well.

I rebooted the Mac and the changes persisted (autocomplete still working).  I disconnected from the WLAN the Mac was on and connected the Mac to my iphone's personal hotspot and the changes persisted (autcomplete still working).

I can't narrow this down to a specific thing I did to fix it, but it's working.

Friday, November 9, 2012

EMail hosting options for the small business for late 2012

Email hosting options have changed drastically in the last couple of years.  This post will cover the three main options I see for a company of 20 employees.  I'll lay out the costs as well so that companies with larger or small numbers of employees can make their own analyses.

I see three main options for corporate email hosting:
1) internal Exchange hosting
2) Hosted Exchange
3) Google Apps

Each has their own pros, cons, and costs which I will go over here.

Internal Exchange hosting:
For a long time, hosting Exchange internally was the only cost effective way to get Exchange.  When it cost more than $30 per user per month to get 2 GB of mailbox storage when hosting externally, it seemed like a no-brainer to get in-house Exchange for $8k to $12k.  For some people, internal Exchange hosting is still preferred.

Pros:
  • you have complete control over your data (required for some law firms)
  • you can open your Outlook in your terminal server
  • Mailbox sync with the server when in the office is lightning fast
  • you have full ability to customize your server with no limitations
  • costs are generally one-time fees for hardware/software purchase and not ongoing and internal hosting is often cheaper over the long run (definitely the case for single server implementations as if often the case with small businesses)
Cons:
  • implementation costs nearly double to get redundancy (redundancy typically requires two servers)
  • anti-spam options are generally not as good for internal hosting options as they are for external hosting options
  • problems (whether they be internal like a hardware failure or software crash or external like an ISP outage or power problem) can lead to long periods of time without email particularly if IT support is outsourced

Costs:
If we're talking about a company of 20 users, I'd say you could get a server for $8k that would suffice and handle up to 75 users.  Then I'd personally get Windows SBS 2011 for $750 (includes 5 licenses) and approximately $60 per license for the next 15 licenses.  We'd also want to get anti-spam software.  My current favorite is Vamsoft ORF.  For an SBS server, the price is $375.  Let's also add 20 hours of IT support time to build the server and 2 hours per month to maintain the server at a cost of $125 per hour (a total of 44 hours).  In total, we're looking at $15,525 for the first year and approx $3000 per year thereafter (24 hours of IT support at $125 per hour).  I might also include $240 per year in costs for online backup at ibackup.com in recurring costs and two 2 TB USB hard drives for on-site backup at a cost of $250 in one time costs.  So in total, I'd say we're looking at $15,775 for the first year.  Recurring annual cost beyond the first year is $3240.


Hosted Exchange:
In 2007 or so, the hosted email world was dramatically changed by the release of Google Apps.  Google began offering 25 GB mailboxes for $5 per mailbox per month.  Because they offered  comparable Exchange functionality at a *much* lower price point, Google destroyed the pricing structure that all outsourced Exchange hosts were using at the time.  It took years, but Microsoft itself finally caught up in mid-2011 with their hosted Exchange product, Office365.  In my mind, there is only one Office365 plan that small businesses should look at, the Hosted Email (Exchange Online) plan for $4 per user per month (plus tax) for a 25 GB mailbox.  This option provides all the important features of hosted Exchange that the more expensive plans offer.

Pros:
  • servers where email are hosted are maintained by world class tech support in state of the art data centers
  • email servers are redundant
  • upgrades are automatic with no additional costs
  • there is no hardware to buy or maintain
  • spam filtering is state of the art
  • virtually unlimited storage
Cons:
  • More advanced configuration changes need to be made via Exchange Shell, not a GUI
  • using Outlook in a terminal server will be too slow to be usable, will require webmail in a terminal server
  • Support response time for mail server issues is not anywhere near as fast as a qualified local sysadmin/consultant
Costs:
An organization of 20 users would require 20 mailboxes at $4 per mailbox per month.  At $80 per month, annual cost would be $960 per year.  The transition to the hosted Exchange would probably take an hour per user.  Let's average 45 minutes of support for Exchange per month for a total of 9 hours per year at $125 per year.  First year cost - $4585 ($960 for hosting and 29 hours of labor at $125 per hour).  Recurring annual cost beyond the first year is $2085.


Google Apps:
Google Apps email service is a very good service.  I consider it the only real alternative to Exchange that exists in the corporate email world.  There are isolated cases where I might put in a POP solution, but I recommend against it and do my very best to only ever implement Exchange or Google Apps.  Google recommends using Google from within Google Chrome - and actually using the web browser to manipulate your calendar, contacts, and email.  The experience in Chrome is good, but in the corporate world, most employees are used to (and prefer) Outlook.  Luckily, Google makes a plugin that allows you to have full functionality (email, calendar, and contact synchronization) in Outlook for the PC.

Pros:
  • familiar Google interface for those who like that interface when working within the browser
  • works very well when staff user Outlook for the PC
  • servers where email are hosted are maintained by world class tech support in state of the art data centers
  • email servers are redundant
  • upgrades are automatic with no additional cost
  • there is no hardware to buy or maintain
  • spam filtering is state of the art
  • virtually unlimited storage
Cons:
  • requires using the browser when working on a Mac (IMAP is available for programs, but that doesn't allow calendar and contact synchronization)
  • unable to use Outlook inside a terminal server, will require using webmail
  • sharing calendars and contacts between users requires going into webmail (cannot be done in Outlook like it can be in Exchange)
  • Support response time for mail server issues is not anywhere near as fast as a qualified local sysadmin/consultant
Costs:
An organization of 20 users would require 20 mailboxes at $5 per mailbox per month.  At $100 per month, annual cost would be $1200 per year.  The transition to the hosted Exchange would probably take an hour per user.  Let's average 45 minutes of support for Google Apps per month for a total of 9 hours per year at $125 per year.  First year cost - $4825 ($1200 for hosting and 29 hours of labor at $125 per hour).  Recurring annual beyond the first year is  $2325.