找回密码
 注册

QQ登录

只需一步,快速开始

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

[复制链接]
发表于 2009-4-16 10:26:35 | 显示全部楼层 |阅读模式
出处:中国IT实验室; ]$ S( [9 ]0 x+ \" y
, U% w8 O% o, n/ n
       个性化Windows XP客户端的登录界面     一般来说,XP客户端登录界面分为两种,一种是使用“欢迎屏幕”;另一种是不使用“欢迎屏幕”的经典登录界面。大家都知道,XP系统一旦加入域后,就不再使用“欢迎屏幕”。所以,今天我们就来讨论一下如何个性化域中的XP登录界面。# y' m9 o' ~1 _7 w+ `7 |" w! e
7 Q7 i( f0 N+ f; c
       先让大家先看一下,我们公司现在和以前使用过的XP个性化登录界面。如图1 2
6 n( g: I& ~$ O% r# @
! k/ {, i# g. y# W8 S6 `       是不是还不错呢?其实做法很简单,下面我就一步一步来和大家分享一下如何操作
2 o0 h  z. L* O' Q8 h1 D   
2 s& _/ Z9 Z/ |4 t! ?( ?- Y- \+ D  ]- I

/ q0 r: k" j/ w/ f! H" U5 z) r 5 C- E/ ~1 c' \# }/ m

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

2 t3 ]* Q: S5 {: l4 b       OK,下面是具体操作步骤:% ]0 t; k5 i7 h
       1.        将XP系统中的C:\WINDOWS\system32\msgina.dll这个文件复制一份出来,用于编辑之用,并且重命名为重命名为XPGina.dll(名字随便取啦)/ H1 X4 c% ]/ B6 c! a# x

! |. a3 T) {: q1 g2 W; E0 h' ~/ u! a       2.        用ResHacker或者Exescope(我这里使用ResHacker给大家做演示)打开XPGina.dll后,展开“位图”,在“101”,“107”下面均有个“2052”。如图3所示' E2 s2 A9 {0 A% l

$ L: \; h! r! P7 m4 ~+ W" |       3.        我们的目标就是替换这两个地方的图片。其中101处的图片大小为 413*72,用于用户登录过程和锁定画面;107 则是个较大的位图,格式为 413*88,用于登陆验证的画面。请尽量保持新图片的大小和系统自带图片大小的一致性,否则很影响美观性。
2 |$ v5 k+ o1 {6 ?3 q5 Y$ o6 I" K4 h0 b+ _2 w4 H' Q" l- u
       4.        我以101为例来说明如何替换这个图片。点击ResHacker的“操作”按钮,选择“替换位图”。如图4.
7 [% {. \/ x/ C8 e2 J6 w* U- k  V$ N' `+ E+ E
              然后选择“打开新位图文件”,打开你事先准备好的,经过你无限创意的位图图片(大小413*72),点击“替换即可”。如图5和6。% u* z. P2 r4 y; @. |
       5.        107的替换步骤就不再赘述了,和前面的操作步骤完全一样。只不过图片选择413*88的那张。
4 |% s' I; W4 r; C0 U! g! i; e" C/ r! q
       6.        全部修改完以后,点击ResHacker的“文件”,“保存”即可。这样,这个文件就被我们处理好了。 ! Z# F$ x# x( I8 r) t' Q
     |( ]9 U0 @) o/ R4 ]5 a* v0 O
+ q( o; H1 Z! t

6 O  t0 z9 v) X! H: j0 K4 U' X* j9 i

7 Y! E4 s6 n- \) g' t8 H/ e0 M6 C2 D5 {$ R+ h3 [
! y' I4 E+ R; Z- M2 R9 i( C
  % w, G; k1 m: u  E

- t, d3 U3 I, d4 @, J4 u
9 k5 s  f0 |5 i/ ?* R" m* @       个性化的文件我们已经有了,但是如何让操作系统启动的时候调用这个文件呢?其实,我在前面已经说过了,在注册表HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon值下新建一个REG_SZ的字符串值,将内容设置为C:\windows\XPGina.dll(前提是确保这个个性化文件在这个路径中,否则系统启动的时候会找不到这个文件而报错)。重新启动计算机就可以看到你的劳动成果了,很激动吧。
7 h; ?: F* ?! ~7 h9 n6 }6 Z4 ^) b& g2 d! \, Q! f3 p3 W
       操作已经接近尾声了,但是如何在公司的机器上大规模部署起来呢?总不能一个一个的去客户端做注册表修改吧?!当然不必!我们可以使用启动脚本、ADM模板来批量操作。下面我贴出我们公司目前的启动脚本文件:! s4 X- ~9 F0 N& n. _
4 h- L' E9 e: m" a) `7 ]! w
    @echo off
