出處:中國IT實驗室 g( P- |3 ^* m9 E
/ }: m& Q" K4 a% N# B+ i& q
個性化Windows XP客戶端的登錄界面 一般來說,XP客戶端登錄界面分為兩種,一種是使用“歡迎屏幕”;另一種是不使用“歡迎屏幕”的經(jīng)典登錄界面。大家都知道,XP系統(tǒng)一旦加入域后,就不再使用“歡迎屏幕”。所以,今天我們就來討論一下如何個性化域中的XP登錄界面。
# h6 k$ {+ V8 r! \: O e9 c! G! ~! F( m/ c) g
先讓大家先看一下,我們公司現(xiàn)在和以前使用過的XP個性化登錄界面。如圖1 2
5 V0 c" q7 o0 {7 a& s# @
T. E1 \% j. q& i0 y5 C& ] 是不是還不錯呢?其實做法很簡單,下面我就一步一步來和大家分享一下如何操作" F @) p% @/ e" F- P
6 c$ U$ ], A" L" Y
1 Q% S/ _( G* V4 [8 K8 _ : t# {& Q, w. H/ S; m0 D l
4 ^0 B9 L- }) [( t: q+ x) g' {# {- W7 k8 v2 b' p" r# }- h' {
在正式操作之前,我想先和大家介紹一下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)定。這種做法不值得推薦給大家。
6 G5 {8 _4 `4 ~; i1 q+ s
" V. o; Z4 C' {! Z 不過微軟還算厚道,在注冊表里留了一個位置用于安裝GINA,在HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon下設(shè)置GINADLL為你指定的GINA DLL,(注意:GINADLL這個值缺省沒有,需要新建)如果設(shè)置了這個值,系統(tǒng)會先調(diào)用該GINA,而不會調(diào)用缺省的msGINA.dll。
9 @; v9 U: I. P5 } l0 A. S9 u, g6 ~. y ?* N$ \
OK,下面是具體操作步驟:( K8 j9 b) R% W1 M# F# o. {
1. 將XP系統(tǒng)中的C:\WINDOWS\system32\msgina.dll這個文件復(fù)制一份出來,用于編輯之用,并且重命名為重命名為XPGina.dll(名字隨便取啦)
* s: Y& H( ?& K* c! e$ F8 c1 l2 e* |9 t1 ~7 ^
2. 用ResHacker或者Exescope(我這里使用ResHacker給大家做演示)打開XPGina.dll后,展開“位圖”,在“101”,“107”下面均有個“2052”。如圖3所示
) g7 p" X9 I0 A% w: h0 _( X# g3 d2 \) |: d% `& |6 ^
3. 我們的目標就是替換這兩個地方的圖片。其中101處的圖片大小為 413*72,用于用戶登錄過程和鎖定畫面;107 則是個較大的位圖,格式為 413*88,用于登陸驗證的畫面。請盡量保持新圖片的大小和系統(tǒng)自帶圖片大小的一致性,否則很影響美觀性。
$ C4 B) Q0 O' {1 e" p! r* o/ ^- [$ A. L* v
4. 我以101為例來說明如何替換這個圖片。點擊ResHacker的“操作”按鈕,選擇“替換位圖”。如圖4.5 Z9 p3 w1 w' D2 f5 g
5 [! {- N+ e0 E; o. }
然后選擇“打開新位圖文件”,打開你事先準備好的,經(jīng)過你無限創(chuàng)意的位圖圖片(大小413*72),點擊“替換即可”。如圖5和6。
: R9 n) P) j* M 5. 107的替換步驟就不再贅述了,和前面的操作步驟完全一樣。只不過圖片選擇413*88的那張。
% M% \) o/ ^5 ]& i- X7 y
/ \, u' c D% W1 X+ \8 z, E 6. 全部修改完以后,點擊ResHacker的“文件”,“保存”即可。這樣,這個文件就被我們處理好了。
" ?9 h1 [. _! k0 \4 A1 u5 G4 \ ( C" [# w4 O" H, E" |8 J2 k; X
& A8 q+ }2 @: j
" P' B" n' S* _7 ?
& A, _# Y$ m, n8 x' M8 A0 F3 Z
, g5 @. O- z/ J+ F) y! X
, R4 H7 D Y3 K" }8 g/ U6 _
: G7 \- d6 j3 n$ D ]# g( p, x! m( B0 Z: A, Y
) \7 I' ]6 W5 R) g: Z) i
個性化的文件我們已經(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)啟動的時候會找不到這個文件而報錯)。重新啟動計算機就可以看到你的勞動成果了,很激動吧。
4 u# J+ D1 L# W6 a, l; ~
1 s6 {, U L6 C4 A 操作已經(jīng)接近尾聲了,但是如何在公司的機器上大規(guī)模部署起來呢?總不能一個一個的去客戶端做注冊表修改吧?!當然不必!我們可以使用啟動腳本、ADM模板來批量操作。下面我貼出我們公司目前的啟動腳本文件:- N$ K+ m) ~; S: G
3 P$ p- t5 B- I/ B3 I
@echo off; P, Y( j" y4 e9 N! u
if exist c:\windows\XPGina.dll (
# v* ^+ t" B2 `6 @" C" i$ R8 e9 s echo Windows Registry Editor Version 5.00 >> .\reg.reg
; L( J# p- V" K7 A: t3 C4 i2 L: K echo . >> .\reg.reg0 W4 R% o8 _' l
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
5 `9 _+ E: }- V8 T echo "LogonPrompt"=" 祝您工作順心!" >> .\reg.reg
# j/ ~# [! z& q4 V: ~" G( a0 u) c& x echo "Welcome"="(BY IT支持維護)" >> .\reg.reg
* c7 A3 ?0 G, K5 @$ S X6 H echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg
0 R* c7 G( ~- ^$ \/ ` regedit /s .\reg.reg+ b: Q# {$ k$ s1 s4 D5 E% a4 o* m
del /F .\reg.reg& c1 U* E1 k+ M9 s+ R! L- G) o
) else (
3 W, O+ z8 K* w* } net use z: /del
0 W* n0 ]! [' r0 F net use z: \\FileServer\\Share "password" /user:username@yourdomain.com
, @! w, h+ U( a, \7 Q copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n$ L+ P" r9 b# N: v5 c
net use z: /del
; O9 F% v7 z7 g) t2 L, d )/ b4 o: C0 v' l8 I. C: U6 j
9 z: |; K( c+ L( i' P% y 對以上批處理文件,我稍微做一下解釋。大致思路是先檢查C盤Windows目錄下是否有XPGina.dll這個文件,如果沒有就從Z盤拷貝(Z盤是從文件共享服務(wù)器FileServer上映射的一個網(wǎng)絡(luò)驅(qū)動器),拷貝完成后再斷開驅(qū)動器的映射。如果有,就導(dǎo)入reg.reg注冊表。至于注冊表中具體寫的什么內(nèi)容,相信大家從批處理文件中一看就可以看出來。導(dǎo)入完成以后就刪除該注冊表文件。% k* a ^" F/ u) @4 I5 ^9 X$ z
. ?( o* m; {/ U+ d+ S 順便稍上40樓朋友給我們帶來的刪除前面注冊表操作的批處理腳本,這樣就可以回滾操作了,
* T' Q3 f6 \# z/ l! Y. T
( w4 y$ Z4 Z: z% Q @echo off
* `9 U C4 V9 Y" p$ u/ S if exist %SystemRoot%\XPGina.dll (
+ @, n( g$ s" b. S) j- H echo Windows Registry Editor Version 5.00 >> .\reg.reg
4 m4 X9 N$ x5 U& Q5 N. a echo . >> .\reg.reg5 i9 Q# t& m8 B: @; X
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg) h( p5 H; J2 X$ T
echo "LogonPrompt"=- >> .\reg.reg
* I* ^* d* D2 n6 X5 y echo "Welcome"=- >> .\reg.reg$ T! f. l! v- K: h [3 ^- d
echo "GinaDLL"=- >> .\reg.reg: |1 G2 @: W$ M! Q+ @7 e' v/ e
regedit /s .\reg.reg
7 a2 C' {0 U; n0 C) x5 ]8 `/ @4 q del /F .\reg.reg
4 y g! N9 i( y" H3 @& C ) else (8 C. k* P1 M4 u* y8 j4 ]
del "%SystemRoot%\XPGina.dll" /F
0 c" C2 n; j) M3 y )
9 N: Y2 z% V* v8 L8 k- u' p8 {/ e4 A# A" h9 f$ P1 j
最后,整個操作步驟我還想補充幾點說明:1 R% r5 S" D5 d0 O% E* e/ ]
& a9 Y8 b O2 N" I5 {4 Y
1. 操作系統(tǒng)不同,需要替換的位圖文件的位置也不同,例如,XP是替換101和107,而2003就未必是這個地方了。不要試圖用XP的GINADLL文件用在2003上,否則2003的登錄界面很難看,其實也說不上難看,只是圖片不是我們預(yù)期的圖片。
# ~5 p' s# K$ I- y
% M/ C- O. v" X3 @/ P! L; x0 Y, m+ i 2. 在批量實施的時候,請用啟動或關(guān)機腳本。否則可能會因為權(quán)限問題,無法寫進注冊表數(shù)據(jù)。
U" U! d8 p: l2 [
5 Q0 d$ L. L9 ]6 A& l+ i5 ` 3. 在純安全模式下,個性化界面不會生效。這也就給了當我們遇到第4點中的問題時提供了操作可能。 s/ w# p8 T+ _# p I0 X1 b
+ t& i! y; U- F' c b5 C# p1 W
4. 如果遇到應(yīng)用錯誤或者不想使用個性化登錄界面,請直接刪除注冊表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新啟動計算機就行了。
' U* V- {+ ^* I# G0 @& e3 z% A! m' {, }, V6 g: v
OK,整個步驟到此就結(jié)束了,雖然沒有什么技術(shù)含量,但是我敢保證,如果你在公司所有的計算機上都個性化了登錄界面,例如加上公司的logo,那么一定會給同事們或老板耳目為之一新的感覺。記得有家公司來我們公司參觀的時候,看到個性化登錄界面后,問我們公司是不是和番茄花園合作,做了系統(tǒng)美化。 |