複製鏈接
請複製以下鏈接發送給好友

PnP

鎖定
PnP,全稱Plug-and-Play,譯文為即插即用。
PnP的作用是自動配置低層計算機中的板卡和其他設備,然後告訴對應設備都做了什麼。PnP的任務是把物理設備和軟件設備驅動程序相配合,並操作設備,在每個設備和它的驅動程序之間建立通信信道。然後,PnP分配下列資源給設備和硬件:I/O地址IRQDMA通道和內存段。
中文名
即插即用
外文名
Plug-and-Play
簡    稱
PnP
提出者
Microsoft
作    用
是自動配置(底層)計算機中

PnP定義

PNP是由Microsoft提出的,意思是系統自動偵測周邊設備和板卡並自動安裝設備驅動程序,做到插上就能用,無須人工干預,是Windows自帶的一項技術。所謂即插即用是指將符合PNP標準的PC插卡等外圍設備安裝到電腦時,操作系統自動設定系統結構的技術。當用户安裝新的硬件時,不必再設置任何跳線器開關,也不必用軟件配置中斷請求(IRQ)、內存地址直接存儲器存取(DMA)通道,Windows會嚮應用程序通知硬件設備的新變化,並會自動協調IRQ、內存地址和DMA通道之間的衝突。

PnP解析

在PnP技術出現之前,中斷和I/O端口的分配是由人手工進行的,例如想要這塊聲卡佔用中斷5,就需要找一個小跳線在卡上標着中斷5的針腳上一插。這樣的操作需要用户瞭解中斷和I/O端口的知識,並且能夠自己分配中斷地址而不發生衝突,對普通用户提出這樣的要求是不切實際的。
PnP技術就是用來解決這個問題的,PnP技術將自動找到一個不衝突的中斷和I/O地址分配給外部設備,而完全不需要人工干預。在中斷資源非常緊張的今天,即使是PnP技術,也不一定能找到一個合適的中斷分配給您剛剛插入的設備,所以儘量釋放那些沒有必要的中斷,對PnP正常工作也是很有幫助的。
有些PnP衝突來源於主板的設計。許多主板上有一個AGP插槽、五個PCI插槽和兩個ISA插槽,而其中的AGP插槽一般是和一個PCI插槽共用一箇中斷的,也就是這兩個槽的中斷可以是合理的任何值,但必須是相同的,當您在AGP槽上插了顯示卡,如果在同中斷的PCI槽上插了一塊聲卡的話,就一定會產生中斷衝突。對大多數五個PCI插槽的主板而言,第一和第五插槽是和AGP槽共用中斷的,第四插槽是和USB共用中斷的,雖然可以在BIOS設置中強制給每個PCI槽位分配中斷,但這對於大多數用户來説都是一個比較困難的事情,而且由於第二和第三插槽沒有和其它設備共用中斷,所以,在大多數情況下,顯卡插在AGP槽上,聲卡和其它PCI插卡,比如網卡,應該插在第二和第三PCI插槽上,也就是從AGP插槽向ISA插槽方向數的第二和第三PCI插槽上,這樣一般都不用改變BIOS中的PnP設置,就能讓這些卡正常工作。 [1] 

PnP由來