9 F! D: P  M( k2 y" E    if exist c:\windows\XPGina.dll (2 U: E0 G2 Y$ E0 S* `" C& U* Q1 A, M
    echo Windows Registry Editor Version 5.00 >> .\reg.reg0 z" {  A( z1 k( E+ M
    echo . >> .\reg.reg
# h/ ?2 \% w% m! C1 C' h    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg3 [, P, C# C% y0 z4 ?) d
    echo "LogonPrompt"="                         祝您工作顺心!" >> .\reg.reg
  b5 `- O( {- q1 O( ]- a. H' l. F. c    echo "Welcome"="(BY IT支持维护)" >> .\reg.reg
/ ~" M  h5 W0 A1 `  I* n    echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg, }; P' y) t; _4 A  C- v% b" h9 ^$ L
    regedit /s .\reg.reg
$ E  t+ ~# R8 c+ L    del /F .\reg.reg% h9 d& E1 u* x+ @3 b9 W6 q
    ) else (
5 U- g6 a% k, P9 ~! q$ s3 L    net use z: /del# g; P, P2 i& X3 V, @; p, D
    net use z: \\FileServer\\Share  "password" /user:username@yourdomain.com
3 O3 u1 H- s$ o    copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n0 e1 W5 w3 g7 P
    net use z: /del
/ B$ E: b) f' O' g) q: m  h1 M    )/ d0 S0 J1 n' y9 G, h2 ^3 {2 ~
  j1 z, L; F- I0 `# ~
       对以上批处理文件,我稍微做一下解释。大致思路是先检查C盘Windows目录下是否有XPGina.dll这个文件,如果没有就从Z盘拷贝(Z盘是从文件共享服务器FileServer上映射的一个网络驱动器),拷贝完成后再断开驱动器的映射。如果有,就导入reg.reg注册表。至于注册表中具体写的什么内容,相信大家从批处理文件中一看就可以看出来。导入完成以后就删除该注册表文件。2 i! J/ K/ Q# C1 B0 G. E

! D" Q% w. x% ?; j7 J3 l       顺便稍上40楼朋友给我们带来的删除前面注册表操作的批处理脚本,这样就可以回滚操作了,
0 J3 r. w' _- n0 b# P8 ^/ g, h4 ]2 s& f
    @echo off/ a! V9 [. b% n5 d6 A0 l! x$ l
    if exist %SystemRoot%\XPGina.dll (% t9 d4 w; x# G3 @( P1 K0 C  O* O% O
    echo Windows Registry Editor Version 5.00 >> .\reg.reg4 X5 r8 E$ E& ?/ @  M9 p& Z7 G
    echo . >> .\reg.reg* p1 ~. t; N" N# V1 E" w
    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
- n% E) g. }$ N* @% {$ F% S    echo "LogonPrompt"=- >> .\reg.reg5 I7 E, M4 K# F, u/ t. ]- c3 N
    echo "Welcome"=- >> .\reg.reg$ M* @5 P+ H/ a
    echo "GinaDLL"=- >> .\reg.reg
& ?9 H: |7 L& K3 O# b    regedit /s .\reg.reg
2 {) ^0 c! h+ X7 {. u' B    del /F .\reg.reg
0 N4 N7 {' O- {$ e9 ^& }    ) else (! L% R( i( F# Q5 y$ j5 a" \
    del "%SystemRoot%\XPGina.dll" /F
% i4 `, R  l0 F/ c8 _    )
1 Z! @; x/ h% U* W4 \* j  M9 v& o" h, T; X6 v) x% r, c
       最后,整个操作步骤我还想补充几点说明:, J# q' [' A' Q
/ E3 v! v. [9 H- T4 F/ l! [$ P7 D
       1.        操作系统不同,需要替换的位图文件的位置也不同,例如,XP是替换101和107,而2003就未必是这个地方了。不要试图用XP的GINADLL文件用在2003上,否则2003的登录界面很难看,其实也说不上难看,只是图片不是我们预期的图片。/ I# L5 m! c1 {
8 f, o$ b! h: m* i. A
       2.        在批量实施的时候,请用启动或关机脚本。否则可能会因为权限问题,无法写进注册表数据。
& P( t& d; s8 [; x5 W. y5 K* f  \& \0 b# R5 o0 e
       3.        在纯安全模式下,个性化界面不会生效。这也就给了当我们遇到第4点中的问题时提供了操作可能。
+ \+ v& j6 ^' e, F* b9 _; I: C1 F2 ?$ ?
       4.        如果遇到应用错误或者不想使用个性化登录界面,请直接删除注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新启动计算机就行了。# [4 ~3 U9 E- |5 A6 X2 j* t
, h9 p( z: q6 P
       OK,整个步骤到此就结束了,虽然没有什么技术含量,但是我敢保证,如果你在公司所有的计算机上都个性化了登录界面,例如加上公司的logo,那么一定会给同事们或老板耳目为之一新的感觉。记得有家公司来我们公司参观的时候,看到个性化登录界面后,问我们公司是不是和番茄花园合作,做了系统美化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 18:09

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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