出處:中國IT實驗室5 ]" U4 P; q. k$ u, @1 _- ~& Y
! F0 N! K3 X! ?
個性化Windows XP客戶端的登錄界面 一般來說,XP客戶端登錄界面分為兩種,一種是使用“歡迎屏幕”;另一種是不使用“歡迎屏幕”的經(jīng)典登錄界面。大家都知道,XP系統(tǒng)一旦加入域后,就不再使用“歡迎屏幕”。所以,今天我們就來討論一下如何個性化域中的XP登錄界面。
& X! J) f( M5 O7 G' W+ \# ]3 Q5 c# g( C5 ]
先讓大家先看一下,我們公司現(xiàn)在和以前使用過的XP個性化登錄界面。如圖1 2; V# t8 W( ?- s9 ^% I
9 C" ^* J V" S* ^+ v2 }, E6 o
是不是還不錯呢?其實做法很簡單,下面我就一步一步來和大家分享一下如何操作0 o1 |' G( E4 p0 y9 q
' {" Y0 k; F# o) E* T* D* |- q 4 E" {* Q1 ]% \- v; T9 D2 @8 Q5 Y
: E1 X/ F5 N) e
# h; k$ @, V1 b9 f9 @
- {) s" }% [4 p* } D1 ~ 在正式操作之前,我想先和大家介紹一下Gina這個東西。為什么要介紹這個呢?因為我們今天做的個性化設置就是修改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)文件,想要徹底修改替換它也不怎么容易。需要借助故障恢復控制臺、PE系統(tǒng)或者類似NTFSDOS的工具來實現(xiàn),比較麻煩,而且極有可能影響系統(tǒng)的穩(wěn)定。這種做法不值得推薦給大家。
1 h9 N t9 H0 b" a
7 }1 Y+ q) S% e9 K 不過微軟還算厚道,在注冊表里留了一個位置用于安裝GINA,在HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon下設置GINADLL為你指定的GINA DLL,(注意:GINADLL這個值缺省沒有,需要新建)如果設置了這個值,系統(tǒng)會先調(diào)用該GINA,而不會調(diào)用缺省的msGINA.dll。. d1 D" h% ^7 S+ {: f6 I
) U: S, g7 E! ]$ k% [" R
OK,下面是具體操作步驟:
! @, `7 V4 j3 q9 n; J 1. 將XP系統(tǒng)中的C:\WINDOWS\system32\msgina.dll這個文件復制一份出來,用于編輯之用,并且重命名為重命名為XPGina.dll(名字隨便取啦)
; o; W" G/ {% [& z: l# W% o7 V5 [
8 M' I0 x' T4 a, d* `2 C 2. 用ResHacker或者Exescope(我這里使用ResHacker給大家做演示)打開XPGina.dll后,展開“位圖”,在“101”,“107”下面均有個“2052”。如圖3所示& k0 W4 Z) \" C& y
2 N5 j6 T5 A `% x3 @. c* r
3. 我們的目標就是替換這兩個地方的圖片。其中101處的圖片大小為 413*72,用于用戶登錄過程和鎖定畫面;107 則是個較大的位圖,格式為 413*88,用于登陸驗證的畫面。請盡量保持新圖片的大小和系統(tǒng)自帶圖片大小的一致性,否則很影響美觀性。9 h2 j8 y0 e( R+ Y6 A( t
& ~ s1 ]$ ]) A) Y* A
4. 我以101為例來說明如何替換這個圖片。點擊ResHacker的“操作”按鈕,選擇“替換位圖”。如圖4.
) t, U4 h3 Z3 w. l% u# ]. P4 i' J
( z/ |, P: G2 T1 o$ A 然后選擇“打開新位圖文件”,打開你事先準備好的,經(jīng)過你無限創(chuàng)意的位圖圖片(大小413*72),點擊“替換即可”。如圖5和6。3 w4 R `/ g. `7 H# I( n0 |3 a1 G8 \
5. 107的替換步驟就不再贅述了,和前面的操作步驟完全一樣。只不過圖片選擇413*88的那張。
5 G3 H4 w/ z$ g! e$ Y
! w A+ u$ w1 K0 d; y8 \% _& v- T 6. 全部修改完以后,點擊ResHacker的“文件”,“保存”即可。這樣,這個文件就被我們處理好了。
p2 o! E! R$ Q1 n* r2 ]: b
5 U: X3 G! z4 @& t ' V: Y! Q8 E$ }$ k9 K
% l. P# V/ [1 T# }6 L6 J
% l# c- [$ u9 B" l; N9 t% C4 S9 g/ B
$ c, X3 Q7 k/ d
! O0 k/ c8 d6 B) a2 s5 o* H
8 C1 j7 q9 `. M; Y' Z9 m" Z$ s
個性化的文件我們已經(jīng)有了,但是如何讓操作系統(tǒng)啟動的時候調(diào)用這個文件呢?其實,我在前面已經(jīng)說過了,在注冊表HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon值下新建一個REG_SZ的字符串值,將內(nèi)容設置為C:\windows\XPGina.dll(前提是確保這個個性化文件在這個路徑中,否則系統(tǒng)啟動的時候會找不到這個文件而報錯)。重新啟動計算機就可以看到你的勞動成果了,很激動吧。
- V) H0 e! L) f: \8 S" w
8 T2 n3 D% v1 K& F6 H 操作已經(jīng)接近尾聲了,但是如何在公司的機器上大規(guī)模部署起來呢?總不能一個一個的去客戶端做注冊表修改吧?!當然不必!我們可以使用啟動腳本、ADM模板來批量操作。下面我貼出我們公司目前的啟動腳本文件:
( v, N& i. |2 K
% a$ {# m6 m$ D& U' L @echo off
& R' J1 |8 y8 E2 O% ?1 `* P if exist c:\windows\XPGina.dll (1 N5 {, i" M7 a& m
echo Windows Registry Editor Version 5.00 >> .\reg.reg% ]& i7 B, L! D; b
echo . >> .\reg.reg& Z( s1 ~1 X+ V5 a5 \8 j; P$ L8 C
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg, n' `, ?; M1 k
echo "LogonPrompt"=" 祝您工作順心!" >> .\reg.reg
7 J0 Y& c$ K. O: y2 I" U* t echo "Welcome"="(BY IT支持維護)" >> .\reg.reg
6 Z, Z7 d# k4 w' } echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg
# C# u" [/ `$ f7 a# i+ } regedit /s .\reg.reg
% w0 y! r/ ?9 n del /F .\reg.reg
' @5 j4 ], \9 b) y- j* ~2 O ) else (8 F! ?& y- e7 [$ J6 d- @7 K
net use z: /del
; ]' O# y; h, }8 z net use z: \\FileServer\\Share "password" /user:username@yourdomain.com
1 q4 i& l3 m! P# R5 k* ] copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n
# {0 U+ U* o+ q) M7 A: @5 Z4 R net use z: /del
: J/ j& Q6 ?+ ~) J% T )
' d# C& C7 j0 D! H* V8 R5 ~9 T0 e: ^4 P/ W. \9 ?
對以上批處理文件,我稍微做一下解釋。大致思路是先檢查C盤Windows目錄下是否有XPGina.dll這個文件,如果沒有就從Z盤拷貝(Z盤是從文件共享服務器FileServer上映射的一個網(wǎng)絡驅(qū)動器),拷貝完成后再斷開驅(qū)動器的映射。如果有,就導入reg.reg注冊表。至于注冊表中具體寫的什么內(nèi)容,相信大家從批處理文件中一看就可以看出來。導入完成以后就刪除該注冊表文件。
$ G* ?7 s5 v h- w, K2 ~# G+ g n( t( X% F
順便稍上40樓朋友給我們帶來的刪除前面注冊表操作的批處理腳本,這樣就可以回滾操作了,
( c8 s% G$ p: [% ~6 T R) k) t9 z
@echo off* J9 r9 b8 ]+ r! @) R. c1 m
if exist %SystemRoot%\XPGina.dll (
1 z3 b' L0 e8 p echo Windows Registry Editor Version 5.00 >> .\reg.reg) v$ `, n% p" k2 ]: g
echo . >> .\reg.reg( X/ g' L+ ?9 b) `, t
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
& \' S1 k" C' z/ @1 }' T7 D echo "LogonPrompt"=- >> .\reg.reg
% n+ d7 L/ `8 P. F g( D echo "Welcome"=- >> .\reg.reg
5 _# h$ Z( t9 f. X1 S, M; @0 A( t echo "GinaDLL"=- >> .\reg.reg2 U2 k8 F$ P. @- W, z
regedit /s .\reg.reg. }2 j3 D- J4 J
del /F .\reg.reg9 k- @. Z8 G7 Z2 M0 O/ W
) else (
: s- I) ~& I5 Q p, ]0 T8 l del "%SystemRoot%\XPGina.dll" /F9 U: R i. w6 L; x! Z' [
)
& E j1 L' q5 W2 a
9 ? p$ Y0 ~. o, |) x% n 最后,整個操作步驟我還想補充幾點說明:- T" {+ B8 q/ H: J+ [9 x
+ G0 G. [+ |, Q; n2 e3 E
1. 操作系統(tǒng)不同,需要替換的位圖文件的位置也不同,例如,XP是替換101和107,而2003就未必是這個地方了。不要試圖用XP的GINADLL文件用在2003上,否則2003的登錄界面很難看,其實也說不上難看,只是圖片不是我們預期的圖片。" x0 h! @: a2 A5 d% h. i
. j# h% V& F; D E. k6 b6 [* K! D# [% i 2. 在批量實施的時候,請用啟動或關(guān)機腳本。否則可能會因為權(quán)限問題,無法寫進注冊表數(shù)據(jù)。
" r; h+ n% Y0 U& ?; Y. r2 _4 l
4 i! L# x$ o" [: K6 ]8 D 3. 在純安全模式下,個性化界面不會生效。這也就給了當我們遇到第4點中的問題時提供了操作可能。
, S, ]9 F8 \- F# U/ F' h1 R# d3 c C- K. b9 r
4. 如果遇到應用錯誤或者不想使用個性化登錄界面,請直接刪除注冊表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新啟動計算機就行了。
8 ^; u6 [3 {4 o' z' d/ U/ C4 a0 w v: m! h
OK,整個步驟到此就結(jié)束了,雖然沒有什么技術(shù)含量,但是我敢保證,如果你在公司所有的計算機上都個性化了登錄界面,例如加上公司的logo,那么一定會給同事們或老板耳目為之一新的感覺。記得有家公司來我們公司參觀的時候,看到個性化登錄界面后,問我們公司是不是和番茄花園合作,做了系統(tǒng)美化。 |