對於許多PC用户而言,如果需要為你的PC增加一些新的功能,比如欣賞CD唱盤、看VCD影碟、收發傳真等等,那麼就得為你的PC機增加一些新的設備,如聲卡、CD-ROM、MPEG硬件解壓卡、FAX/MODEM傳真卡等一系列新設備,通常而言,安裝新設備的過程為:
1.按照所購買設備的説明來設置開關和跳線
2.正確地將新設備按規定的要求插入主板擴展槽中。
3.安裝隨新設備所配的驅動程序
4.重新引導系統。
然後,你很有可能得花費大量的時間和精力來處理安裝過程中所出現的種種問題。比如手工改變設備的開關或跳線,跟蹤CONFIG。SYS文件以解決內部駐留程序的衝突等等。原因在於一台PC機至少有一個或者多個總線設備(BUSDEVICE),而多個總線設備則有可能共享相同的系統總線(SYSTEMBUS),於是這就不可避免地產生硬件資源上的衝突。輕者是新安裝的設備無法使用或系統無法啓動,嚴重的話就會導致系統的崩潰。怎樣去解決這個問題?人們希望系統應該能提供對底層硬件資源包括IRQ(中斷請求)、I/O(輸入/輸出)端口、DMA(直接內存存取)通道以及內容等的智能管理能力,免除用户因安裝新的硬件設備而帶來的煩惱。
隨着微軟推出WINDOWS95/98,它也宣傳了WINDOWS95/98為用户提供的底層硬件資源的智能管理能力,即WINDOWS95/98具有即插即用(PNP:PlugandPlay)的功能,由此即插即用才為人們廣泛重視。
即插即用這個概念很久以前就已被提出,它的標準則始於幾種洞庭湖的解決PC硬件配置問題的方案,其中包括IBM的微通道總線以及COMPAQ公司在EISA(擴展標準工業系統總線)上的不懈努力。
MICROSOFT制訂即插即用的規範的時間從1991年才開始,促使MICROSOFT發展即插即用是APPLE公司在其廣告中宣稱MICROSOFTWINDOWS系統列在易於配置和使用方面遠遠比不上APPLE公司的MACOS操作系統,APPLE公司的MACINTOSH微機上修改系統的設置簡單到你只需插入或拔出擴展卡,機器就可以在其SYSTEM系列操作系統下很好地工作,從而省去了再設置開關、跳線或分配系統資源的煩惱,可以説是現階段下完全的即插即用。傳説固然歸於傳説,然而歸根結底的原因還是因為技術的進步使得MICROSOFT欲壟斷個人PC機的操作系統。
而欲使系統在易於使用上有一個飛躍,那麼它就必須解決多個總線設備共享系統總線時所帶來的系統底層資源的分配和再分配問題。MICROSFOT同INTEL和COMPAQ的結盟促使其在1993年以後相繼頌了即插即用的規範,包括其他總線類型如ISA、EISA、PCMCIA、PCI、VESA以及SCSI等,但是就現階段而言,完全意義上的即插即用恐怕還需要一段時間才能夠進一步完善。
MICROSFOT在WINDOWSFORWORKGROUPS和WINDOWSNT上就已開始嘗試一些設備檢測和配置方面的試驗。在WINDOWSFORWORKGROUPS中,操作系統可自動檢測出視頻適配卡、鼠標、鍵盤及網絡適配卡等的類型。WINDOWSNT則更進一步,它可以檢測出SCSI設備及其他一些硬件,到了WINDOWS95/98,則幾乎可以實現全自動的安裝和系統的動態重配置。
儘管WINDOWS95不可能對所有舊設備都能正確地識別,甚至有時也會求助於用户,但就即插即用本身而言,這已經是一個真正的飛躍了。當前的WIDNOWS98/2000在PNP方面又得到進一步的發展。

PnP評價

即插即用是一個用於自動處理PC機硬件設備安裝的工業標準,由Intel和Microsoft聯合制定。通常,當您需要安裝新的硬件時,往往要考慮到該設備所使用的DMA和IRQ資源,以避免設備之間因競爭而出現衝突,甚至導致機器無法正常工作。
有了“即插即用”(PnP),它使得硬件設備的安裝大大簡化,您無須再做跳線,也不必使用軟件配置程序,但是您所安裝的新硬件必須是符合PnP規範的,否則是行不通的。
即插即用代表着當前接口技術的主要進展。但它不是一個全新的概念。它是MCA與EISA接口設計的關鍵特性,但是MCA和EISA有限的吸引力使得它沒有成為行業標準。因此,主流PC用户仍然為I/O地址,DMA通道以及IRQ的設置擔憂。早期基於PCI的系統也使用了一種PnP配置的方式,但由於沒有提供PCI插卡和ISA插卡衝突的管理措施,許多用户仍然為一些配置問題而煩惱。但當前即插即用規範可用於基於ISA、PCI、SCSI、IDE和PCMCIA的系統中,所有新計算機的購買者不用再擔心硬件設置了。

