给windows server 2003加载Upnp模块

server为了稳定期间,并没有加载upnp模块,而且在其系统文件里并没有upnp的相关文件,这给需要upnp的软件带来很大的麻烦,虽然端口映射是个好办法,但大规模的网络环境中,一个一个去端口映射似乎是件很麻烦的事,由于我在网上并没有发现相关的文章。所以只能动手研究。。万幸的是,总算研究成功了。

注:因为刚给server加载上模块,并没有烤机测试,所以未能发现相关兼容问题。

思想:upnp是几个文件组成的服务,既然server没有这几个文件,那么我们通过移植加载即可使server拥有upnp功能。

实验环境:
WindowsServer2003,DatacenterMCCEditionSP1
WindowsXPMediaCenterEditionSP2

以上系统都安装了最完全的updata。

我们要做的就是把xp的upnp文件加载到server里注册即可。

首先我们要剥离xp内的upnp文件。通过观察,xp的upnp支持需要以下几个文件

netupnp.inf
netupnph.inf
dpnhupnp.dll
ssdpapi.dll
ssdpsrv.dll
udhisapi.dll
upnp.dll
upnphost.dll
upnpui.dll
upnpcont.exe

注:以上文件是我通过对比xp与server的windows组件程序得来的。

步骤如下:

1。注册SSDPSRV、upnphost服务

SSDPDiscoveryService:启动您家庭网络上的UPnP设备的发现。
UniversalPlugandPlayDeviceHost:为主持通用即插即用设备提供支持。

右键点击剥离出来的2个inf文件,点击“安装”,此时需要剥离出来的dll文件与exe文件。此时,服务已经注册好,可以在“服务管理器”看到。
注册启动服务需要的用户,
打开注册表。查找以下键值
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\SvcHost
在右边的列表中找到LocalService,双击在其后面添加
SSDPSRV
upnphost

2。安装windows组件。

打开系统盘的system/inf文件夹,找到netoc.inf,打开
在[OptionalComponents]添加以下字段。
UPNP
BEACON
Iprip
保存退出。
打开windows组件,打开网络服务。
钩选:internet网关设备发现与用户upnp,其中需要剥离的文件。

到现在所有的文件已经加载完,重启。

重启后,启动以上2个服务,设置成自动。

打开网路邻居,已经可以看到发现了upnp设备。

进过测试,pplive,BT都可以顺利的发现upnp设备,只有骡子不能发现upnp设备。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注