Sunday, July 26, 2009

Microsoft Device Emulator - Testing Active Sync (Outlook Mobile Access)

If you want to test and verify that Active Sync is functioning correctly for end users and you dont have a windows mobile device Microsoft provides a product called Microsoft Device Emulator. Microsoft's indended purpose behind this was to provide software developers an environment in which they can create applications to run on windows mobile and test the applications without actually having to have a windows mobile device on them. This is why Microsoft Device Emulator also comes with Visual Studio. However it is also very handy for us system engineers its great for testing connectivity to a server.

As of this writing the latest version of Microsoft Device Emulator is version 3. You can get both the x86 and x64 versions from here:

Once you have installed the Device Emulator you then need to download the ROM for the appropriate version of windows mobile device.

To download the ROM for windows mobile device version 5 go to following website scroll down and download the efp.msi file.

To download the ROM for windows mobile device version 6.1.4 go to here:

Below I will be showing you what it looks like inside the emulator. I will be using windows mobile version 5 just because its only 57 MB as apposed to version 6.1.4 which 320.8 MB just because I don't want to wait for the download to complete.

You will notice that initially your internet wont work and you will get the following error. Yes I know, google is in the background - this is because I went and broke it again to show you what happens and it happened to have it cached.

To fix this, go to Start then Settings.

Then click the connections tab, then network cards.

Change it to "The Internet" instead of Work. Then click OK. The virtual machine will simply get an IP address from your DHCP server.

Your internet should work now. If you are still unable to get onto the internet you may need to download the Virtual Machine Network Driver. This is the same driver that comes with Virtual PC - which I also have installed on this computer. I know you needed this for Microsoft Device Emulator v1.0 however v3.0 may already come with it. If you are having issues download it from here:

It is very important you have internet connectivity before you go ahead and use it to test your active sync setup on the exchange server. Also, make sure you perform the testing outside of your corporate network as windows mobile devices are made to be carried around everywhere (they do not VPN in). So do this from another internet connection, from home, from another client location or using something like a 3G card for conveniance.

Additionally you might want to copy files such as certificates and the certificate import tool if you are dealing with a company that does not want to go purchase a trusted certificate from a certificate provider. There are two ways to copy files to windows mobile devices that are running in an emulator. The first way is install the active sync client to the workstation itself. The second and my prefered method is use microsoft device emulator to point a share to an expantion card in the device itself. Simply click file then click Configure. Create a share on your PC then point it at that share.

You can see that whatever files are in that share now appear on the windows mobile device. If you want you can run files and programs directly of your host machine. Alternatively you can still copy files to the virtual mobile device itself if you wish.

Lastly I would like to let you know about a little handy app that has become very popular called P12imprt that lets you import certificates that are in the p12 or pfx format. You can download it from here:

Copy the exe to \Windows\Start Menu\Programs that way it will appear with all your applications on the main apps screen like so in the below screenshot:

Note that this tool is only needed for p12 and pfx certificates. Windows mobile device can import a .cer certificate format by just clicking on the .cer file in the windows mobile device interface.