PnP部件

為了使即插即用正常工作,需要以下的部件:
·即插即用硬件。
·即插即用BIOS。
·即插即用操作系統。
這些部件都要求兼容即插即用,意味着它們要服從即插即用規範。
1.硬件部件
硬件部件包括計算機系統與適配卡。這並不意味着在即插即用系統中不能使用較老的ISA適配卡。可以使用這些插卡,實際上,即插即用BIOS自動圍繞存在的遺留部件重新指定即插即用兼容插卡的設置。另外,許多後期的ISA插卡也可以轉換到即插即用模式下。即插即用適配卡同系統BIOS和操作系統通信來傳播關於所需系統資源的信息。然後,BIOS和操作系統解決衝突(如果有的話)並通知適配卡應當使用哪些特定資源。適配卡便改變其自身的配置以使用特定的資源。
2.BIOS部件
BIOS部件意味着多數較老PC機的使用者需要升級他們的BIOS,或者購買新的具有PnP BIOS的機器。BIOS要成為兼容的,必須支持13個附加的系統功能調用,它們可以被即插即用系統的操作系統部件使用。PnP BIOS規範由Compaq、Intel和Phoenix Technologies共同發展。
BIOS的PnP特性通過一個擴展的POST實現。BIOS負責鑑別、隔離和配置PnP適配卡。BIOS通過以下的步驟實現這些任務:
1.禁用所有主板和適配卡上配置的設備。
2.鑑別所有PnP PCI或ISA設備。
3.為端口、IRQ、DMA及存儲器生成一個最初的資源分配圖。
4.啓用I/O設備
5.掃描ISA設備的ROM。
6.配置最初的載人程序設備,用於後來啓動系統。
7.通過通知分配了哪些資源來啓用可配置的設備。
8.開始載入啓動程序。
9.將控制傳遞給操作系統。
3.操作系統部件
操作系統部件可以通過多數新系統實現,如Windows 9x/Me/2000/XP。有時,系統供應商為其指定的硬件提供了對操作系統的擴展,如在筆記本系統中更是如此。如果系統需要,要保證這些擴展已經安裝在系統中。
通知用户不能由BIOS解決的衝突是操作系統的責任。依靠使用操作系統的經驗,用户可以手工設置衝突的插卡,或者關閉系統並在插卡上設置開關。當系統重啓後,系統檢測保持的(或新的)衝突,這些都提示用户要注意。通過這樣的過程,可以解決所有的系統衝突。

PnP技術問題

查看系統是否已經偵測到網卡
進入系統屬性,點選設備管理器,查看其中的未知設備表中是否有"PCI Ethernet Controler",若沒有則説WIN98未檢測到你的網卡,網卡可能未正確安裝,或已經損壞,其中的未知設備為正常情況下顯未的尚未驅動的網卡。
保存現有的網卡的註冊表項
單擊“開始”,選取“運行”,輸入“regedit”,進入註冊表編輯器,找到如下主鍵
[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10]
將其導出,存為文件PCI8139.REG
替換網卡驅動程序
找到以前的版本的WIN95A的RTL8139網卡的驅動,將其中的RTL8139.SYS複製到網卡盤上的WIN98目錄,覆蓋現有NDIS5的RTL8139的網卡驅動程序。
安裝替換後的網卡驅動程序
按正常的方式安裝已經替換的網卡驅動程序,仍使用網卡盤上的WIN98目錄,安裝好再添加其它的網絡協議如IPX,但建議不要安裝那些根本用不的上的網絡協議,如NETBETUI,MS DLC,因為如非必要這些協議是用不上,裝了反而會影響網的速度,裝好後新啓動計算機。
修改註冊表項
運行Regedit進入註冊表編輯器,找到如下方鍵
[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10]
將其導出,存為PNP8139.REG,編輯PNP8139.REG文件,將其中主鍵中的PCI、VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10和BUS_00&DEV_08&FUNC_00分別以ROOT、NET和0000替換並將PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\BUS_00&DEV_08&FUNC_00\LogConfig]
鍵值刪除,並保存,以下為修改前後的範例文件的內容
修改前的PNP8139.REG
REGEDIT4
[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10]
[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\BUS_00&DEV_08&FUNC_00]
"Capabilities"=hex:14,00,00,00
"HardwareID"="PCI\\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10,PCI\\VEN_10EC&DEV_8139&SUBSYS_813910EC,PCI\\VEN_10EC&DEV_8139&REV_10&CC_0200,PCI\\VEN_10EC&DEV_8139&CC_020000,PCI\\VEN_10EC&DEV_8139&CC_0200"
"CompatibleIDs"="PCI\\VEN_10EC&DEV_8139&REV_10,PCI\\VEN_10EC&DEV_8139,PCI\\VEN_10EC&CC_020000,PCI\\VEN_10EC&CC_0200,PCI\\VEN_10EC,PCI\\CC_020000,PCI\\CC_0200,PCI\\VEN_10EC&DEV_8139&SUBSYS_813910EC""DeviceDesc"="Realtek RTL8139(A/B/C/8130) PCI Fast Ethernet NIC"
"HWRevision"="016"
"Class"="Net"
"ConfigFlags"=hex:10,00,00,00
"ClassGUID"=""
"Driver"="Net\\0000"
"Mfg"="Realtek"
[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\BUS_00&DEV_08&FUNC_00\LogConfig]
"0000"=hex:00,04,00,00,00,30,00,00,10,00,00,00,04,00,00,00,03,00,00,00,ff,ff,\
00,00,30,00,00,00,01,00,00,00,01,00,14,00,00,00,80,d4,ff,00,80,d4,01,00,00,\
00,00,ff,ff,ff,00,01,00,00,00,00,00,00,ff,ff,ff,ff,01,00,00,00,14,00,00,00,\
24,00,00,00,02,00,00,00,01,00,0c,00,00,e8,ff,e8,00,00,ff,00,00,ff,00,01,00,\
00,ff,ff,00,00,ff,00,10,00,00,00,30,00,00,00,01,00,00,00,01,00,14,00,00,c0,\
0c,00,ff,5f,0d,00,00,00,00,00,ff,ff,ff,ff,00,a0,00,00,00,c0,0c,00,ff,5f,0d,\
00,00,00,00,00,ff,00,00,00,00,00,00,00
[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\BUS_00&DEV_08&FUNC_00\Bindings]
"NWLINK\\0000"=""
"MSTCP\\0000"=""
修改後的PNP8139.REG
REGEDIT4
[HKEY_LOCAL_MACHINE\Enum\ROOT\NET]
[HKEY_LOCAL_MACHINE\Enum\ROOT\NET\0000]
"Capabilities"=hex:14,00,00,00
"HardwareID"="PCI\\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10,PCI\\VEN_10EC&DEV_8139&SUBSYS_813910EC,PCI\\VEN_10EC&DEV_8139&REV_10&CC_0200,PCI\\VEN_10EC&DEV_8139&CC_020000,PCI\\VEN_10EC&DEV_8139&CC_0200"
"CompatibleIDs"="PCI\\VEN_10EC&DEV_8139&REV_10,PCI\\VEN_10EC&DEV_8139,PCI\\VEN_10EC&CC_020000,PCI\\VEN_10EC&CC_0200,PCI\\VEN_10EC,PCI\\CC_020000,PCI\\CC_0200,PCI\\VEN_10EC&DEV_8139&SUBSYS_813910EC"
"HWRevision"="016"
"Class"="Net"
"ConfigFlags"=hex:10,00,00,00
"ClassGUID"=""
"Driver"="Net\\0000"
"Mfg"="Realtek"
[HKEY_LOCAL_MACHINE\Enum\ROOT\NET\0000\Bindings]
"NWLINK\\0000"=""
"MSTCP\\0000"=""
導入網卡註冊項
導入PNP8139.REG文件,刪除註冊表中原有的網卡註冊項即
[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10]
同時導入PCI8139.REG文件,導入這個文件是為了讓WINDOWS啓動時不再把網卡作為一個新的PNP的設備來看待,而作為一個已有的未知設備,就不會再去尋找該設備的驅動程序,這樣,在無盤啓動時就不會因更新驅動程序而發生網絡中斷;而前面導入的PNP8139.REG文件是沒有中斷信息的,我們的目的也就是讓WINDOWS把網卡當作一種非PNP設備來驅動,下次WINDOWS再次找到相同的硬件設備,但中斷信息卻不同時,就可以將該設備作為一個非PNP設備,調用現有的驅動程序,來強行驅動該設備,在找不到新的驅動程序時,就不會更新現有的驅動程序,這樣在任何主板上的任何可用插槽上,WINDOWS都可以強行驅動這種網卡,這樣就實現了無盤WIN98對這種網卡的即插即用,在換主板或者是換插槽時就不會出現"Can't Find Krnl386.exe"之類的錯誤,而不能進入WINDOWS的GUI界面了。
清除現有的網卡的驅動信息
將註冊表中,WIN98系統目錄中所有關於RTL8139的驅動信息,並將能找到網卡驅動信息的搜索路徑清除掉重啓系統。
至此此硬盤系統已經對任何主板的任何可用的PCI插槽中的網卡進行強行驅動,並正常連接網絡。
上一節已經裝好可驅動基於本地硬盤的PNP系統下面就是要藉助於Litenet的上傳 工作,將本地文件上傳至文件服務器
1.修改AUTOEXEC.BAT文件,其內容如下
@EHCO OFF
SET WINDIR=C:\WINDOWS ;設置WINDOWS所在目錄
SET DRIVE=C: ;設置WINDOWS所在驅動器
SET NETCARD=RTSND.DOS ;設置實模下的網卡驅動程序
SET SERVER=LEITHER ;設置文件服務器的NETBIOS名稱
SET SHARE=PNP98 ;設置上傳的目標目錄,即其享的WINDOWS目錄
2.建立、導入SNAPSOT.REG文件,並複製SNASHOT,VXD文件
以下為SNAPSHOT.REG內容
REGEDIT4
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\SNAPSHOT]
"NetClean"=hex:01
"Start"=hex:00
"StaticVxD"="SNAPSHOT.VXD"
建立SNAPSOT.REG文件後即可導入註冊表中,隨後將SNAPSHOT.VXD文件複製C:\WINDOWS\SYSTEM目錄下。
3.建立Litenet.reg文件如下
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Qualystem\LiteNET PC]
"Step"="2"
"Version"="1.15"
導入Litenet.reg文件,這一步主要是為了正常使用Litenet的上傳 工具,因為QSYNCH.EXE在運行是要判斷系統的中的是否已經安裝Litenet,導入這個文件便可以騙過QSYNCH.EXE,使它不鬧彆扭。
4.複製Litenet的所用文件到WINDOWS目錄下,重新啓動系統,運行Qsynch.exe將本地文件上傳。
5.用WIN95A的驅動程序RTL8139.SYS替換用Litenet製作的軟件中的RTL8139.SYS。
如果你到這裏一直很順利,那麼恭喜你,你的客啓端的WIN98已經安裝完成,用現有的啓動包已經可以啓動真正的PNP的無盤WIN98了,你可以在無盤下安裝顯卡和聲卡的驅動程序了!

