I know it's been a while... I hope this is still helpful to you. I am converting a ton of domains and this issue is really irritating. So today, I hunkered down and put some brain cells on fixing it.
The main issue is that the conversion utility assumes that the "FullName" key that it grabs from the registry will be in a string format. Apparently, this is not always true. I don't know if it's with newer versions of IMail or what, but somewhere along the line, they started using binary keys to represent "FullName," so I had to tweak the code to check the type returned and convert a binary value to a string.
Here's the code that I added to Utility.cs around line 1173, if anyone is interested (or if someone wants to add it to the unofficially "official" distribution):
// Read FullName value into an object
object objFullName = userKey.GetValue("FullName", "");
// Check to see if the value is a string
if (objFullName.GetType().ToString() == "System.String")
{
// If it is, call SetFirstAndLastNames
mb.SetFirstAndLastNames(objFullName.ToString());
}
else
{
// Otherwise, it's a binary value, and we have to cast it to a byte array and convert it to a string
byte[ bFullName = (byte[)userKey.GetValue("FullName", "");
// This part trims off the last byte, which is always "00" for some reason
byte[ bFullName2 = new byte[bFullName.Length - 1];
for (int i = 0; i < bFullName.Length - 1; i++)
{
bFullName2
= bFullName
;
}
mb.SetFirstAndLastNames(System.Text.Encoding.ASCII.GetString(bFullName2));
}
Here's the link to the .dll file (zipped up). Just unzip it and overwrite the existing MailDomainConversionUtilities.dll file, and it should work.
http://antidumb.com/dump/MailDomainConversionUtilities.dll.zip
Note: This was a quick and dirty hack. It seems to work just fine, but don't hold me liable if it breaks something 