找回密码
 注册

QQ登录

只需一步,快速开始

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

[复制链接]
发表于 2009-4-16 10:26:35 | 显示全部楼层 |阅读模式
出处:中国IT实验室1 R+ M6 M4 O, B
" q! h% J% Z- s' n9 ~
       个性化Windows XP客户端的登录界面     一般来说,XP客户端登录界面分为两种,一种是使用“欢迎屏幕”;另一种是不使用“欢迎屏幕”的经典登录界面。大家都知道,XP系统一旦加入域后,就不再使用“欢迎屏幕”。所以,今天我们就来讨论一下如何个性化域中的XP登录界面。' r2 J; w! F0 Y5 a- [
) \6 L, R6 D& T4 h1 Q% T  D7 O( p2 N
       先让大家先看一下,我们公司现在和以前使用过的XP个性化登录界面。如图1 28 }2 x2 [  l  Q  {

3 `+ S" j. p# a4 v6 B* K8 {7 P/ z       是不是还不错呢?其实做法很简单,下面我就一步一步来和大家分享一下如何操作
* h0 u) M4 q* G' h% v& T. @0 k    2 ]% O: p1 b, i1 m& u6 z" A9 l& ^  t

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

/ I! G* b, V( p& M       OK,下面是具体操作步骤:3 c3 I9 X: l! u9 p6 d
       1.        将XP系统中的C:\WINDOWS\system32\msgina.dll这个文件复制一份出来,用于编辑之用,并且重命名为重命名为XPGina.dll(名字随便取啦)  @- [9 o% I( `% t
7 J7 P2 F1 v8 ^# i% @3 m& I
       2.        用ResHacker或者Exescope(我这里使用ResHacker给大家做演示)打开XPGina.dll后,展开“位图”,在“101”,“107”下面均有个“2052”。如图3所示
5 A) E( S2 @1 Z/ E! {
* I( G* ?6 G' L7 O6 C8 G1 B       3.        我们的目标就是替换这两个地方的图片。其中101处的图片大小为 413*72,用于用户登录过程和锁定画面;107 则是个较大的位图,格式为 413*88,用于登陆验证的画面。请尽量保持新图片的大小和系统自带图片大小的一致性,否则很影响美观性。
# |3 x  w5 i6 E  [4 f' |8 `( y2 G
( H! s: W! P* u; D- f       4.        我以101为例来说明如何替换这个图片。点击ResHacker的“操作”按钮,选择“替换位图”。如图4.- F% h; W- [' q+ Y* _

0 J8 t  O+ y. z; r+ I* j              然后选择“打开新位图文件”,打开你事先准备好的,经过你无限创意的位图图片(大小413*72),点击“替换即可”。如图5和6。* J! b$ R" k* {
       5.        107的替换步骤就不再赘述了,和前面的操作步骤完全一样。只不过图片选择413*88的那张。3 |+ w  c4 X1 P

. h7 m* d4 l& \  S9 x       6.        全部修改完以后,点击ResHacker的“文件”,“保存”即可。这样,这个文件就被我们处理好了。 , u8 D7 B8 q3 p2 K( _' |( Y
   
1 a7 S& ?" \) a& _8 f- J0 [, H

7 q% l& R, ^; k" e3 l  A& @" f. H! _6 N" S

; ~' V8 J; A$ @
( W2 X4 I! s( `5 g% v

9 U0 o; f) ^. u  ) R/ Q9 n* e) {2 R6 _: Q% K

  Q* h1 n4 j3 H: t% c1 m2 q; K& [$ U) }+ A- T8 Y
       个性化的文件我们已经有了,但是如何让操作系统启动的时候调用这个文件呢?其实,我在前面已经说过了,在注册表HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon值下新建一个REG_SZ的字符串值,将内容设置为C:\windows\XPGina.dll(前提是确保这个个性化文件在这个路径中,否则系统启动的时候会找不到这个文件而报错)。重新启动计算机就可以看到你的劳动成果了,很激动吧。! {5 j) }5 @0 Z- c

7 q, e* a2 x. f1 B" q       操作已经接近尾声了,但是如何在公司的机器上大规模部署起来呢?总不能一个一个的去客户端做注册表修改吧?!当然不必!我们可以使用启动脚本、ADM模板来批量操作。下面我贴出我们公司目前的启动脚本文件:0 G0 @# H. x. I/ I- g% Y
6 ?+ i. {' M( W% z) H
    @echo off
& e# r3 A9 ]8 u6 u5 b    if exist c:\windows\XPGina.dll () L& e9 }6 \( a$ Z& H9 j
    echo Windows Registry Editor Version 5.00 >> .\reg.reg
0 \0 i. z$ Z9 T5 Q0 H) B: C/ w  s; K    echo . >> .\reg.reg" i5 X, P) v+ w: }( \
    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
- O1 N) M! S. N$ A) S, |    echo "LogonPrompt"="                         祝您工作顺心!" >> .\reg.reg( _; I: i2 J' P! |% p2 \5 O
    echo "Welcome"="(BY IT支持维护)" >> .\reg.reg
  `! J3 \1 _+ D) w* s* a+ x$ o- o    echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg
* U( [% r; [6 K  P    regedit /s .\reg.reg8 T- K5 f4 D( A% S4 X
    del /F .\reg.reg& [; [; t1 h# B/ |6 _$ F
    ) else (% b# Y+ j3 I1 z: T- r6 f. ~. r# Y
    net use z: /del
" ?: J5 {* T2 Y1 {  t9 ?    net use z: \\FileServer\\Share  "password" /user:username@yourdomain.com4 r& d) n; o+ [: e5 a- Q
    copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n! q: A3 [; P+ G8 `3 V' Z
    net use z: /del1 b! e$ |0 f* @
    )
6 o( m. q9 T0 N- m' O2 T" }
+ k( e3 D4 X  [7 n' ?- G2 C  h3 |# G       对以上批处理文件,我稍微做一下解释。大致思路是先检查C盘Windows目录下是否有XPGina.dll这个文件,如果没有就从Z盘拷贝(Z盘是从文件共享服务器FileServer上映射的一个网络驱动器),拷贝完成后再断开驱动器的映射。如果有,就导入reg.reg注册表。至于注册表中具体写的什么内容,相信大家从批处理文件中一看就可以看出来。导入完成以后就删除该注册表文件。
2 w6 D# l4 `* `4 h2 i* j  R; }, N' X1 c( _' r( T" L5 F6 F
       顺便稍上40楼朋友给我们带来的删除前面注册表操作的批处理脚本,这样就可以回滚操作了,
: j8 G- a1 C! {7 O/ F8 V+ e3 ^% g! N% Q3 V# ^3 k' G2 w$ A
    @echo off2 q: ~5 p5 Q* p2 i. }$ W5 H
    if exist %SystemRoot%\XPGina.dll (
  q" d. V# S# @8 o# X# Z4 ^4 A    echo Windows Registry Editor Version 5.00 >> .\reg.reg2 s/ J5 _0 B$ A4 n; N
    echo . >> .\reg.reg
6 }9 H( p& u2 W, S6 q* _( @; g    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
7 L5 I' s( u6 q7 F7 q1 S% ]    echo "LogonPrompt"=- >> .\reg.reg
1 L, F/ j" X# A) B) j2 f    echo "Welcome"=- >> .\reg.reg' \6 R: t, J6 f7 m! I/ v
    echo "GinaDLL"=- >> .\reg.reg" ^/ N0 b  a$ Z6 ~$ t: b- l  i$ K+ g5 B
    regedit /s .\reg.reg7 R6 j  h8 w2 `! ~" G; d- U% ], t8 P. m
    del /F .\reg.reg
. ?1 A+ {! |) u) K. F1 b" R    ) else (
( Y( }2 q' a" h5 H- K6 {    del "%SystemRoot%\XPGina.dll" /F
6 q& W# B1 a' f4 C: z/ U; ]- f    )
, M3 v1 L/ p: q2 ?
0 M9 @, Z! M/ @' }5 n/ {- S" s( ^       最后,整个操作步骤我还想补充几点说明:
4 d2 ^* M* L( @, r4 M
1 T. o) W7 Y! K6 u& q       1.        操作系统不同,需要替换的位图文件的位置也不同,例如,XP是替换101和107,而2003就未必是这个地方了。不要试图用XP的GINADLL文件用在2003上,否则2003的登录界面很难看,其实也说不上难看,只是图片不是我们预期的图片。
' S9 Y  d1 ~5 b
( C# k0 ]7 T; L9 c       2.        在批量实施的时候,请用启动或关机脚本。否则可能会因为权限问题,无法写进注册表数据。
6 H# u# Q3 m5 Z; w  _2 V2 N/ m8 g
4 V! u' b9 X! J, a  w. f) e' Q       3.        在纯安全模式下,个性化界面不会生效。这也就给了当我们遇到第4点中的问题时提供了操作可能。
$ [% }3 p! F( S, a% w/ t8 _
/ S* F& f; {7 u2 P/ d8 Y! u+ F8 R+ v       4.        如果遇到应用错误或者不想使用个性化登录界面,请直接删除注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新启动计算机就行了。
" d8 T: c4 }! @* h( T! H$ R+ L) Y$ h* s( C8 r- b
       OK,整个步骤到此就结束了,虽然没有什么技术含量,但是我敢保证,如果你在公司所有的计算机上都个性化了登录界面,例如加上公司的logo,那么一定会给同事们或老板耳目为之一新的感觉。记得有家公司来我们公司参观的时候,看到个性化登录界面后,问我们公司是不是和番茄花园合作,做了系统美化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-1 12:23

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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