出處:中國IT實驗室- f5 O7 Y- P) `. a) u# k1 z
6 v9 S$ u0 R, V- _' p; K6 m 個性化Windows XP客戶端的登錄界面 一般來說,XP客戶端登錄界面分為兩種,一種是使用“歡迎屏幕”;另一種是不使用“歡迎屏幕”的經(jīng)典登錄界面。大家都知道,XP系統(tǒng)一旦加入域后,就不再使用“歡迎屏幕”。所以,今天我們就來討論一下如何個性化域中的XP登錄界面。
& Y! C5 Z- v0 _: x, r. Y9 R7 M& v2 u3 N
先讓大家先看一下,我們公司現(xiàn)在和以前使用過的XP個性化登錄界面。如圖1 2
1 {; m# V8 q8 w2 e& s6 q) r2 L4 g7 e3 [9 J# ^) `% q8 e3 J
是不是還不錯呢?其實做法很簡單,下面我就一步一步來和大家分享一下如何操作
. {8 e2 I% A4 r3 K) d - r) a" M& M; M
; s; O+ ^) O8 G- H" X
4 s# [# W5 n& O3 g8 y8 D' c
( q* L# T+ r3 F1 j( _8 l, S
2 H+ Q6 ^" \* x1 A# T2 z8 ~, `
在正式操作之前,我想先和大家介紹一下Gina這個東西。為什么要介紹這個呢?因為我們今天做的個性化設(shè)置就是修改Gina來實現(xiàn)的。它是干什么用的呢?一言以蔽之,它是專門用來進行登錄進程的驗證和身份驗證的。從它的英文全稱Graphical Identification and Authentication(圖形標(biāo)識和身份驗證)就可以看出它的用途。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)定。這種做法不值得推薦給大家。
( z! W9 q( L& d2 o- K
; G! |6 N" c( L, p$ u 不過微軟還算厚道,在注冊表里留了一個位置用于安裝GINA,在HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon下設(shè)置GINADLL為你指定的GINA DLL,(注意:GINADLL這個值缺省沒有,需要新建)如果設(shè)置了這個值,系統(tǒng)會先調(diào)用該GINA,而不會調(diào)用缺省的msGINA.dll。) ^ {" V" |6 P, p1 k1 ~' @
5 k; M& Y$ F9 x0 W( p OK,下面是具體操作步驟:: L" e! z/ r% e9 v
1. 將XP系統(tǒng)中的C:\WINDOWS\system32\msgina.dll這個文件復(fù)制一份出來,用于編輯之用,并且重命名為重命名為XPGina.dll(名字隨便取啦)
% W7 C4 u' m2 B5 ]
2 e; e* G( x& T) y# j2 b w 2. 用ResHacker或者Exescope(我這里使用ResHacker給大家做演示)打開XPGina.dll后,展開“位圖”,在“101”,“107”下面均有個“2052”。如圖3所示+ C/ A4 [9 L$ k4 L. W
& F* b! Q ~0 |* c 3. 我們的目標(biāo)就是替換這兩個地方的圖片。其中101處的圖片大小為 413*72,用于用戶登錄過程和鎖定畫面;107 則是個較大的位圖,格式為 413*88,用于登陸驗證的畫面。請盡量保持新圖片的大小和系統(tǒng)自帶圖片大小的一致性,否則很影響美觀性。0 n2 P$ B0 c r" A. Z
$ W3 S- A2 Q2 D' x) H7 n$ j 4. 我以101為例來說明如何替換這個圖片。點擊ResHacker的“操作”按鈕,選擇“替換位圖”。如圖4.) f+ j3 s6 H# i* }# @' _
* V6 e, l4 T1 {5 O& y" X9 a
然后選擇“打開新位圖文件”,打開你事先準備好的,經(jīng)過你無限創(chuàng)意的位圖圖片(大小413*72),點擊“替換即可”。如圖5和6。0 |; W$ g& b( A Z& b; O( O
5. 107的替換步驟就不再贅述了,和前面的操作步驟完全一樣。只不過圖片選擇413*88的那張。% R# s8 V# b1 Q7 f
3 A) p: \2 y; c& n 6. 全部修改完以后,點擊ResHacker的“文件”,“保存”即可。這樣,這個文件就被我們處理好了。
2 b- l0 h3 I: O& x; i7 }
8 V+ W( Q+ m9 q! ~( f O9 T' \ : Y4 {* U; c& ^7 O
9 F5 C- R8 [" x( }* r2 G! r4 U
3 ^8 S6 {8 j2 d# P4 Z, m
1 F& g8 m* j# A+ p' ?3 r
' x! |6 {, G: z5 v) ]
% _4 T3 {5 X+ J6 D$ ^
7 g$ T, T4 M! f {6 [
f q# L. I6 O! P* S 個性化的文件我們已經(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)啟動的時候會找不到這個文件而報錯)。重新啟動計算機就可以看到你的勞動成果了,很激動吧。
3 N* m4 `* \# ]6 e' x8 r t) ~* K$ u0 }
操作已經(jīng)接近尾聲了,但是如何在公司的機器上大規(guī)模部署起來呢?總不能一個一個的去客戶端做注冊表修改吧?!當(dāng)然不必!我們可以使用啟動腳本、ADM模板來批量操作。下面我貼出我們公司目前的啟動腳本文件:
1 D+ C8 C# r% E6 D. C( {" C+ c, R0 K, U" s9 t8 D. K b0 o% M# J! j
@echo off
3 C4 e. _+ N% v4 C. q if exist c:\windows\XPGina.dll () ^& X* j X6 l% }$ x4 X
echo Windows Registry Editor Version 5.00 >> .\reg.reg
7 X6 Y2 X6 z q* h3 X# C echo . >> .\reg.reg* a" m( e t& k6 N( @) m
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
+ B+ b$ _: z" ~/ e echo "LogonPrompt"=" 祝您工作順心!" >> .\reg.reg0 C$ s3 T! y/ s: M
echo "Welcome"="(BY IT支持維護)" >> .\reg.reg" Z3 N$ C0 \3 q; G# y' s
echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg/ p0 u, C$ R ~# _. ]4 h' _
regedit /s .\reg.reg- k# ` `& L$ P
del /F .\reg.reg8 q: h7 k% k9 ^2 P- h2 \3 |! H3 z
) else (# b1 A* u( @' Z: y) ?% @1 I
net use z: /del
" b5 t. C7 |% ?, V net use z: \\FileServer\\Share "password" /user:username@yourdomain.com
! s: p% [# x* E2 |7 |/ S* [ copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n
9 a1 t* v& ?6 i. J3 F net use z: /del
, E1 e* s3 X, ?- V# p* {$ ] )
# j! n% q2 Q4 ^8 G# a, V( z/ G1 J2 D5 k* @4 _3 o' h* V
對以上批處理文件,我稍微做一下解釋。大致思路是先檢查C盤Windows目錄下是否有XPGina.dll這個文件,如果沒有就從Z盤拷貝(Z盤是從文件共享服務(wù)器FileServer上映射的一個網(wǎng)絡(luò)驅(qū)動器),拷貝完成后再斷開驅(qū)動器的映射。如果有,就導(dǎo)入reg.reg注冊表。至于注冊表中具體寫的什么內(nèi)容,相信大家從批處理文件中一看就可以看出來。導(dǎo)入完成以后就刪除該注冊表文件。( `' Q6 e$ x$ s1 x: [
3 D4 A7 u8 p: v4 f$ P
順便稍上40樓朋友給我們帶來的刪除前面注冊表操作的批處理腳本,這樣就可以回滾操作了,+ c; ^$ m; U- U2 G& z' D( F
2 Z& o& M+ T' o0 E @echo off
, _ h' j& i9 S if exist %SystemRoot%\XPGina.dll (6 i* e& Z$ ^4 L4 Z
echo Windows Registry Editor Version 5.00 >> .\reg.reg
! {5 X& k/ U6 c7 X A6 | echo . >> .\reg.reg, u, H" j& o. \8 ^. x9 h
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
" I! l. V- _2 B" e* t echo "LogonPrompt"=- >> .\reg.reg
) A8 u+ @) }, _) x2 \; A) o/ c3 U echo "Welcome"=- >> .\reg.reg( b. o( }$ |- c3 F; J! s8 u! w1 [
echo "GinaDLL"=- >> .\reg.reg
9 A4 ?+ H' S7 s regedit /s .\reg.reg
, G# f. l1 {8 E; W2 n8 W0 P del /F .\reg.reg$ c/ U0 e1 _9 Y7 X# [. A1 A* w& j
) else (" A+ @! K# v& Q
del "%SystemRoot%\XPGina.dll" /F9 L/ J# y! ?- e4 D# s
)9 k' F* E9 `: l7 ~/ \/ p! u
2 y1 H# h1 K6 ]3 `
最后,整個操作步驟我還想補充幾點說明:
! U, g( F( I0 g* Z9 A6 b) }' l' r! j
1. 操作系統(tǒng)不同,需要替換的位圖文件的位置也不同,例如,XP是替換101和107,而2003就未必是這個地方了。不要試圖用XP的GINADLL文件用在2003上,否則2003的登錄界面很難看,其實也說不上難看,只是圖片不是我們預(yù)期的圖片。
( \* Q" |. Y9 l
# O1 d: N9 ~1 n 2. 在批量實施的時候,請用啟動或關(guān)機腳本。否則可能會因為權(quán)限問題,無法寫進注冊表數(shù)據(jù)。: b5 R) F2 o& e5 \! O, F
# N0 @- B( Q' d6 N1 L 3. 在純安全模式下,個性化界面不會生效。這也就給了當(dāng)我們遇到第4點中的問題時提供了操作可能。
$ c2 \. q% n, b3 r5 I3 F( f4 \" s5 {
4. 如果遇到應(yīng)用錯誤或者不想使用個性化登錄界面,請直接刪除注冊表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新啟動計算機就行了。. ]2 c: R2 C* C% x; g8 }5 O. d
, h# |$ z+ r9 Q' @% w; i
OK,整個步驟到此就結(jié)束了,雖然沒有什么技術(shù)含量,但是我敢保證,如果你在公司所有的計算機上都個性化了登錄界面,例如加上公司的logo,那么一定會給同事們或老板耳目為之一新的感覺。記得有家公司來我們公司參觀的時候,看到個性化登錄界面后,問我們公司是不是和番茄花園合作,做了系統(tǒng)美化。 |