個性化Windows XP客戶端的登錄界面

一般來說,XP客戶端登錄界面分爲兩種,一種是使用“歡迎屏幕”;另一種是不使用“歡迎屏幕”的經典登錄界面。大家都知道,XP系統一旦加入域後,就不再使用“歡迎屏幕”。所以,今天我們就來討論一下如何個性化域中的XP登錄界面。

先讓大家先看一下,我們公司現在和以前使用過的XP個性化登錄界面。如圖1 2

是不是還不錯呢?其實做法很簡單,下面我就一步一步來和大家分享一下如何操作

 

 

 

 

在正式操作之前,我想先和大家介紹一下Gina這個東西。爲什麼要介紹這個呢?因爲我們今天做的個性化設置就是修改Gina來實現的。它是幹什麼用的呢?一言以蔽之,它是專門用來進行登錄進程的驗證和身份驗證的。從它的英文全稱Graphical Identification an
d Authentication(圖形標識和身份驗證)就可以看出它的用途。Gina的功能實現是依靠C:\WINDOWS\system32\msgina.dll這個動態鏈接文件來實現的。這個文件包含了默認的Windows登錄界面。可以自己開發GINA DLL,以實現其他的身份驗證方法,例如某些磁卡、智能卡驗證、動態令牌驗證等。我們今天就準備修改這個文件的內容來達到個性化的目的。不過這個文件是受保護的系統文件,想要徹底修改替換它也不怎麼容易。需要藉助故障恢復控制檯、PE系統或者類似NTFSDOS的工具來實現,比較麻煩,而且極有可能影響系統的穩定。這種做法不值得推薦給大家。

不過微軟還算厚道,在註冊表裏留了一個位置用於安裝GINA,在HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon下設置GINADLL爲你指定的GINA DLL,(注意:GINADLL這個值缺省沒有,需要新建)如果設置了這個值,系統會先調用該GINA,而不會調用缺省的msGINA.dll。

好了好了,廢話說了一籮筐,估計大家早已不耐煩了。OK,下面是具體操作步驟:
1.        將XP系統中的C:\WINDOWS\system32\msgina.dll這個文件複製一份出來,用於編輯之用,並且重命名爲重命名爲XPGina.dll(名字隨便取啦)
2.        用ResHacker或者Exescope(我這裏使用ResHacker給大家做演示)打開XPGina.dll後,展開“位圖”,在“101”,“107”下面均有個“2052”。如圖3所示
3.        我們的目標就是替換這兩個地方的圖片。其中101處的圖片大小爲 413*72,用於用戶登錄過程和鎖定畫面;107 則是個較大的位圖,格式爲 413*88,用於登陸驗證的畫面。請儘量保持新圖片的大小和系統自帶圖片大小的一致性,否則很影響美觀性。
4.        我以101爲例來說明如何替換這個圖片。點擊ResHacker的“操作”按鈕,選擇“替換位圖”。如圖4.
                然後選擇“打開新位圖文件”,打開你事先準備好的,經過你無限創意的位圖圖片(大小413*72),點擊“替換即可”。如圖5和6。
5.        107的替換步驟就不再贅述了,和前面的操作步驟完全一樣。只不過圖片選擇413*88的那張。
6.        全部修改完以後,點擊ResHacker的“文件”,“保存”即可。這樣,這個文件就被我們處理好了。

 

 

 

 

個性化的文件我們已經有了,但是如何讓操作系統啓動的時候調用這個文件呢?其實,我在前面已經說過了,在註冊表HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon值下新建一個REG_SZ的字符串值,將內容設置爲C:\windows\XPGina.dll(前提是確保這個個性化文件在這個路徑中,否則系統啓動的時候會找不到這個文件而報錯)。重新啓動計算機就可以看到你的勞動成果了,很激動吧。

操作已經接近尾聲了,但是如何在公司的機器上大規模部署起來呢?總不能一個一個的去客戶端做註冊表修改吧?!當然不必!我們可以使用啓動腳本、ADM模板來批量操作。下面我貼出我們公司目前的啓動腳本文件:
@echo off
if exist c:\windows\XPGina.dll (
echo Windows Registry Editor Version 5.00 >> .\reg.reg
echo . >> .\reg.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
echo "LogonPrompt"="                         祝您工作順心!" >> .\reg.reg
echo "Welcome"="(BY IT支持維護)" >> .\reg.reg
echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg
regedit /s .\reg.reg
del /F .\reg.reg
) else (
net use z: /del
net use z: \\FileServer\\Share  "password" /user:[email protected]
copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n
net use z: /del
)
對以上批處理文件,我稍微做一下解釋。大致思路是先檢查C盤Windows目錄下是否有XPGina.dll這個文件,如果沒有就從Z盤拷貝(Z盤是從文件共享服務器FileServer上映射的一個網絡驅動器),拷貝完成後再斷開驅動器的映射。如果有,就導入reg.reg註冊表。至於註冊表中具體寫的什麼內容,相信大家從批處理文件中一看就可以看出來。導入完成以後就刪除該註冊表文件。


順便稍上40樓朋友給我們帶來的刪除前面註冊表操作的批處理腳本,這樣就可以回滾操作了,感謝這位朋友

@echo off
if exist %SystemRoot%\XPGina.dll (
echo Windows Registry Editor Version 5.00 >> .\reg.reg
echo . >> .\reg.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
echo "LogonPrompt"=- >> .\reg.reg
echo "Welcome"=- >> .\reg.reg
echo "GinaDLL"=- >> .\reg.reg
regedit /s .\reg.reg
del /F .\reg.reg
) else (
del "%SystemRoot%\XPGina.dll" /F
)
最後,整個操作步驟我還想補充幾點說明:
1.        操作系統不同,需要替換的位圖文件的位置也不同,例如,XP是替換101和107,而2003就未必是這個地方了。不要試圖用XP的GINADLL文件用在2003上,否則2003的登錄界面很難看,其實也說不上難看,只是圖片不是我們預期的圖片。
2.        在批量實施的時候,請用啓動或關機腳本。否則可能會因爲權限問題,無法寫進註冊表數據。
3.        在純安全模式下,個性化界面不會生效。這也就給了當我們遇到第4點中的問題時提供了操作可能。
4.        如果遇到應用錯誤或者不想使用個性化登錄界面,請直接刪除註冊表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新啓動計算機就行了。

OK,整個步驟到此就結束了,雖然沒有什麼技術含量,但是我敢保證,如果你在公司所有的計算機上都個性化了登錄界面,例如加上公司的logo,那麼一定會給同事們或老闆耳目爲之一新的感覺。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章