定義
PNP是由Microsoft提出的,意思是系統自動偵測周邊設備和板卡並自動安裝設備驅動程式,做到插上就能用,無須人工干預,是Windows自帶的一項技術。所謂即插即用是指將符合PNP標準的PC插卡等外圍設備安裝到電腦時,作業系統自動設定系統結構的技術。當用戶安裝新的硬體時,不必再設定任何跳線器開關,也不必用軟體配置中斷請求(IRQ)、記憶體地址或直接存儲器存取(DMA)通道,Windows會向應用程式通知硬體設備的新變化,並會自動協調IRQ、記憶體地址和DMA通道之間的衝突。
解析
在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設定,就能讓這些卡正常工作。
由來
對於許多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方面又得到進一步的發展。
評價
即插即用是一個用於自動處理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的系統中,所有新計算機的購買者不用再擔心硬體設定了。
部件
為了使即插即用正常工作,需要以下的部件:
·即插即用硬體。
·即插即用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解決的衝突是作業系統的責任。依靠使用作業系統的經驗,用戶可以手工設定衝突的插卡,或者關閉系統並在插卡上設定開關。當系統重啟後,系統檢測保持的(或新的)衝突,這些都提示用戶要注意。通過這樣的過程,可以解決所有的系統衝突。
技術問題
查看系統是否已經偵測到網卡
進入系統屬性,點選設備管理器,查看其中的未知設備表中是否有"PCI Ethernet Controler",若沒有則說WIN98未檢測到你的網卡,網卡可能未正確安裝,或已經損壞,如圖5-02,其中的未知設備為正常情況下顯未的尚未驅動的網卡。
保存現有的網卡的註冊表項
單擊“開始”,選取“運行”,輸入“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了,你可以在無盤下安裝顯示卡和音效卡的驅動程式了!
解決方案
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中使用過的檔案複製到相應的目錄中,否則系統將出現問題,或者不能啟動,或者啟動不正常。
手工編程
要手工編程式實現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: