This is probably irrelevant to 99% of the population, but on the off chance that anyone else out there is trying to get their Zune to do wireless (wifi) sync with their Windows 2003 machine, this post will help you do just that.
Step 1 – Enable UPnP on Windows Server 2003
First thing that we need is to enable UPnP services on Windows Server 2003 since one of the Zune services depends on it. Fortunately, Alan Robinson has written a guide on doing just that. It’s fairly straight forward – just make sure to read the instructions closely. Also see the comments for some clarification on creating the registry entries. I grabbed all the necessary DLLs from the Windows XP SP3 network install package and the XML files from an existing Windows XP install on another machine.
Step 2 – Install the Zune software
Not complicated, done in the same way as installing most XP-specific software. Just extract the files from the setup package (i.e. instead of running it) and run the package\Zune-x86.msi from the extracted files. FYI I use WinRAR and it does a great job of extracting the setup packages. If you need more specifics, there’s a comprehensive post on Rafael’s blog. Don’t delete the extracted files just yet, you’ll need them in the next step.
Step 3 – Install the Zune Bus Enumerator driver and service
Okay here’s where it gets a bit tricky. For whatever reason, the drivers for the “Zune Bus Enumerator” device and service do not get installed during the course of the Zune software installation in step 2. So, you’ll have to do it manually.
To get at the driver files, you’ll have to extract that Zune-x86.msi file that you used to install the Zune software in step 2. For that you’ll need a program capable of extracting MSI files. I’m sure there are several out there, but Universal Extractor is the best in my opinion – just right-click the .msi file and choose “UniExtract to SubDir”.
Among the files extracted from the Zune-x86.msi package should be? the folder Zune\Drivers\ZuneBusEnum. The INF in there contains the driver definitions we need to install. To install this hardware, you need to use Control Panel > Add Hardware. The wizard will do a search for new hardware and should find nothing (if it does find something, you’ll have to install whatever it finds and re-run it). When prompted if you have already connected the hardware, choose the “Yes, I have already connected the hardware” option. Next, select the “Add new hardware device” option. Choose the “manual selection (Advanced)” option, then “Show all devices”, then finally you can click the “Have Disk…” button. Browse to that ZuneBusEnum folder that you just extracted and choose the Zumbus.inf file.
In the hardware list, you’ll see 2 devices: Zune Bus Root Bus Enumerator and Zune Bus Enumerator. You are going to install the Zune Bus Root Bus Enumerator ONLY for now. After you’ve installed the device, you should probably reboot.
OK, almost done. You’ll now need to install the Zune Bus Enumerator service. In order to do that, you’ll need a program that can install Windows services. The easiest way is to get a hold of the Srvinstw.exe tool from the Windows 2000 Server Resource Kit. For conveneince you can grab it here (while it lasts): srvinstw.exe.
First, copy the service executable, ZuneBusEnum.exe, to the C:\Windows\System32 directory. You’ll find ZuneBusEnum.exe in the directory where you extracted the Zune-x86.msi package to. Now run srvinstw.exe and choose to install a service on the Local Machine. For the service name, enter “Zune Bus Enumerator Service”. On the next step, browse to C:\Windows\System32 and choose the ZuneBusEnum.exe as the executable. Next, leave “Service is it’s own process” selected. Next, leave “System Account” selected and “Allow service to interact with desktop” unchecked. Finally, leave the startup type as “Automatic”.
Now that the service is installed, go to Control Panel > Administrative Tools > Services and start the newly created Zune Bus Enumerator Service. As soon as you do that, you should get a prompt to install the Zune Bus Enumerator device. Remember when you installed the “root bus enumerator”? Well the driver for this device is in that same INF. So use the advanced option, and specify that Zune\Drivers\ZuneBusEnum folder that you extracted from the Zune-x86.msi package as the search location for the driver. Windows should find it right away and install the driver.
That’s it for installation – finally! Now make sure that all of the necessary services are running. Check that ALL of these are started, and you’ll probably want to double check that their startup types are all “Automatic”:
- SSDP Discovery Service
- Universal Plug and Play Device Host
- Zune Bus Enumerator Service
- Zune Network Sharing Service
Now, when you first try to do a wireless sync you should get an Add Hardware prompt for a Zune wireless device, or something like that. Just choose the automatic installation option and it should be installed without further action required on your part. With any kind of luck the Zune software will open shortly and you’ll be on your way!
Step 4 – Something’s not working!
Okay, if for some reason something went wrong along the way and something isn’t working properly – a service not starting, etc. – then you may be missing some required files. I haven’t confirmed if these are necessary so if you discover anything on the topic let me know in the comments.
What you need to do is use the handy Zune Device Sync Diagnostic Tool to establish what files are missing. Go to the “Report” tab, and check under the “Files” section for any files that are labeled as missing. Chances are the file you are missing is wlanapi.dll. This file is only included with XP, so you’ll need to grab it from there somehow. Either do so from an existing XP install, or grab it from the XP SP3 network install package (in case you’ve forgotten, you can do so by extracting the SP3 exe and running “expand -r wlanapi.dl_” from the command line in the appropriate directory). Copy that wlanapi.dll file to C:\Windows\System32 and you should be golden.
Enjoy the full Zune experience on Window Server 2003!