找回密码
 注册

QQ登录

只需一步,快速开始

打造自己的XP客户端的登录界面

[复制链接]
发表于 2009-4-16 10:26:35 | 显示全部楼层 |阅读模式
出处:中国IT实验室4 }+ X5 c0 d0 t& E8 y# ~0 e
% P- o* `- y2 u9 b  c
       个性化Windows XP客户端的登录界面     一般来说,XP客户端登录界面分为两种,一种是使用“欢迎屏幕”;另一种是不使用“欢迎屏幕”的经典登录界面。大家都知道,XP系统一旦加入域后,就不再使用“欢迎屏幕”。所以,今天我们就来讨论一下如何个性化域中的XP登录界面。
- _& E6 R! {" C$ v9 }. f' S' ^* C, V  K
       先让大家先看一下,我们公司现在和以前使用过的XP个性化登录界面。如图1 2
) k0 F- `) i/ g2 l- J3 N# j+ T: ?) W9 O
       是不是还不错呢?其实做法很简单,下面我就一步一步来和大家分享一下如何操作% f1 U8 U  |0 a! _- i2 C, u+ x! l
    % w8 i9 }0 W! r8 r4 F) @  R( \# G) ?
, b" M$ G% w" y; |# @% ~0 N
/ M1 }8 _% k; a
  q; Z) C" }0 P6 s! Z

5 L5 {; P9 n1 s       在正式操作之前,我想先和大家介绍一下Gina这个东西。为什么要介绍这个呢?因为我们今天做的个性化设置就是修改Gina来实现的。它是干什么用的呢?一言以蔽之,它是专门用来进行登录进程的验证和身份验证的。从它的英文全称Graphical Identification and Authentication(图形标识和身份验证)就可以看出它的用途。Gina的功能实现是依靠C:\WINDOWS\system32\msgina.dll这个动态链接文件来实现的。这个文件包含了默认的Windows登录界面。可以自己开发GINA DLL,以实现其他的身份验证方法,例如某些磁卡、智能卡验证、动态令牌验证等。我们今天就准备修改这个文件的内容来达到个性化的目的。不过这个文件是受保护的系统文件,想要彻底修改替换它也不怎么容易。需要借助故障恢复控制台、PE系统或者类似NTFSDOS的工具来实现,比较麻烦,而且极有可能影响系统的稳定。这种做法不值得推荐给大家。7 O  v, L! N, p( g# Q7 x
- q, \% `1 J5 ^. K* D) a8 s; I
       不过微软还算厚道,在注册表里留了一个位置用于安装GINA,在HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon下设置GINADLL为你指定的GINA DLL,(注意:GINADLL这个值缺省没有,需要新建)如果设置了这个值,系统会先调用该GINA,而不会调用缺省的msGINA.dll。" T8 G7 c+ u7 N% S  T

$ w5 e$ J2 B( H2 y' O       OK,下面是具体操作步骤:
: ^. E, E6 W2 l, X3 ~8 `       1.        将XP系统中的C:\WINDOWS\system32\msgina.dll这个文件复制一份出来,用于编辑之用,并且重命名为重命名为XPGina.dll(名字随便取啦)
& B4 x; }4 @# p6 w6 u9 z
- C: g& \( ^; j$ F* I       2.        用ResHacker或者Exescope(我这里使用ResHacker给大家做演示)打开XPGina.dll后,展开“位图”,在“101”,“107”下面均有个“2052”。如图3所示
% ^" ?& J: y, k0 T% |$ F+ `/ B9 \: ^$ E( z' C" m7 I4 x
       3.        我们的目标就是替换这两个地方的图片。其中101处的图片大小为 413*72,用于用户登录过程和锁定画面;107 则是个较大的位图,格式为 413*88,用于登陆验证的画面。请尽量保持新图片的大小和系统自带图片大小的一致性,否则很影响美观性。3 a5 h, z( @/ S+ z! K$ d$ _. E$ f- _
8 f9 E! l$ Z6 I4 q6 b
       4.        我以101为例来说明如何替换这个图片。点击ResHacker的“操作”按钮,选择“替换位图”。如图4.5 a) ~$ e+ D# i7 x" g$ D& G

5 ]5 H0 c9 c- H! U1 }  M              然后选择“打开新位图文件”,打开你事先准备好的,经过你无限创意的位图图片(大小413*72),点击“替换即可”。如图5和6。, e& n# U6 {, I6 c) ]
       5.        107的替换步骤就不再赘述了,和前面的操作步骤完全一样。只不过图片选择413*88的那张。1 ~& y& Z" p# c: j  }) K

1 _8 W. l& E- d2 K" T- p+ _       6.        全部修改完以后,点击ResHacker的“文件”,“保存”即可。这样,这个文件就被我们处理好了。
" Z9 F2 R1 K& i   ' B5 r1 s$ X( c. b4 t

, E: p; A, F+ o1 U% W
. R" V! \( G* E
  e2 ]) ^9 X: @& @4 n" @; x
3 Z" ?" ]! R1 T+ G/ G& W
% _! C+ }7 L0 K& ]  q7 o
  - F3 ?8 Y9 F$ Z# I, S

8 s/ f. c5 ]$ W
7 Z8 I$ D9 g* t' J       个性化的文件我们已经有了,但是如何让操作系统启动的时候调用这个文件呢?其实,我在前面已经说过了,在注册表HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon值下新建一个REG_SZ的字符串值,将内容设置为C:\windows\XPGina.dll(前提是确保这个个性化文件在这个路径中,否则系统启动的时候会找不到这个文件而报错)。重新启动计算机就可以看到你的劳动成果了,很激动吧。
  W1 u& r+ A- e9 g  t
