出處:中國IT實驗室
0 ?' _( M' J/ [7 L6 b! f3 [) M- K% ~! o% D; K- R
個性化Windows XP客戶端的登錄界面 一般來說,XP客戶端登錄界面分為兩種,一種是使用“歡迎屏幕”;另一種是不使用“歡迎屏幕”的經(jīng)典登錄界面。大家都知道,XP系統(tǒng)一旦加入域后,就不再使用“歡迎屏幕”。所以,今天我們就來討論一下如何個性化域中的XP登錄界面。1 f0 B' V- I- x: \, l5 X
% |8 m" U7 j0 g2 K
先讓大家先看一下,我們公司現(xiàn)在和以前使用過的XP個性化登錄界面。如圖1 2: I) p/ `0 c% n
6 ^6 v; X/ b) \5 l" E; q5 g' B 是不是還不錯呢?其實做法很簡單,下面我就一步一步來和大家分享一下如何操作% \* b) O0 _2 l( W: t3 F
7 Y) e w; G; ^4 s
# L. B: Z/ c( n/ q+ ^ ! t* X5 V$ d1 ~& B8 B/ ^) \
2 Z6 {: w5 {& Q' h+ I; c
# [1 U5 i9 w/ N/ T+ ~) ?4 U& Z 在正式操作之前,我想先和大家介紹一下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)定。這種做法不值得推薦給大家。
- U0 D) ~, T9 `/ E6 {6 n) r6 F0 k. m" O' g! C+ ~) e& e
不過微軟還算厚道,在注冊表里留了一個位置用于安裝GINA,在HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon下設(shè)置GINADLL為你指定的GINA DLL,(注意:GINADLL這個值缺省沒有,需要新建)如果設(shè)置了這個值,系統(tǒng)會先調(diào)用該GINA,而不會調(diào)用缺省的msGINA.dll。
+ H7 ]. m# y/ F( P
: A H& g0 l( t( v8 B5 j: F# {/ | OK,下面是具體操作步驟:
4 f* [6 C( W: n 1. 將XP系統(tǒng)中的C:\WINDOWS\system32\msgina.dll這個文件復(fù)制一份出來,用于編輯之用,并且重命名為重命名為XPGina.dll(名字隨便取啦)
" j; Q, z! u7 _' F9 h }% @7 L$ C
/ V/ f6 W* L( D2 h, D+ k 2. 用ResHacker或者Exescope(我這里使用ResHacker給大家做演示)打開XPGina.dll后,展開“位圖”,在“101”,“107”下面均有個“2052”。如圖3所示& B# w7 H) L2 j
% F7 h* m2 `$ X
3. 我們的目標就是替換這兩個地方的圖片。其中101處的圖片大小為 413*72,用于用戶登錄過程和鎖定畫面;107 則是個較大的位圖,格式為 413*88,用于登陸驗證的畫面。請盡量保持新圖片的大小和系統(tǒng)自帶圖片大小的一致性,否則很影響美觀性。; B0 W+ w% K4 [* G1 Y! G% i0 _
9 F1 M" S7 K H
4. 我以101為例來說明如何替換這個圖片。點擊ResHacker的“操作”按鈕,選擇“替換位圖”。如圖4.
# u: K! u8 y7 V8 |- c" a) X* ?' {; M1 f+ i. }
然后選擇“打開新位圖文件”,打開你事先準備好的,經(jīng)過你無限創(chuàng)意的位圖圖片(大小413*72),點擊“替換即可”。如圖5和6。: X" ~1 d" R& M1 O& Q, ^! ~6 R% D" u1 C
5. 107的替換步驟就不再贅述了,和前面的操作步驟完全一樣。只不過圖片選擇413*88的那張。3 |0 c7 P, ~' W
* ~- g4 Y& h8 u w0 E9 T 6. 全部修改完以后,點擊ResHacker的“文件”,“保存”即可。這樣,這個文件就被我們處理好了。
8 k# c$ l. m5 @ 9 H# S7 D" E L) M$ G& Y- Y1 m0 Q- Z
9 H z, {! Z1 E* c
6 N% f. I: m0 f' w9 s v6 P1 m( N
) T0 g% H7 y) V; z1 Y1 ?0 k8 O& e/ Y2 w: S8 A6 e
" |, @3 d. F; } t/ c6 \+ C; V# S
0 U1 c' }" Y$ S
/ x+ w% }$ L# D' F, Z3 L$ p6 t C+ L6 F0 B. g# u2 z
個性化的文件我們已經(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)啟動的時候會找不到這個文件而報錯)。重新啟動計算機就可以看到你的勞動成果了,很激動吧。+ N4 U7 ]6 a& S. _7 W
" ~; ]9 P8 X8 [/ c 操作已經(jīng)接近尾聲了,但是如何在公司的機器上大規(guī)模部署起來呢?總不能一個一個的去客戶端做注冊表修改吧?!當然不必!我們可以使用啟動腳本、ADM模板來批量操作。下面我貼出我們公司目前的啟動腳本文件:
+ u+ I3 G) \# ~ O% @( T' x8 Q' p' e/ S/ d
@echo off; l7 l5 d0 [ G
if exist c:\windows\XPGina.dll (
( b6 m$ n$ k: h6 P# c6 u+ Q echo Windows Registry Editor Version 5.00 >> .\reg.reg
; m" Y% Z) E- G( X! p echo . >> .\reg.reg, R: y r' ^+ \" P x0 d
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
: x/ e- ?( G( C( k2 L+ Z% f% C echo "LogonPrompt"=" 祝您工作順心!" >> .\reg.reg# G; |3 U9 F% z. L' ~& ]
echo "Welcome"="(BY IT支持維護)" >> .\reg.reg3 R4 M/ L: V1 h& B j, }
echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg: o7 ?. m, H X3 ^/ O: ?
regedit /s .\reg.reg
4 r* w) Y' t2 j4 N3 q. R8 J del /F .\reg.reg
) C F2 E& Q `( X! e0 t! @ ) else (
: i( ]" J* H2 \ net use z: /del
O* o5 V* E. Z' M% _/ q net use z: \\FileServer\\Share "password" /user:username@yourdomain.com
+ y6 B1 K& @3 }. {( q3 r6 M0 y copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n6 G- b# U- |5 \
net use z: /del m( Y' V& J& r; h2 c- `) S% K0 a
)! c+ {& {# P& g) b2 |2 E4 l9 f
" W( n/ V% ^ Y2 {4 a 對以上批處理文件,我稍微做一下解釋。大致思路是先檢查C盤Windows目錄下是否有XPGina.dll這個文件,如果沒有就從Z盤拷貝(Z盤是從文件共享服務(wù)器FileServer上映射的一個網(wǎng)絡(luò)驅(qū)動器),拷貝完成后再斷開驅(qū)動器的映射。如果有,就導入reg.reg注冊表。至于注冊表中具體寫的什么內(nèi)容,相信大家從批處理文件中一看就可以看出來。導入完成以后就刪除該注冊表文件。5 M& P5 }, J9 ^8 A$ g8 m( V
9 d) o( O$ `# u7 ^- s h
順便稍上40樓朋友給我們帶來的刪除前面注冊表操作的批處理腳本,這樣就可以回滾操作了,
3 q6 ^0 J! f5 J8 }" g9 m0 z) `: Y1 M9 A6 B$ l3 Z5 m6 E
@echo off5 Z' v @4 B" G7 I$ M
if exist %SystemRoot%\XPGina.dll (
8 _4 T/ O) |% a7 [' i3 d echo Windows Registry Editor Version 5.00 >> .\reg.reg* |8 ~. I" M2 ?4 a: ]2 B
echo . >> .\reg.reg0 [8 X) A1 E4 m! K9 Y! }% J6 Y
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
. {2 o8 Y* k0 d2 x2 S: w echo "LogonPrompt"=- >> .\reg.reg) | s5 {' o' z/ z W- d! s* S9 q
echo "Welcome"=- >> .\reg.reg
! V! N6 J5 o" V# U, T echo "GinaDLL"=- >> .\reg.reg
) B* H$ I* `% x7 a- X5 Q0 Z regedit /s .\reg.reg# v$ \, s6 ]% D
del /F .\reg.reg
l! ^5 w: s! @" b+ n ) else (* n/ l& ]7 q! |/ w8 ` `
del "%SystemRoot%\XPGina.dll" /F# y: {: I4 m X0 v- P- R
)
% p' b; ~& W/ O# }! ~1 ^9 z
- z( ^7 j6 A4 m8 K# o% ? 最后,整個操作步驟我還想補充幾點說明:
; L* N9 t1 U$ I: o2 b% S0 J' d1 |+ g- R1 O+ A3 h2 a
1. 操作系統(tǒng)不同,需要替換的位圖文件的位置也不同,例如,XP是替換101和107,而2003就未必是這個地方了。不要試圖用XP的GINADLL文件用在2003上,否則2003的登錄界面很難看,其實也說不上難看,只是圖片不是我們預(yù)期的圖片。$ T" T2 A8 X5 p
3 F7 a9 l* T2 ]% K, l
2. 在批量實施的時候,請用啟動或關(guān)機腳本。否則可能會因為權(quán)限問題,無法寫進注冊表數(shù)據(jù)。3 @. J- w$ J8 D0 f: M" f
6 [; F1 t9 P8 r( D# r
3. 在純安全模式下,個性化界面不會生效。這也就給了當我們遇到第4點中的問題時提供了操作可能。% L0 d8 _- l8 j* {# i% R7 _1 A
1 p/ w. n3 p% w+ t
4. 如果遇到應(yīng)用錯誤或者不想使用個性化登錄界面,請直接刪除注冊表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新啟動計算機就行了。
+ M; \, M/ L' U% X' @; ^8 N% \1 p# ~& l$ R
OK,整個步驟到此就結(jié)束了,雖然沒有什么技術(shù)含量,但是我敢保證,如果你在公司所有的計算機上都個性化了登錄界面,例如加上公司的logo,那么一定會給同事們或老板耳目為之一新的感覺。記得有家公司來我們公司參觀的時候,看到個性化登錄界面后,問我們公司是不是和番茄花園合作,做了系統(tǒng)美化。 |