PnP解決方案

Litenet自動為用户生一個啓動軟盤,用這個軟盤,生成啓動映象,才能以PXE方式啓動無盤WIN98,因為該啓動包在每次啓動過程中,都要複製系統註冊表,並且會進行二次登錄,這樣就降低了啓動速度,在本節中將向讀者詳細介紹如何在不使 用任何Litenet的前提下,快速啓動無盤WIN98,如何使之能自動識別並安裝各種PNP硬件,以及常見問題的解決方法。
一.修改已有啓動包
刪除不必要的文件
在Litenet生成的啓動過程中,會要求插入E文的WIN98第二版的光盤,此時將會向軟盤中寫入一文件,在啓動包中,這些文件,只有Litenet的一些程序才能用到,當前不使用Litenet的情況下,這些文件也相應可去掉,這些文件為:
KEYBCOM,KEYBOARD.SYS,KEYBRD2.SYS,SETVARS.BAT,TUNING.BAT
另處一些Litenet的可執行文件亦可去掉,這些文件為:
QAUTOLOG.EXE,QUALCNX.EXE,QUALREG.EXE
增加和替換部分文件
前面去掉了一些Litenet的文件,相應地也增加一些我們需要的文件,只有一個:SETMDIR.EXE,這個文件可以無盤WIN95的啓動包中找到,再就是用WIN95A的驅動程序替換掉啓動包中現有的RTL8139.SYS文件,因為用這個文件是不能實現網卡的PNP功能的,而網卡的PNP則PNP無盤WIN98中至關重要的一環.
修改Autoexec.bat文件
將其內容修改如下
@echo off
CTTY NUL ;屏蔽所有的啓動信息
cd \winboot
SET WINDIR=C:\WINDOWS
SET SERVER=Leither ;設置文件服務器名
SET SHARE=Pnp98 ;設置共享的C:所在目錄
@md %WINDIR% > NUL
@md %WINDIR%\SYSTEM > NUL
COPY A:\WINBOOT\RTL8139.SYS %WINDIR%\SYSTEM > NUL
@CALL STARTNET.BAT ;轉到啓動網絡部分
再新建STARTNET.BAT文件如下
@echo off
set comspec=a:\command set temp=a:\winboot
SNAPSHOT /S /B:A /M:124
NET START IPX
NET LOGON ADMIN ADMIN PASS /YES /SAVEPW:NO ;以Admin份身登錄,其口令為PASS
NET USE C: \\%SERVER%\%SHARE% /Y ;強行映射C:為共享目錄,隱掉RAM盤
C:
set path=
path=%windir%;%windir%\command;%path%
set comspec=%windir%\command setmdir /m /r:c:\Windows
set temp=%windir%\temp
set tmp=%windir%\temp
cd %windir%
Win.bat
編輯修改Win.bat文件
QSetBD C:
Net use E: \\%Server%\MicroNet /y ;映射MICRONET共享目錄為E:,該目錄下含有所有的用户 ;目錄,以方便管理登錄時進行用户文件的管理
Net use F: \\%Server%\APPL /y ;常 用的應用程序的安裝目錄
NET USE G: \\%Server%\GAME /Y ;遊戲
NET USE H: \\%Server%\CAI /Y ;計算機輔助教學
Net use I: \\%Server%\Film /Y ;電影庫
Freemem
CTTY CON
%Windir%\Wincom
至此啓動包部分已經完成可以放到文件服務器的PXE的啓動包所在目錄,但當前已經可以啓動你的無盤WIN98了,你可以安裝顯卡聲卡的的驅動程序了,但如果你這是在做模板系統(裝好後可隨處克隆),建議不要安裝主板的驅程序,否則克隆不同芯片組的主板可能會出現一些意想不不到的問題。
修改最小注冊表和批文件的優化
上步做好的無盤WIN98雖然可以做一些象有盤系統一樣的事情,但只能限於一個用户使用,但你一啓動進入後,會發現剛才射映的那些盤符全都不見了,也就是剛才在WIN.BAT中映射的網絡盤在WINDOWS下全部失效,這是最小注冊表的靜態系統盤符不夠而導致的,將下列段導入最小注冊表,即可解決問題
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Network\Real Mode Net]
"transport"="*nwlink,ndishlp.sys"
"netcard"="rtsnd.dos"
"LoadRMDrivers"=hex:00,00,00,00
"preferredredir"="NWREDIR"
"Transition"=hex:01
"SetupN"=hex:01
"SetupNPath"="C:\\WINDOWS\\"
"StaticDrive"="C,D,E,F,G,H,I" ;此處可調整系統的靜態盤符,可從C調到Z
通過上述調整後系統的盤符便可你自己要多少就有多少了,但這還不能解決多用户共用WINDOWS目錄的問題,要圓滿解決此問題,這裏有兩種方法:一是使用Litenet的QUALCNX.EXE文件,使用其能夠自動對不同網卡號的計算機進行編號,在此基礎上修改相應的批處理文件,便可實現;二是手動編程序,讀出網卡的MAC地址,再根據現有的網卡數據庫來確定機器編號,從而實現多用户登錄,用這種方法,可真正實現不同用户登錄,不用進行二次登錄,方便管理,加快了啓動的速度;下面將分別介紹這兩種方法:
使用Litenet的的部分文件的方法
使用這種方法要重新編制現有的STARTNET.BAT和WIN.BAT文件,改寫後的文件如下
STARTNET.BAT
@echo off
set comspec=a:\commandcom
SET NETBUFF=124
set temp=a:\winboot
CTTY CON ;開啓屏幕顯示,以便調試
lh qualcnx ADMIN PASS >nul ;以用户名ADMIN,密碼PASS進行登錄,並生成USERNAME.BAT,;此處可手工編程實現
CTTY NUL ;關閉屏幕顯示,屏啓動信息
call %TEMP%\username.bat ;USERNAME.BAT能將變量CHN設 置為用户名
QAUTOLOG ;此處為二次登錄;手工編程可去掉
NET USE E: \\%SERVER%\%CHN% ;連接用户目錄到E:
SET UserName=%CHN% ;設置用户名變量
SET Inited=NO ;設置初始化標誌為NO
@if exist E:\WINDOWS\SYSTEM.DAT goto SKIPINIT ;判斷用户目錄下是否有SYSTEM.DAT文件,若 ;有則忽略初始化直接執行系統啓動部分
CTTY CON ;開啓屏幕顯示,以便調試
@ECHO Starting Initialize Workstation %CHN%....... ;顯示初始化信息
CTTY NUL
SET PATH=
SET PATH=%windir%;%windir%\COMMAND
MD E:\WINDOWS ;在E:建立WINDOWS目錄用於存放系統註冊
MD E:\WINDOWS\TEMP ;在E:\WINDOWS下建立TEMP目錄
set temp=E:\WINDOWS\TEMP ;將系統臨時目錄定向為E:\WINDOWS\TEMP
set tmp=E:\WINDOWS\TEMP
E:
*lh %windir%\qualreg E:\WINDOWS /R /A ;用QUALREG複製並修改系統註冊表到用户目錄,此命 ;令可用COPY命代替,但後面WIN.BAT中帶*的部分就 ;不能去掉;此處可手工編程實現
set winbootdir=%windir%
SET Inited=YES ;設置已經完成初始化標誌Inited為YES
CTTY CON ;開啓屏幕顯示功能
@Echo Workstation %CHN% Has Been Initiliazed! ;顯示完成初始信息
:SKIPINIT ;忽略初始化跳轉標號
C:
CTTY NUL
@%Windir%\Win.bat ;轉到執行C:\WINDOWS\下的WIN.BAT文件
WIN.BAT文件內容如下:
set path=
path=%windir%;%windir%\command;%windir%\system
setmdir /m /r:E:\Windows ;註冊表重定向到E:\WINDOWS下
set comspec=%windir%\commandcom ;命令解釋器重定向為C:\WINDOWS\COMMANDCOM
IF %Inited%==NO GOTO SKIPINIT ;根據初始化標誌,判斷是否跳轉
MD E:\我的文檔;在E:\建站"我的文檔"目錄,用於存放文檔
*QPATCH %Windir%\Client.reg E:\Windows\%CHN%.REG ;若在前面的STARTNET.BAT文件中用 ;了帶*的部分則此部分便可不要,後面帶*也可以不要;此處可手 ;工編程實,亦可模仿華教的笨方法,用ECHO命令
*Regedit E:\Windows\%CHN%.REG ;導入客户端配置註冊表文件
*regedit %Windir%\Policies.POL ;導入系統策略文件
:SKIPINIT ;忽略初始化跳轉標號
QSetBD %DRIVE% ;設置啓動盤符為C:,此處暫無程序代替
Net use D: \\%SERVER%\SYS/y ;映射SYS共享目錄為D:,在此目錄存放WIN98 的源文件,;和各種PNP硬件的驅動程序,以 方便 WIN98在啓動時能
;自動識別各種PNP硬件,併為之安裝驅動程序
NET USE G: \\%Server%\GAME /Y ;遊戲
NET USE H: \\%Server%\CAI /Y ;計算機輔助教學
Net use I: \\%Server%\Film /Y ;電影庫
NET USE H: \\%Server%\Music /Y ;音樂庫
Freemem ;消除內存中的A:可用QRESTALL代替
CTTY CON ;開啓屏幕顯示功能準備進入WINDOWS
%Windir%\Winom ;運行WINCOM,進行入WINDOWS;
至此,使用Litenet部分文件來達到不同用户登錄共享WINDOWS目錄無盤啓動的方法,已經介紹完畢,在使用之前還必須將那些在STARTNET.BAT和WIN.BAT中使用過的文件複製到相應的目錄中,否則系統將出現問題,或者不能啓動,或者啓動不正常。

