Small Business Server 2011 migration issues

Here are some of the common issues I’ve run into on back to back migrations from Microsoft Small Business Server 2003 to Small Business Server 2011:

Error: Object not found when trying to migrate mailboxes from Exchange 2003
Solution: Add the SBS 2011 computer object to the “Exchange Domain Servers” group manually. Reboot SBS 2011 to complete the process.

Error: Trying to login to Outlook Web Access results in IIS server error 500
Solution: Ensure that the Microsoft Exchange Forms-Based Authentication service is started. One way to ensure this starts in the future is to modify the service to be Automatic (Delayed).

How To: Easiest way to migrate shares from SBS 2003 to SBS 2011
Ycopy (has a easy to use GUI interface)

How To: Migrating Recipient Policies and Address Lists
Get-EmailAddressPolicy | where {$_.RecipientFilterType -eq "Legacy"} | Set-EmailAddressPolicy -IncludedRecipients AllRecipients
Set-AddressList "All Users" -IncludedRecipients MailboxUsers
Set-AddressList "All Groups" -IncludedRecipients Mailgroups
Set-AddressList "All Contacts" -IncludedRecipients MailContacts
Set-AddressList "Public Folders" -RecipientFilter {RecipientType -eq "PublicFolder"}
Set-GlobalAddressList "Default Global Address List" -RecipientFilter {(Alias -ne $null -and (ObjectClass -eq 'user' -or ObjectClass -eq 'contact' -or ObjectClass -eq 'msExchSystemMailbox' -or ObjectClass -eq 'msExchDynamicDistributionList' -or ObjectClass -eq 'group' -or ObjectClass -eq 'publicFolder'))}

Outlook error: Cannot open default mail folders
Option 1. Verify the MS Exchange RPC Client Access service is running
Option 2. Set-RpcClientAccess –Server server_name –EncryptionRequired $False

Running Barracuda Spam and Virus Firewall 300 out of Hyper-V

First of all, thanks very much to this blog: http://blog.shiraj.com/?p=49 without it, I wouldn’t have been able to get as far as I did. Anyways, now on to virtualizing a Barracuda Spam and Virus Firewall–

Things you will need:
1. Barracuda E-mail Spam Filter
2. Windows 2008 R2 Hyper-V server (VMWare probably works too… only thing I wouldn’t be sure of is how VMware portrays the mount points and what drivers it uses for legacy network adapters)
3. Acronis True Image (or similar bootable “ghosting” media)

The first step is to make an image of a Barracuda. Using the BIOS code from the aforementioned blog, login to the BIOS of the Barracuda and enable Boot from CD as the first boot option. Then connect a USB CD-ROM drive with Acronis True Image. Also connect a USB hard drive with enough space to accommodate at least 32GB worth of data.

Create the TIB image of the entire drive. Remove the USB drive when you are done and connect it to your Windows 2008 R2 Hyper-V server. Create a new virtual machine with 1 CPU, about 1GB RAM (my 300 only came with 512mb… max 2GB according to the motherboard specifications) and a legacy adapter. I also turned on Windows NT CPU support just to play it safe. Remove the SCSI controller and create a fixed 32gb VHD for the OS. Attach an ISO of Acronis True Image and boot the VM to Acronis.

I created a second VHD in the host OS and copied the TIB file into it, then mounted the VHD as a secondary IDE drive. This was the easiest way to get the VM to restore the TIB file… plus at any time I can reboot into Acronis and reimage my system.

Restore the image and reboot. You will want to follow the steps from the previously mentioned blog to gain root access. This is necessary to make the network card work. Once you have root access, modify the /etc/modules.conf file. Change the eth0 alias to use “tulip” instead of “via-rhine.” Type modprobe tulip to verify, then ifconfig to double check eth0 is now available.

This is a great way to avoid having to purchase instant replacement, and in a suitable backup environment… disaster recovery is a breeze if you backup your virtual machines for instant disaster recovery. Creating the image doesn’t void the warranty as long as you can avoid opening the case. However, if you ever experience problems… hopefully they don’t notice your hardware specs 🙂 I’m not sure how much lspci differs from appliance to virtual machine, I haven’t gotten that deep into it yet.

Just an FYI, if you ever need to manually update firmware because the web interface is broken… look for /home/emailswitch/code/firmware/current/bin/update.pl and run update.pl with the argument “firmware”

i.e. ./update.pl firmware

Add -c at the end to perform a check only.

Just about every function of the web site is a perl script… doing some cat/grep operations on the index.cgi should help you out if you are ever in a bind.

Moxy 6.0 on Windows 2008 R2 Terminal Server

I was recently tasked with the construction of a Windows 2008 R2 terminal server for a financial company running the typical Advent applications: Axys and Moxy.

Needless to say.. Axys was easy and Moxy doesn’t natively support 64-bit Windows so it was a pain in the neck. I made it work however, and this is how:

1. I did the obvious and installed the 64bit versions of all the components Moxy needs (vcredist x64 and x86, SQL client components x64, SQL Server 2005 ADOMD, ASOLEDB9, BC x64)

2. Then I created an ODBC system connection that points to the SQL server with username and password saved. Name it MOXYDSN32

3. x64 saves ODBC in the same reg key as x86… but the application is looking in the x64 key– stupid. I don’t know who’s fault that is at Microsoft, but you sir, are not my friend. Normally ODBC is saved in:
HKLM/Software/ODBC/ODBC.INI/

…but you have to export and import the MOXYDSN32 key to:
HKLM/Software/Wow6432Node/ODBC/ODBC.INI/

