出處:中國IT實驗室
. `7 a, W2 t2 N' Q `: N+ q# P; O% M
個性化Windows XP客戶端的登錄界面 一般來說,XP客戶端登錄界面分為兩種,一種是使用“歡迎屏幕”;另一種是不使用“歡迎屏幕”的經(jīng)典登錄界面。大家都知道,XP系統(tǒng)一旦加入域后,就不再使用“歡迎屏幕”。所以,今天我們就來討論一下如何個性化域中的XP登錄界面。
/ s! C5 r$ P v* w0 A# C y6 a
先讓大家先看一下,我們公司現(xiàn)在和以前使用過的XP個性化登錄界面。如圖1 2 J6 r/ c' F5 u9 M1 D' V
. T! \8 o, G* u$ r4 F5 M4 A
是不是還不錯呢?其實做法很簡單,下面我就一步一步來和大家分享一下如何操作# U2 T$ s1 s$ A* D; w# a" t4 R
" I! |/ S. y9 X+ I4 A. r: j0 K2 I
$ L/ P) M1 m4 U. U8 v ' N d/ L+ _4 ~" i
* I7 w) w, a/ Q3 T4 ^5 N* M
+ |# g0 ~; O- d) T/ X6 s 在正式操作之前,我想先和大家介紹一下Gina這個東西。為什么要介紹這個呢?因為我們今天做的個性化設(shè)置就是修改Gina來實現(xiàn)的。它是干什么用的呢?一言以蔽之,它是專門用來進行登錄進程的驗證和身份驗證的。從它的英文全稱Graphical Identification and Authentication(圖形標識和身份驗證)就可以看出它的用途。Gina的功能實現(xiàn)是依靠C:\WINDOWS\system32\msgina.dll這個動態(tài)鏈接文件來實現(xiàn)的。這個文件包含了默認的Windows登錄界面??梢宰约洪_發(fā)GINA DLL,以實現(xiàn)其他的身份驗證方法,例如某些磁卡、智能卡驗證、動態(tài)令牌驗證等。我們今天就準備修改這個文件的內(nèi)容來達到個性化的目的。不過這個文件是受保護的系統(tǒng)文件,想要徹底修改替換它也不怎么容易。需要借助故障恢復(fù)控制臺、PE系統(tǒng)或者類似NTFSDOS的工具來實現(xiàn),比較麻煩,而且極有可能影響系統(tǒng)的穩(wěn)定。這種做法不值得推薦給大家。
' W" O& C8 h4 Z: K D; o N- X/ K7 y- ?8 Y# h! e
不過微軟還算厚道,在注冊表里留了一個位置用于安裝GINA,在HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon下設(shè)置GINADLL為你指定的GINA DLL,(注意:GINADLL這個值缺省沒有,需要新建)如果設(shè)置了這個值,系統(tǒng)會先調(diào)用該GINA,而不會調(diào)用缺省的msGINA.dll。
. C" {2 `6 h: V7 H. Z! o( H5 {3 o5 D, a2 U& V& E# @
OK,下面是具體操作步驟:
8 e4 g8 g4 |! T" E 1. 將XP系統(tǒng)中的C:\WINDOWS\system32\msgina.dll這個文件復(fù)制一份出來,用于編輯之用,并且重命名為重命名為XPGina.dll(名字隨便取啦)
- Q, @! k9 C7 _4 l
( M; d. m, B8 U; d 2. 用ResHacker或者Exescope(我這里使用ResHacker給大家做演示)打開XPGina.dll后,展開“位圖”,在“101”,“107”下面均有個“2052”。如圖3所示" _& g' S" _, u, E2 K4 a
& U+ k6 o! t$ M; H 3. 我們的目標就是替換這兩個地方的圖片。其中101處的圖片大小為 413*72,用于用戶登錄過程和鎖定畫面;107 則是個較大的位圖,格式為 413*88,用于登陸驗證的畫面。請盡量保持新圖片的大小和系統(tǒng)自帶圖片大小的一致性,否則很影響美觀性。
" b% Z3 y5 C% C# e6 Z' ], }1 H9 y' l
4. 我以101為例來說明如何替換這個圖片。點擊ResHacker的“操作”按鈕,選擇“替換位圖”。如圖4.
! v3 W/ B7 {3 f* b X1 r ?2 x
+ z3 E! ~1 U6 Q+ i0 Z# { 然后選擇“打開新位圖文件”,打開你事先準備好的,經(jīng)過你無限創(chuàng)意的位圖圖片(大小413*72),點擊“替換即可”。如圖5和6。, f- x, A8 J' M/ e$ U7 Z5 S) `
5. 107的替換步驟就不再贅述了,和前面的操作步驟完全一樣。只不過圖片選擇413*88的那張。
; ]2 u" M" R2 a9 B+ r9 ~
1 { G) }5 F! w$ _ 6. 全部修改完以后,點擊ResHacker的“文件”,“保存”即可。這樣,這個文件就被我們處理好了。
5 ]' T' U& z' y' t! p5 m3 ^; a ' \9 N% B9 K) M# E7 q0 @/ c
6 `3 i/ `- \3 o+ \7 A4 K) m0 }/ q8 R$ l7 k W( X% {" @7 [1 e5 Y
0 P/ |, i# o; z* x+ Q* L
+ D# d1 n& D1 k7 ^3 {9 c' W* y
9 l, ?' [) X- t( n* }1 _$ U# Q! L ! ?! H& I5 E2 {" y& h6 E2 ?
: u1 I; I) V% \* a
( x6 k! \7 d# C: `; p
個性化的文件我們已經(jīng)有了,但是如何讓操作系統(tǒng)啟動的時候調(diào)用這個文件呢?其實,我在前面已經(jīng)說過了,在注冊表HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon值下新建一個REG_SZ的字符串值,將內(nèi)容設(shè)置為C:\windows\XPGina.dll(前提是確保這個個性化文件在這個路徑中,否則系統(tǒng)啟動的時候會找不到這個文件而報錯)。重新啟動計算機就可以看到你的勞動成果了,很激動吧。1 ~+ G1 p6 R5 H4 X, u# V! X
' Y* W j: l8 T6 A$ K4 L) w' o' Y" l
操作已經(jīng)接近尾聲了,但是如何在公司的機器上大規(guī)模部署起來呢?總不能一個一個的去客戶端做注冊表修改吧?!當然不必!我們可以使用啟動腳本、ADM模板來批量操作。下面我貼出我們公司目前的啟動腳本文件:$ ^: `7 i8 Z1 [0 c$ D% s; V
$ W* W, g, ~* n [! o) ^% n @echo off
1 @! R& g+ [3 o+ S7 S: s if exist c:\windows\XPGina.dll (
+ K- [4 G3 Z: N, ?1 u5 \ echo Windows Registry Editor Version 5.00 >> .\reg.reg7 H; D! O) H# _8 f; ]
echo . >> .\reg.reg' B4 _! y1 Q1 o, n0 ]& w2 z S
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
& k: s2 L3 ~( X' { i) `: ]( M; o echo "LogonPrompt"=" 祝您工作順心!" >> .\reg.reg
+ h" w6 l% H1 { Z2 o4 s w( B6 W echo "Welcome"="(BY IT支持維護)" >> .\reg.reg o- K2 P0 h6 c! Z; _$ w3 x4 l Y
echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg* `' K. h$ z5 {
regedit /s .\reg.reg
5 `8 R; c% V3 p) H1 d( d5 h: ~! v: N del /F .\reg.reg
" l7 M; s" t1 W. y* [ ) else (# J) J V) K* E2 x# R
net use z: /del3 Q, a' L& |* r
net use z: \\FileServer\\Share "password" /user:username@yourdomain.com
9 Q8 x5 }, m& r; n- M) E$ N copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n
& t/ R+ U: C; \9 u5 _7 Q( N3 C9 Z8 @% n net use z: /del: `1 x/ i/ d$ b3 O# m" B! h
)
. ]6 {2 ? F) f _/ q: w+ R. l1 x% ?! [: D# ^
對以上批處理文件,我稍微做一下解釋。大致思路是先檢查C盤Windows目錄下是否有XPGina.dll這個文件,如果沒有就從Z盤拷貝(Z盤是從文件共享服務(wù)器FileServer上映射的一個網(wǎng)絡(luò)驅(qū)動器),拷貝完成后再斷開驅(qū)動器的映射。如果有,就導(dǎo)入reg.reg注冊表。至于注冊表中具體寫的什么內(nèi)容,相信大家從批處理文件中一看就可以看出來。導(dǎo)入完成以后就刪除該注冊表文件。
l" G( n( {6 t z9 o! A: f" E1 T6 {4 P, t$ t1 n4 T
順便稍上40樓朋友給我們帶來的刪除前面注冊表操作的批處理腳本,這樣就可以回滾操作了, [/ B } k y; `
: v/ @. H F* J1 F( h4 j @echo off* N# @. Z) e4 t# I$ n
if exist %SystemRoot%\XPGina.dll (
/ o f$ n$ [4 d2 ]& g echo Windows Registry Editor Version 5.00 >> .\reg.reg
9 F; T9 o; l5 x+ ~ echo . >> .\reg.reg. V* B1 x, o N3 X' e
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
2 O4 G+ ?; O9 t5 [: x echo "LogonPrompt"=- >> .\reg.reg. r* n- {# p: e7 J" H2 p5 o
echo "Welcome"=- >> .\reg.reg, a, J2 K8 h; o. A) _$ @5 A& C% g
echo "GinaDLL"=- >> .\reg.reg
! d: P5 |+ R8 d' H: [ regedit /s .\reg.reg
* u! W0 `2 z+ p1 z4 I$ B0 ~ del /F .\reg.reg
8 e1 d0 f/ i b4 `" g" K ) else (
! ?: c; y8 }$ W) z del "%SystemRoot%\XPGina.dll" /F
6 M8 ^, T6 h! W' l9 U+ W7 Z+ t5 P )' H5 \7 C6 c( U+ g- o- J
, x# a; J. W( I1 a
最后,整個操作步驟我還想補充幾點說明:
9 x/ ], h; u. D1 u
" j5 \- p" u/ @$ w4 r 1. 操作系統(tǒng)不同,需要替換的位圖文件的位置也不同,例如,XP是替換101和107,而2003就未必是這個地方了。不要試圖用XP的GINADLL文件用在2003上,否則2003的登錄界面很難看,其實也說不上難看,只是圖片不是我們預(yù)期的圖片。/ \* J7 O: r6 A! v; J0 K" _
8 {, x% ^& t/ X* } 2. 在批量實施的時候,請用啟動或關(guān)機腳本。否則可能會因為權(quán)限問題,無法寫進注冊表數(shù)據(jù)。
) @1 ~% |4 m# N8 C& P$ X J
/ v- b- N* j) J 3. 在純安全模式下,個性化界面不會生效。這也就給了當我們遇到第4點中的問題時提供了操作可能。
6 ^. m" f: j. C; q* o+ G _
4 T, _4 f8 i J% O! f: o 4. 如果遇到應(yīng)用錯誤或者不想使用個性化登錄界面,請直接刪除注冊表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新啟動計算機就行了。- G1 Q( Y5 j+ i& ^2 E+ [4 b3 b& a
( I$ U0 H6 z3 ]. G8 |
OK,整個步驟到此就結(jié)束了,雖然沒有什么技術(shù)含量,但是我敢保證,如果你在公司所有的計算機上都個性化了登錄界面,例如加上公司的logo,那么一定會給同事們或老板耳目為之一新的感覺。記得有家公司來我們公司參觀的時候,看到個性化登錄界面后,問我們公司是不是和番茄花園合作,做了系統(tǒng)美化。 |