PnP手工編程

要手工編程序實現Litenet能實現的上述功能,就必須寫出和Litenet功能相同或相似的程序出來,要用到手工編程的地方,筆者已經在上述方法已經有了註解,本書附錄中將有,要用到的各種程序的源代碼,用的是Tuobo Pascal v6.0,至於實現方法和上面大同小異,這裏就不綴述了,下面將分別列出上面要用到的一些註冊表文件的內容,這些文件在手工編程方法中是必不可少的.
以下為Client.reg文件的內容:
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Mpsoft]
[HKEY_LOCAL_MACHINE\Software\Mpsoft\Smenu]
"computernum"="{%CHN%}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Winlogon]
"AutoAdminLogon"="{%CHN%}"
"DefaultUserName"="{%CHN%}"
"DefaultPassword"="{%CHN%}"
[HKEY_LOCAL_MACHINE\Network\Logon]
"DontShowLastUser"=dword:00000000
"UserName"="{%CHN%}"
"password"="{%CHN%}"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon]
"DefaultUserName"="{%USERNAME%}"
"AutoAdminLogon"="1"
"DefaultPassword"="{%USERNAME%}"
"DefaultDomainName"="{%SERVER%}"
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"AppData"="E:\\Application Data"
"Recent"="E:\\Recent"
"Cache"="E:\\Temporary Internet Files"
"Cookies"="E:\\Cookies"
"History"="E:\\History"
"Personal"="E:\\我的文檔"
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
"AppData"="E:\\Application Data"
"Recent"="E:\\Recent"
"Cache"="E:\\Temporary Internet Files"
"Cookies"="E:\\Cookies"
"History"="E:
參考資料