让XP 3389支持多人登陆的方法
第一步:首先是在Windows XP上安装SP2正式版,按照常规方式安装即可,这里不再赘述。 <br /> <br />第二步:准备一份版本较早的SP2终端服务器软件(据说从Build 2082开始该功能就被禁止了,所以最好使用之前版本),中文SP2测试版较难找到,我用的是英文版Build 2055,运行之后没有发现任何问题。你可以从琼殿技术社区下载Build 2055的终端服务器执行文件TermSrv.DLL。从这个链接下载来的是一个扩展名为.DL_的文件,你可以把它的扩展名改成ZIP文件,然后用WinRAR解开它。 <br /> <br /> 第三步:接下来,以安全模式启动Windows XP,如果有多个操作系统,可以启动另一个能访问Windows XP系统分区的系统(除非安装了第三方工具软件,否则Windows 98不能访问NTFS分区,因此Windows 98可能没用)。然后,把Windows XP里面SP2正式版的所有TermSrv.DLL备份一下,在所有TermSrv.DLL文件出现的位置,用Build 2055版本的TermSrv.DLL覆盖。通常,TermSrv.DLL至少出现在二个位置,分别是:\Windows\system32,\Windows\system32\dllcache。凡是原来有TermSrv.DLL的地方,就用Build 2055版本的TermSrv.DLL覆盖。 <br /> <br /> 第四步:以正常模式启动Windows XP,如果系统的文件保护功能提示说TermSrv.DLL文件已被修改,并询问是否要复原,选择否。 <br /> <br /> 第五步:最后还要修改一下注册表,增加终端服务器的多用户许可。鉴于修改注册表比较麻烦而且容易出错,你可以用下面的批命令修改注册表: <br /> <br /> @echo off <br /> setlocal <br /> set regkey="HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Licensing Core" <br /> reg add %regkey% /v EnableConcurrentSessions /T REG_DWORD /D 1 /f <br /> endlocal <br /> <br /> 将上述内容保存为一个批命令文件,如AA.BAT,双击执行一下就可以了。 <br /> <br /> 我不推荐这种做法 ,太烦锁了,而且还要让系统重起过。我们可以写一个批处理文件使系统不用重起就实现XP多用户登陆,首先我们先来了解一个对注册表操作的命令参数: <br /> <br /> REG ADD KeyName <br /> <br /> KeyName [\\Machine\]FullKey <br /> Machine 远程机器名 - 忽略默认到当前机器。远程机器上 <br /> 只有 HKLM 和 HKU。 <br /> FullKey ROOTKEY\SubKey <br /> ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ] <br /> SubKey 所选 ROOTKEY 下注册表项的完整名。 <br /> <br /> /v 所选项之下要添加的值名。 <br /> <br /> /ve 为注册表项添加空白值名(默认)。 <br /> <br /> /t RegKey 数据类型 <br /> [ REG_SZ | REG_MULTI_SZ | REG_EXPAND_SZ | <br /> REG_DWORD | REG_BINARY | REG_NONE ] <br /> 如果忽略,则采用 REG_SZ。 <br /> <br /> /s 指定一个在 REG_MULTI_SZ 数据字符串中用作分隔符的字符 <br /> 如果忽略,则将 "\0" 用作分隔符。 <br /> <br /> /d 要分配给添加的注册表 ValueName 的数据。 <br /> <br /> /f 不用提示就强行覆盖现有注册表项。 <br /> <br /> 例如: <br /> <br /> REG ADD \\ABC\HKLM\Software\MyCo <br /> 添加远程机器 ABC 上的一个注册表项 HKLM\Software\MyCo <br /> <br /> REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead <br /> 添加一个值(名称: Data,类型: REG_BINARY,数据: fe340ead) <br /> <br /> REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail <br /> 添加一个值(名称: MRU,类型: REG_MUTLI_SZ,数据: fax\0mail\0\0) <br /> <br /> REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^% <br /> 添加一个值(名称: Path,类型: REG_EXPAND_SZ,数据: %systemroot%) <br /> 注意: 在扩充字符串中使用插入符号 ( ^ ) <br /> <br /> 为了让系统不重起,我们可以用shutdown -a 这个命令。 <br /> <strong>根据上面找来的资料,我们可以编写一个批处理,实现XP系统多用户登陆而又不用重起系统。 </strong><p>呵呵,这个也是几年前经常用的东西了,看以前的博客找到的,觉得以后可能还有用,特地找出来改了改,又到XPSP3上测试了一下,能用,现在发上来。Slyar去掉了一些隐藏的功能,因为用不着了,哈哈~~本来说做成EXE的补丁,结果出去上了个厕所打消了这个念头。。。</p>
<p>需要的到<span style="COLOR: #ff0000">下载基地</span>下载<span style="COLOR: #ff0000">slyar_3389.rar</span>,解压后一个文件夹里面有2个文件:slyartermsrv.dll、slyar3389.bat。</p>
<p>恩,还是CMD下吧,先用<span style="COLOR: #ff0000">tasklist /svc</span>命令得到<span style="COLOR: #ff0000">TermService</span>的PID,然后编辑一下文件夹里的<span style="COLOR: #ff0000">slyar3389.bat</span>,把<span style="COLOR: #ff0000">"pid"</span>里的PID改成你得到的数字,保存退出。</p>
<p>行了,剩下的工作就是双击一下<span style="COLOR: #ff0000">slyar3389.bat</span>,完成了,mstsc连接验证一下就OK。</p>
<p>是不是写得有点少?那多写点。。。</p>
<p>原理:其实很简单了,2082以后的termsrv.dll不支持多人终端,我用2055的termsrv.dll覆盖原来的termsrv.dll就可以了。</p>
<p>那个bat也没啥,贴出来看看。<br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode3"> <br />@net stop sharedaccess <br />@ntsd -c q -p "pid" <br />@reg add HKLM\SOFTWARE\Microsoft\Windows" "NT\CurrentVersion\Winlogon /v KeepRASConnections /t REG_SZ /d 1 /f <br />@reg add HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f <br />@reg add HKLM\SYSTEM\CurrentControlSet\control\terminal" "server\Licensing" "Core /v EnableConcurrentSessions /t REG_DWORD /d 00000001 /f <br />@reg add HKLM\SYSTEM\CurrentControlSet\Services\TermService\Parameters /v serviceDll /t REG_EXPAND_SZ /d %SystemRoot%\system32\slyartermsrv.dll /f <br />@copy slyartermsrv.dll c:\windows\system32\dllcache\slyartermsrv.dll <br />@attrib +h +s +r c:\windows\system32\dllcache\slyartermsrv.dll <br />@copy slyartermsrv.dll c:\windows\system32\slyartermsrv.dll <br />@attrib +h +s +r c:\windows\system32\slyartermsrv.dll <br />@shutdown -a <br />@net start termservice <br /></div><br />稍微解释几个命令好了。 <br /><br />net stop sharedaccess <br />禁用XP的防火墙。 <br /><br />shutdown -a <br />因为svchost被干掉,所以会导致重启,这个命令可以终止重启。 <br /><br />ntsd -c q -p "pid" <br />系统debug级的ntsd,用来干掉进程特别爽。 </p> 谢谢LZ分享这个方法!
记得以前在学校机房经常用这个方法来实现多人同时远程登录XP系统,确实很实用
不过现在都用Win7/10甚至Server系统了,XP已经很少见了
支持一下,写的很详细!
这个批处理方法确实比之前的简单多了,不用进安全模式替换文件,改个PID就能用,赞一个!
唯一要注意的就是杀毒软件可能会报毒,需要先关掉
顶上去让更多需要的人看到
頁:
[1]