出處:中國IT實驗室
9 K4 @4 Q. B. D a8 C& Y
2 _- [% f0 {! ?; c- U. ` 個性化Windows XP客戶端的登錄界面 一般來說,XP客戶端登錄界面分為兩種,一種是使用“歡迎屏幕”;另一種是不使用“歡迎屏幕”的經(jīng)典登錄界面。大家都知道,XP系統(tǒng)一旦加入域后,就不再使用“歡迎屏幕”。所以,今天我們就來討論一下如何個性化域中的XP登錄界面。* y) K( b$ m% T, h" w8 Y" j
6 e! d. Z. b0 m3 G
先讓大家先看一下,我們公司現(xiàn)在和以前使用過的XP個性化登錄界面。如圖1 2( K# S( a; I0 T; O+ t$ S
/ b/ ]3 H% `) j1 k5 }! r 是不是還不錯呢?其實做法很簡單,下面我就一步一步來和大家分享一下如何操作
* A" k0 T! n, b1 R8 W) o& {
: x* B' p6 B9 q9 s 4 F" m, D Y9 S6 w5 f% M8 u
* S/ U: i* V+ u: \6 J: b- o 6 b) u: o& b8 f; ]+ E4 O' }! l
9 |7 K4 ~, x! t; y0 R& D
在正式操作之前,我想先和大家介紹一下Gina這個東西。為什么要介紹這個呢?因為我們今天做的個性化設(shè)置就是修改Gina來實現(xiàn)的。它是干什么用的呢?一言以蔽之,它是專門用來進(jìn)行登錄進(jìn)程的驗證和身份驗證的。從它的英文全稱Graphical Identification and Authentication(圖形標(biāo)識和身份驗證)就可以看出它的用途。Gina的功能實現(xiàn)是依靠C:\WINDOWS\system32\msgina.dll這個動態(tài)鏈接文件來實現(xiàn)的。這個文件包含了默認(rèn)的Windows登錄界面??梢宰约洪_發(fā)GINA DLL,以實現(xiàn)其他的身份驗證方法,例如某些磁卡、智能卡驗證、動態(tài)令牌驗證等。我們今天就準(zhǔn)備修改這個文件的內(nèi)容來達(dá)到個性化的目的。不過這個文件是受保護的系統(tǒng)文件,想要徹底修改替換它也不怎么容易。需要借助故障恢復(fù)控制臺、PE系統(tǒng)或者類似NTFSDOS的工具來實現(xiàn),比較麻煩,而且極有可能影響系統(tǒng)的穩(wěn)定。這種做法不值得推薦給大家。: P a# i3 f, U$ Y: O8 c, G* Q
* b5 a7 ~6 I5 q
不過微軟還算厚道,在注冊表里留了一個位置用于安裝GINA,在HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon下設(shè)置GINADLL為你指定的GINA DLL,(注意:GINADLL這個值缺省沒有,需要新建)如果設(shè)置了這個值,系統(tǒng)會先調(diào)用該GINA,而不會調(diào)用缺省的msGINA.dll。
/ f: Y5 \+ q) {6 e( r5 K" T h
7 J& s2 ?1 a. A1 N OK,下面是具體操作步驟:0 s2 m" p7 @6 S! [$ v5 f
1. 將XP系統(tǒng)中的C:\WINDOWS\system32\msgina.dll這個文件復(fù)制一份出來,用于編輯之用,并且重命名為重命名為XPGina.dll(名字隨便取啦)1 x& i' z& c2 `) U+ h
! j: u2 Z; `7 g$ Y0 M 2. 用ResHacker或者Exescope(我這里使用ResHacker給大家做演示)打開XPGina.dll后,展開“位圖”,在“101”,“107”下面均有個“2052”。如圖3所示
5 U8 G4 M7 O. K/ [, M7 K( H
. L+ `+ B' E4 _$ [. I; w2 Y 3. 我們的目標(biāo)就是替換這兩個地方的圖片。其中101處的圖片大小為 413*72,用于用戶登錄過程和鎖定畫面;107 則是個較大的位圖,格式為 413*88,用于登陸驗證的畫面。請盡量保持新圖片的大小和系統(tǒng)自帶圖片大小的一致性,否則很影響美觀性。+ g; I! n/ T1 R- V H P7 p
/ e, B- B% D3 l& G p, E7 h7 w; N 4. 我以101為例來說明如何替換這個圖片。點擊ResHacker的“操作”按鈕,選擇“替換位圖”。如圖4.
- q$ F7 m9 B% x6 A8 j% u- H# c( X* k) K3 `# b& ~
然后選擇“打開新位圖文件”,打開你事先準(zhǔn)備好的,經(jīng)過你無限創(chuàng)意的位圖圖片(大小413*72),點擊“替換即可”。如圖5和6。
+ V, G3 N$ [6 a; J 5. 107的替換步驟就不再贅述了,和前面的操作步驟完全一樣。只不過圖片選擇413*88的那張。2 K- W! t2 r% E3 @# b; B
7 U( w, L8 W) t* q
6. 全部修改完以后,點擊ResHacker的“文件”,“保存”即可。這樣,這個文件就被我們處理好了。
: X/ i- G8 o" @ P & f$ m. t/ Y1 i/ R% `6 x5 l
. v, @1 B+ c* }- N) r+ d! V- h( I1 i, n
" O! N1 Z7 q9 W* U0 \
, v7 J9 S7 U: h& C3 y
3 h* ?8 o/ u8 R) T! ]
; X+ E( O- }2 J, N0 i; ?
% w9 m, C' a1 F6 f; L7 W y% e2 [# i3 B# u3 c
個性化的文件我們已經(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)啟動的時候會找不到這個文件而報錯)。重新啟動計算機就可以看到你的勞動成果了,很激動吧。( b# T9 C5 [* n/ E) S% A
4 s# m+ F9 ]' o" o0 Y! P0 ^
操作已經(jīng)接近尾聲了,但是如何在公司的機器上大規(guī)模部署起來呢?總不能一個一個的去客戶端做注冊表修改吧?!當(dāng)然不必!我們可以使用啟動腳本、ADM模板來批量操作。下面我貼出我們公司目前的啟動腳本文件:$ B) @) o$ }4 `& W
% g6 W' C- |0 r2 K; i& j
@echo off5 | m1 M; f# F/ g I) Z- h0 l
if exist c:\windows\XPGina.dll (8 U8 l) c7 k7 Q6 U5 _
echo Windows Registry Editor Version 5.00 >> .\reg.reg
/ b# F+ R2 W8 O0 i( w% R6 u/ H5 V& f echo . >> .\reg.reg
; ], s5 B( s a. F! I0 C" n4 b) E echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
. C `; f2 q+ ]! d* {! [& R. @ echo "LogonPrompt"=" 祝您工作順心!" >> .\reg.reg
8 E0 s6 z! c9 g. h- ^ echo "Welcome"="(BY IT支持維護)" >> .\reg.reg
! P4 e4 H6 m( |& P8 t( G echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg
- ~6 X2 k( q3 Y, G/ s' A% x regedit /s .\reg.reg! p) j: k0 T S- S6 o
del /F .\reg.reg
# ~6 C) C, n( x ) else ($ {( Z2 C q w3 g, c5 s* b
net use z: /del
8 s4 d3 d6 Y/ m3 N) s4 o$ b net use z: \\FileServer\\Share "password" /user:username@yourdomain.com
9 a% y w7 f/ q2 G copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n
" [4 n0 M& g$ @0 i+ o* i H net use z: /del6 }: k6 s+ n. s' `0 G* |
)+ E; `( I2 k- p/ P( o: t
I! H9 O# D! ]( g7 `2 }9 y; Y4 J 對以上批處理文件,我稍微做一下解釋。大致思路是先檢查C盤Windows目錄下是否有XPGina.dll這個文件,如果沒有就從Z盤拷貝(Z盤是從文件共享服務(wù)器FileServer上映射的一個網(wǎng)絡(luò)驅(qū)動器),拷貝完成后再斷開驅(qū)動器的映射。如果有,就導(dǎo)入reg.reg注冊表。至于注冊表中具體寫的什么內(nèi)容,相信大家從批處理文件中一看就可以看出來。導(dǎo)入完成以后就刪除該注冊表文件。! W$ h0 U# i/ x- Y
9 T0 C5 V; p3 l! \ 順便稍上40樓朋友給我們帶來的刪除前面注冊表操作的批處理腳本,這樣就可以回滾操作了,
4 L. y8 V8 C$ V2 F2 K& a$ I7 L& C
@echo off: X+ W* O |& [8 P
if exist %SystemRoot%\XPGina.dll (
0 {; e$ n/ G2 G$ g8 w; U8 }, Y echo Windows Registry Editor Version 5.00 >> .\reg.reg
+ b: [$ W. x V0 T" H: J( } echo . >> .\reg.reg& T/ r1 p- B+ P- k, E* h
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
3 r% }4 {, t% Y t4 j echo "LogonPrompt"=- >> .\reg.reg
' v, {* W) ?4 S: i) T" u echo "Welcome"=- >> .\reg.reg$ S: R4 v* p6 S1 d, Z; X
echo "GinaDLL"=- >> .\reg.reg
" ?3 E. L( S0 ` regedit /s .\reg.reg. J5 f% K/ T: i( h
del /F .\reg.reg
: a4 \, ]6 h# J ) else () f- X% G2 E: r; Q. }' G( K7 M
del "%SystemRoot%\XPGina.dll" /F( w9 I; a# g- s: \% T8 j
)1 H6 ~: E1 o5 l$ h# K* }/ Z
: Q) H) V6 u7 h
最后,整個操作步驟我還想補充幾點說明:
; V! N( S1 j& K: w! o5 O2 H1 f+ y# U \
1. 操作系統(tǒng)不同,需要替換的位圖文件的位置也不同,例如,XP是替換101和107,而2003就未必是這個地方了。不要試圖用XP的GINADLL文件用在2003上,否則2003的登錄界面很難看,其實也說不上難看,只是圖片不是我們預(yù)期的圖片。
3 k3 W, q: L& _ q3 O& X/ C) o3 R- k$ d9 u
2. 在批量實施的時候,請用啟動或關(guān)機腳本。否則可能會因為權(quán)限問題,無法寫進(jìn)注冊表數(shù)據(jù)。4 h1 K' m3 Q6 f
% I9 b& a8 Y$ A4 D( z 3. 在純安全模式下,個性化界面不會生效。這也就給了當(dāng)我們遇到第4點中的問題時提供了操作可能。1 ~1 Q* \& S7 f) k* n' p
# h+ U) N- i5 i1 a7 ]: x 4. 如果遇到應(yīng)用錯誤或者不想使用個性化登錄界面,請直接刪除注冊表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新啟動計算機就行了。" t) T: \4 ], ]
6 c! ~" ~; J8 @9 x
OK,整個步驟到此就結(jié)束了,雖然沒有什么技術(shù)含量,但是我敢保證,如果你在公司所有的計算機上都個性化了登錄界面,例如加上公司的logo,那么一定會給同事們或老板耳目為之一新的感覺。記得有家公司來我們公司參觀的時候,看到個性化登錄界面后,問我們公司是不是和番茄花園合作,做了系統(tǒng)美化。 |