首次引入这个功能的是WinMe(默认不安装,需要安装的话,在Windows组件的【通讯】里面),安装他后,WinMe就可以发现你的路由器、光猫之类的设备了。但直到XP SP2/Vista才把他进一步发扬光大,因为WMP11的媒体共享和DLNA需要这个功能的支持。
然鹅,Srv03是没有这个功能的,这意味着WMP11的媒体共享没法用。。。
我因为这个苦恼了2周,直到刚才无意间在msfn上发现了这功能需要的inf。
测试后发现,跟安装系统还原方法一模一样!
upnp需要的inf有三个,netbeac(Internet 网关设备发现和控制客户端)、netupnp、netupnph(UPnP 用户界面),但03只有第一个inf,后两个是没有的,而且缺少其他相关文件。
从XP里提取后两个inf放到任意目录下,在03里右键安装(需要XP安装盘)。
这样就装好了。打开服务可以看到ssdp和upnp了(【显示名称】分别是SSDP Discovery Service和Universal Plug and Play Device Host)。
这是两个关键的服务,后者依赖前者,WMP11的媒体共享依赖他俩。
把他俩设为自动,但不要启动,因为此时服务控制管理器还不允许他俩启动。
最后一步就是让服务控制管理器允许他俩启动。注册表位置是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost。
在属性里可以看到他俩的【可执行文件路径】都是svchost -k LocalService,【服务名称】分别是SSDPSRV和upnphost。
打开上述注册表位置,在LocalService的数据里把他俩的【服务名称】加进去(注意不要把【服务名称】和【显示名称】搞混了)
重启方可生效。重启后,这两个服务可以运行了,WMP11的网络共享服务(服务名称:WMPNetworkSvc,显示名称:Windows Media Player Network Sharing Service)也可以运行了。再在WMP11中启用媒体共享,ok,顺利完成
为了达到与XP一样的效果,还需要进行以下补充操作:
- 把后两个inf放到%windir%\inf下
- 打开%windir%\inf\netoc.inf,在[Optional Components]下添加这三个inf对应的【组件名称】:
BEACON
UPnP
这样在Windows组件的【网络服务】下就可以看到这两个组件了。
当然,因为netbeac.inf里面只涉及了一处注册表更改,所以想手动安装【Internet 网关设备发现和控制客户端】的话,也可以直接在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\Connections右侧的ClassManagers的数据里加一行{BA126AE0-2166-11D1-B1D0-00805FC1270E}