" P2 I! l5 e, J  O1 f" l, u" t       操作已经接近尾声了,但是如何在公司的机器上大规模部署起来呢?总不能一个一个的去客户端做注册表修改吧?!当然不必!我们可以使用启动脚本、ADM模板来批量操作。下面我贴出我们公司目前的启动脚本文件:
/ d6 M3 }$ E' r, T: S8 s
! l$ i+ `3 t0 @1 Y$ I! m% N    @echo off
+ e# A8 B) \+ p& W4 \* f    if exist c:\windows\XPGina.dll (/ s; S: e! G2 ?* l! Y. r5 f
    echo Windows Registry Editor Version 5.00 >> .\reg.reg
; W$ d) h3 c1 V; U/ [: T    echo . >> .\reg.reg
) R  Z0 T" j  U6 P. {# R    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
9 _0 P: }0 m. _7 ?    echo "LogonPrompt"="                         祝您工作顺心!" >> .\reg.reg) s; {! ]" l& K: l: {0 u( [
    echo "Welcome"="(BY IT支持维护)" >> .\reg.reg
! a' z0 x  |, s& O  n: h    echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg
! H1 ], I* `" T& U9 p% c    regedit /s .\reg.reg$ A8 e3 d: }! q! g
    del /F .\reg.reg
4 z3 v3 x$ H! s7 y  l: v    ) else (, I1 ~. ~9 t* o% g
    net use z: /del8 X; j, q& e( F  Y7 j+ \
    net use z: \\FileServer\\Share  "password" /user:username@yourdomain.com" w+ n1 m2 S3 s& g; d- Y- A
    copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n
2 J; V7 s- `: E" w: V    net use z: /del
7 V% q) P! B* p" _- Q, W/ t. |    )' D) b* ]# ^& p

; R( P4 S1 d, C' I       对以上批处理文件,我稍微做一下解释。大致思路是先检查C盘Windows目录下是否有XPGina.dll这个文件,如果没有就从Z盘拷贝(Z盘是从文件共享服务器FileServer上映射的一个网络驱动器),拷贝完成后再断开驱动器的映射。如果有,就导入reg.reg注册表。至于注册表中具体写的什么内容,相信大家从批处理文件中一看就可以看出来。导入完成以后就删除该注册表文件。% R+ U& |5 _7 P: c8 K9 o
) o/ y0 [& N+ G$ Y+ J" o: r0 E
       顺便稍上40楼朋友给我们带来的删除前面注册表操作的批处理脚本,这样就可以回滚操作了,
* s! s! L3 s7 X5 {- `& E" h8 }' g) _" }
; @+ f0 e; [$ p  g    @echo off- M  O4 z1 F, s9 Y- m
    if exist %SystemRoot%\XPGina.dll (
+ `+ V# \3 p- p2 o& B8 R" G    echo Windows Registry Editor Version 5.00 >> .\reg.reg9 o7 M2 M% o* d0 N3 j/ g4 c  [
    echo . >> .\reg.reg; ^% r4 x# U* S- O2 Z
    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg* i2 j5 `/ p! z
    echo "LogonPrompt"=- >> .\reg.reg
" y" w6 q6 t# G    echo "Welcome"=- >> .\reg.reg4 n8 m! V( W- u! q
    echo "GinaDLL"=- >> .\reg.reg+ K3 X6 ^* a2 ^4 [" v
    regedit /s .\reg.reg
; O- ?+ l8 D! ]/ o8 S$ c) O0 @  u    del /F .\reg.reg
' a; ~  ^) W) g5 W& W1 g8 n9 s8 G    ) else (9 h+ i( e4 b- m- q7 p
    del "%SystemRoot%\XPGina.dll" /F6 Y& a* g* C+ f8 D
    )$ J' X2 O& D# w* v

. J" [8 P; H; y( G       最后,整个操作步骤我还想补充几点说明:
+ ?* p& l$ P) |  g: _: h. g4 _! r
5 e2 z& a& n) }' ~6 {       1.        操作系统不同,需要替换的位图文件的位置也不同,例如,XP是替换101和107,而2003就未必是这个地方了。不要试图用XP的GINADLL文件用在2003上,否则2003的登录界面很难看,其实也说不上难看,只是图片不是我们预期的图片。
( L* [& R3 o! D5 T) [% {: Z4 l
3 R) u' m: l. w( t7 ^* A2 k       2.        在批量实施的时候,请用启动或关机脚本。否则可能会因为权限问题,无法写进注册表数据。. S8 l/ b6 A2 ~; h/ n

/ k' _' Z; f: @' \/ ~7 `       3.        在纯安全模式下,个性化界面不会生效。这也就给了当我们遇到第4点中的问题时提供了操作可能。
! ?- x6 n8 _7 j( ]4 s& u, a$ ]. k; \1 {3 j7 i0 S4 }
       4.        如果遇到应用错误或者不想使用个性化登录界面,请直接删除注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新启动计算机就行了。
2 |: @4 ?- F$ k% `' t- z
. B4 O8 w) z9 n5 Y& B( v" j       OK,整个步骤到此就结束了,虽然没有什么技术含量,但是我敢保证,如果你在公司所有的计算机上都个性化了登录界面,例如加上公司的logo,那么一定会给同事们或老板耳目为之一新的感觉。记得有家公司来我们公司参观的时候,看到个性化登录界面后,问我们公司是不是和番茄花园合作,做了系统美化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|本地广告联系: QQ:905790666 TEL:13176190456|Archiver|手机版|小黑屋|汶上信息港 ( 鲁ICP备19052200号-1 )

GMT+8, 2025-6-16 03:50

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表