找回密码
 注册

QQ登录

只需一步,快速开始

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

[复制链接]
发表于 2009-4-16 10:26:35 | 显示全部楼层 |阅读模式
出处:中国IT实验室
! I. E; a* q. t5 K1 d& X2 W+ d6 b2 U9 B
       个性化Windows XP客户端的登录界面     一般来说,XP客户端登录界面分为两种,一种是使用“欢迎屏幕”;另一种是不使用“欢迎屏幕”的经典登录界面。大家都知道,XP系统一旦加入域后,就不再使用“欢迎屏幕”。所以,今天我们就来讨论一下如何个性化域中的XP登录界面。
! b0 g$ {! f* A( K$ `
; o: s* l$ G4 J+ U, J1 w       先让大家先看一下,我们公司现在和以前使用过的XP个性化登录界面。如图1 2
7 B# V; M; V8 e
5 r1 q. q9 I7 M0 Q5 G, h' p' o4 B/ ^       是不是还不错呢?其实做法很简单,下面我就一步一步来和大家分享一下如何操作
  Q3 s# x; l; b* Q6 n3 e   
  n9 t+ n& w8 ?% R

- G) A# s, l3 ^: ]# O
2 p( N. x  B1 D: j3 Z# |

9 i! D2 Z. T# U7 \" B+ T: s5 z  A+ p$ Y; G+ q+ {2 c  z7 M
       在正式操作之前,我想先和大家介绍一下Gina这个东西。为什么要介绍这个呢?因为我们今天做的个性化设置就是修改Gina来实现的。它是干什么用的呢?一言以蔽之,它是专门用来进行登录进程的验证和身份验证的。从它的英文全称Graphical Identification and Authentication(图形标识和身份验证)就可以看出它的用途。Gina的功能实现是依靠C:\WINDOWS\system32\msgina.dll这个动态链接文件来实现的。这个文件包含了默认的Windows登录界面。可以自己开发GINA DLL,以实现其他的身份验证方法,例如某些磁卡、智能卡验证、动态令牌验证等。我们今天就准备修改这个文件的内容来达到个性化的目的。不过这个文件是受保护的系统文件,想要彻底修改替换它也不怎么容易。需要借助故障恢复控制台、PE系统或者类似NTFSDOS的工具来实现,比较麻烦,而且极有可能影响系统的稳定。这种做法不值得推荐给大家。
3 M1 K* F! Q0 }" i; |
1 e, Z/ Z. y! i7 l$ O# v2 m3 e       不过微软还算厚道,在注册表里留了一个位置用于安装GINA,在HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon下设置GINADLL为你指定的GINA DLL,(注意:GINADLL这个值缺省没有,需要新建)如果设置了这个值,系统会先调用该GINA,而不会调用缺省的msGINA.dll。
$ A2 g' X& u3 s$ |: [, P* C2 u
* C7 ]2 P6 U( A( p/ H5 \       OK,下面是具体操作步骤:
6 D& U1 A! L6 @       1.        将XP系统中的C:\WINDOWS\system32\msgina.dll这个文件复制一份出来,用于编辑之用,并且重命名为重命名为XPGina.dll(名字随便取啦)4 U6 ]* @" z6 K9 y4 G, M" Y

% k, k' d/ y" U. Z3 ^5 x       2.        用ResHacker或者Exescope(我这里使用ResHacker给大家做演示)打开XPGina.dll后,展开“位图”,在“101”,“107”下面均有个“2052”。如图3所示
' ]1 O! T9 C$ h
/ S4 X! k* ~' @( u       3.        我们的目标就是替换这两个地方的图片。其中101处的图片大小为 413*72,用于用户登录过程和锁定画面;107 则是个较大的位图,格式为 413*88,用于登陆验证的画面。请尽量保持新图片的大小和系统自带图片大小的一致性,否则很影响美观性。' P- ~" u' O! _0 C
3 t% i; }2 s" V6 K
       4.        我以101为例来说明如何替换这个图片。点击ResHacker的“操作”按钮,选择“替换位图”。如图4.
, l0 L1 `- J7 x5 q7 C5 d; t$ Q; f/ R4 R- J' |8 _' u
              然后选择“打开新位图文件”,打开你事先准备好的,经过你无限创意的位图图片(大小413*72),点击“替换即可”。如图5和6。
6 ]2 d( n! s! l  F5 G8 p1 Z- F       5.        107的替换步骤就不再赘述了,和前面的操作步骤完全一样。只不过图片选择413*88的那张。
+ R. G0 }( _& A/ K+ ?, W. |5 A& B8 X9 I+ B; a' X6 f
       6.        全部修改完以后,点击ResHacker的“文件”,“保存”即可。这样,这个文件就被我们处理好了。 3 u- _0 s4 f' ~7 e! l# Z
   ; \* D, P( V, o. w7 E+ O
6 T/ ?1 O7 B' c5 A6 m
6 p( H' w- m( R$ ]8 K4 M

, H" `4 O2 q( |* ]. h: N, l5 b" `) _$ v4 t+ V% J

5 ]1 }) H; l. k* u9 c" S  
- k8 Z! L; a. P0 e% H
* U3 `; t7 U0 V1 L

0 e5 U. D( Y, \1 r( R       个性化的文件我们已经有了,但是如何让操作系统启动的时候调用这个文件呢?其实,我在前面已经说过了,在注册表HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon值下新建一个REG_SZ的字符串值,将内容设置为C:\windows\XPGina.dll(前提是确保这个个性化文件在这个路径中,否则系统启动的时候会找不到这个文件而报错)。重新启动计算机就可以看到你的劳动成果了,很激动吧。
3 @0 J' }) \2 t9 h
; p2 R. O. U5 Y6 i/ |       操作已经接近尾声了,但是如何在公司的机器上大规模部署起来呢?总不能一个一个的去客户端做注册表修改吧?!当然不必!我们可以使用启动脚本、ADM模板来批量操作。下面我贴出我们公司目前的启动脚本文件:/ v4 h, s3 r! D* @; w1 M
$ j+ q( c# l. [2 S
    @echo off9 b  `+ B. H) w4 |8 V6 i
    if exist c:\windows\XPGina.dll (
* X( v) i0 n% I) @+ p    echo Windows Registry Editor Version 5.00 >> .\reg.reg1 O& P$ I( G; @5 J* }
    echo . >> .\reg.reg  w% ], o- k0 p' ^9 i5 e! r
    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
; \. O& K9 k/ {3 W2 }    echo "LogonPrompt"="                         祝您工作顺心!" >> .\reg.reg2 q6 a" Y" ]2 D" p- s, ^  \0 U
    echo "Welcome"="(BY IT支持维护)" >> .\reg.reg4 ?6 v4 e/ Z8 \4 E% Z
    echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg
9 R7 r( t( ^/ U. p, b. I9 ^    regedit /s .\reg.reg( b: Z1 N) B7 s$ j$ A: B
    del /F .\reg.reg: u4 Z8 C$ }: v7 p
    ) else (
6 }1 g4 ^# V5 ^    net use z: /del
# q; l) j, Z- Y    net use z: \\FileServer\\Share  "password" /user:username@yourdomain.com6 W$ z/ E8 `$ j: D0 i" a( n
    copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n; b( |4 ?6 S% I) S( H' ?2 |
    net use z: /del
% [" d, j  J* i# w5 s    )1 \; S* X! s4 D* w/ k0 Z# D
, W. Z/ s2 Y0 q3 N
       对以上批处理文件,我稍微做一下解释。大致思路是先检查C盘Windows目录下是否有XPGina.dll这个文件,如果没有就从Z盘拷贝(Z盘是从文件共享服务器FileServer上映射的一个网络驱动器),拷贝完成后再断开驱动器的映射。如果有,就导入reg.reg注册表。至于注册表中具体写的什么内容,相信大家从批处理文件中一看就可以看出来。导入完成以后就删除该注册表文件。
- x/ ^$ T- Z5 e$ n8 y1 n, U. L4 ~. H0 D$ e  J4 N. U
       顺便稍上40楼朋友给我们带来的删除前面注册表操作的批处理脚本,这样就可以回滚操作了,
+ Q' b* A& i) r$ z; b
* P9 ?0 ^6 v6 T    @echo off& Z; N! Z( j2 v1 v2 Y' u
    if exist %SystemRoot%\XPGina.dll (0 E& b4 ?& F  C2 T
    echo Windows Registry Editor Version 5.00 >> .\reg.reg
4 {" Q" ]9 ?! R9 w' Q' h8 @    echo . >> .\reg.reg
( ~% T" h; I' I) i' z8 M7 e1 V: w, _    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
+ G" G6 i$ v4 A+ u    echo "LogonPrompt"=- >> .\reg.reg' k% R5 ~; o6 J- I, \/ d
    echo "Welcome"=- >> .\reg.reg# a6 h0 f4 Z) ^( ]
    echo "GinaDLL"=- >> .\reg.reg
! e6 S( w- @4 v2 g" l& G! B    regedit /s .\reg.reg! k& v* W( ^/ W2 h  g6 Y* q$ _  {, z6 a( @; P
    del /F .\reg.reg
1 T/ s2 Y8 W% Z6 k1 t) H    ) else (
0 O" ~2 X7 ^, L6 k  x3 H& V    del "%SystemRoot%\XPGina.dll" /F% H' \6 c4 Q: O; h9 L+ s
    )
* t% E" }# \- S/ h# k- p3 Z3 c" t' B4 N3 a1 X. ~4 F
       最后,整个操作步骤我还想补充几点说明:
7 C. p2 \% y9 u+ U
6 y* T" Z) \2 B8 ]       1.        操作系统不同,需要替换的位图文件的位置也不同,例如,XP是替换101和107,而2003就未必是这个地方了。不要试图用XP的GINADLL文件用在2003上,否则2003的登录界面很难看,其实也说不上难看,只是图片不是我们预期的图片。
/ M1 p- x- l. n" ?) E& b7 K; P4 j0 f( U! w, q& d
       2.        在批量实施的时候,请用启动或关机脚本。否则可能会因为权限问题,无法写进注册表数据。2 P1 ?5 B2 @% r% `! \! l
0 ?! q" K* g/ Y7 i
       3.        在纯安全模式下,个性化界面不会生效。这也就给了当我们遇到第4点中的问题时提供了操作可能。
  ^4 Z; c5 m0 F/ y: y* m
% ^  R$ W5 w5 d6 X% ~4 j& I+ r       4.        如果遇到应用错误或者不想使用个性化登录界面,请直接删除注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新启动计算机就行了。) r0 G3 ]: {& [) R) J! n3 V

$ m6 @9 q; Y. z4 z) ^& y* Y       OK,整个步骤到此就结束了,虽然没有什么技术含量,但是我敢保证,如果你在公司所有的计算机上都个性化了登录界面,例如加上公司的logo,那么一定会给同事们或老板耳目为之一新的感觉。记得有家公司来我们公司参观的时候,看到个性化登录界面后,问我们公司是不是和番茄花园合作,做了系统美化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-4-13 03:57

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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