Windows Media Connect can’t see my DMR, Part II

You’re sitting there at your PC next to the open box for your Digital Media Receiver (DMR) and you can’t authorize your DMR because it doesn’t show up in WMC. We had a little lesson on the theory of how SSDP discovery works with WMC, but how do you track down the problem?  Answer: Divide and conquer. 

If you’ve been reading all of the posts in order, then we’ve already made progress.  For example, if you’ve got internet connectivity from the DMR and from the PC then we can eliminate problems with the physical connection (like bad cables). 

The next step I recommend is to remove the router from the equation.  With the Xbox 360 that is easy, just plug the PC directly to the Xbox 360 using any Ethernet cable.  For other DMR’s it isn’t so easy.  For other DMRs I recommend a crossover cable.  You could also use a hub, but most hubs these days are actually switches and may have the same problems with multicast packets that routers do. At any rate, directly connect the PC and the DMR with a wired Ethernet connection.  The PC will complain a bit and claim that the network connection may have limited functionality, but don’t worry about that.  Once you get them hooked up, wait a few minutes for each of the peers on the network to assign an Auto IP address and then open the WMC UI again and see if the device shows up. If it does, then the problem is your router. If that doesn’t work you can’t say anything about the router.  But, you should keep troubleshooting in this configuration and once you get it working, add the router back in.

After removing the router, the next step I like to do is to run a little script to see if the SSDP service is seeing the DMR.  Just copy and paste the following vbscript into notepad and save it as “enumroot.wsf”.  Save it to an easy to remember location.  Then browse to that location in explorer and double click the file.  It won’t do anything for up to 20 seconds and then it will display a list of all the UPnP Devices that the SSDP service can find.  If your DMR is in this list, then the problem is with WMC. If your DMR is not in the list, then the problem is most likely with a firewall.  We’ll dive into those tomorrow. In the mean time, here’s the script.

Of course, to keep the lawers happy I should also let  you know that Use of included script samples are subject to the terms specified at https://www.microsoft.com/info/cpyright.htm

<package>
<job id="EnumRoot">
<runtime>
<description>This script enumerates all UPnP Root Devices</description>
<named
name = "O"
helpstring = "File to write output results to."
type = "string"
required = "false"
/>
<example>Example: EnumRoot /O:"Devices.txt"</example>
</runtime>
<object id="DeviceFinder" progid="UPnP.UPnPDeviceFinder" />
<script language="VBScript">
OPTION EXPLICIT
If WScript.Arguments.Count > 1 Then
WScript.Arguments.ShowUsage
WScript.Quit
End If

Main

            Sub Main
Dim DeviceType
Dim Devices
Dim Device

                DeviceType = "upnp:rootdevice"
Set Devices = DeviceFinder.FindByType(DeviceType,0)

                Dim strOutput

                strOutput = "Found " & Devices.Count & " Devices" & vbCrLf
strOutput = strOutput & "====================================" & vbCrLf

                For Each Device in Devices
strOutput = strOutput & " " & Device.FriendlyName & vbCrLf
strOutput = strOutput & " " & Device.Type & vbCrLf
strOutput = strOutput & " " & Device.UniqueDeviceName & vbCrLf
Next

                If Wscript.Arguments.Named.Exists("O") Then
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

                    Dim file
set file = fso.CreateTextFile(Wscript.Arguments.Named.Item("O"), True, True)

file.Write(strOutput)
file.Close
Else
WScript.Echo strOutput
End If
End Sub
</script>
</job>
</package>