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 http://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>


 

Comments (0)

Skip to main content