4. Now because the installation process won’t run at all, we have to manually run install. Luckily, when you install Moxy on a PC that DOES work it saves a log. This log basically boils down to this batch file:

@echo off
copy M:\Moxy60\msxml4.dll C:\WINDOWS\system32\msxml4.dll
copy M:\Moxy60\msxml4r.dll C:\WINDOWS\system32\msxml4r.dll
copy M:\Moxy60\winhttp5.dll C:\WINDOWS\system32\winhttp5.dll
regsvr32 C:\WINDOWS\system32\msxml4.dll
regsvr32 C:\WINDOWS\system32\winhttp5.dll
copy M:\Moxy60\sqlis3.dll “C:\Program Files\Common Files\System\OLE DB\sqlis3.dll”
copy M:\Moxy60\sqlis3r.dll “C:\Program Files\Common Files\System\OLE DB\sqlis3r.dll”
copy M:\Moxy60\sqlvdr3.dll “C:\Program Files\Common Files\System\OLE DB\sqlvdr3.dll”
copy M:\Moxy60\sqlvdr3r.dll “C:\Program Files\Common Files\System\OLE DB\sqlvdr3r.dll”
copy M:\Moxy60\sqlxml3.dll “C:\Program Files\Common Files\System\OLE DB\sqlxml3.dll”
copy M:\Moxy60\sqlxml3r.dll “C:\Program Files\Common Files\System\OLE DB\sqlxml3r.dll”
copy M:\Moxy60\xblkld3.dll “C:\Program Files\Common Files\System\OLE DB\xblkld3.dll”
copy M:\Moxy60\xblkld3r.dll “C:\Program Files\Common Files\System\OLE DB\xblkld3r.dll”
regsvr32 “C:\Program Files\Common Files\System\OLE DB\sqlvdr3.dll”
regsvr32 “C:\Program Files\Common Files\System\OLE DB\sqlxml3.dll”
regsvr32 “C:\Program Files\Common Files\System\OLE DB\xblkld3.dll”
regsvr32 M:\Moxy60\axysdata.dll
regsvr32 M:\Moxy60\mxapxexprt.dll
regsvr32 M:\Moxy60\mximprt.dll
regsvr32 M:\Moxy60\moxycsv.dll
regsvr32 M:\Moxy60\qbcontxt.dll
regsvr32 M:\Moxy60\qrybldr.dll
regsvr32 M:\Moxy60\editqitm.dll
regsvr32 M:\Moxy60\qbedit.dll
regsvr32 M:\Moxy60\mxusrdatamgr.dll
regsvr32 M:\Moxy60\mxqrytree.dll
regsvr32 M:\Moxy60\mxrulemgr.dll
regsvr32 M:\Moxy60\mxPubSubCOMWire.dll
regsvr32 M:\Moxy60\mxPubSubPSPRovider.dll
regsvr32 M:\Moxy60\mxPubSubRemoteProvider.dll
regsvr32 M:\Moxy60\mxProviderComDlg.dll

Running this as a batch file will install Moxy. M:\ is the network drive Moxy is installed to. I do not work for Moxy and this is not a supported configuration. There are some bugs that I haven’t been able to work out (random error messages that don’t affect the overall functionality).

Virtualizing your environment with Microsoft Hyper-V

After having completed 3 more virtualization projects this month, I have decided that anyone who hasn’t done so yet must be the same type of people running CRT monitors, Intel Pentium 4 processors and Windows XP.  So… let me explain the benefits of virtualization.

First of all, if you pay your own electric bill and you have more than 2 servers this will reduce your power bill. The new HP servers, in combination with Windows 2008 R2, have excellent “green” features such as the ability to shut off cores that are not in use (google: p-states). Newer processors run somewhere in the neighborhood of 65 to 80 watts. Older processors fall somewhere above 100 watts. Chalk one up for savings: You are running all of your servers on 1 or 2 servers that can run on a fraction of their cores when idle.

Second… ease of management. If you have ever worked for a company that offers managed services then you know how ridiculous it is to managed a customer with lets say… 10 different physical servers. I’m sure you just love trying to manage 10 open RDP windows. On top of that… one of those 10 physical servers locks up. Does it have iLO? If it does, did I document it? I didn’t… crap, now what! Hyper-V allows you to manage the console of each virtualized server from one server. You can shutdown, restart, pause/save state without having to RDP into the server. You can manage the consoles the way you would manage 10 open word documents (Windows 2008 R2, like Windows 7, has that nifty taskbar grouping feature).

Third… if you spend a little extra dough you should add a second server (hopefully you decided on the enterprise version of Windows Server) and implement a Hyper-V cluster. You can have failover and the ability to avoid downtime even when its time to do all those pesky maintenance tasks. Live migration is pretty awesome, I just wish that when a Hyper-V node crashed, that the server wouldn’t reboot unexpectedly. They should really figure that one out… anyways… FAILOVER AND LESS DOWNTIME.

Lastly, and least important of all… you get to put all your old hardware on eBay… clean out that rack and have it look presentable again. Cosmetic, I know… but any IT guy can appreciate a clean, clutter-free rack space.

Something new to me that I have been playing around with is Microsoft’s Windows Deployment Services in R2… its benefits really stand out in a virtual environment. Deploying new servers, or prepping virtual servers for customers has never been easier.

If you want consulting to see if you can benefit from virtualization, or perhaps you already know the benefits and you need a company with several years of virtualization experience over a wide variety of platforms (yea, yea… VMWare can do it too), head on over to www.dcicorporation.com and drop us a line.