找回密码
 注册

QQ登录

只需一步,快速开始

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

[复制链接]
发表于 2009-4-16 10:26:35 | 显示全部楼层 |阅读模式
出处:中国IT实验室4 G( V: `: O1 ], W0 {' r
6 w: t" t' ?  t. G, N( O
       个性化Windows XP客户端的登录界面     一般来说,XP客户端登录界面分为两种,一种是使用“欢迎屏幕”;另一种是不使用“欢迎屏幕”的经典登录界面。大家都知道,XP系统一旦加入域后,就不再使用“欢迎屏幕”。所以,今天我们就来讨论一下如何个性化域中的XP登录界面。
) o2 p- g. X  [/ v0 b5 R' Z: z/ I# m
% _+ w  [2 O5 a       先让大家先看一下,我们公司现在和以前使用过的XP个性化登录界面。如图1 2
/ @' I6 v6 a# c8 ~# K7 k9 R0 ]" G. ]" Y6 v8 L) F6 I
       是不是还不错呢?其实做法很简单,下面我就一步一步来和大家分享一下如何操作
$ C  y' H/ E9 L8 z  A) _0 h" r    % [% K( C8 I/ Q. s

: |: Q+ y# d' E6 s( |4 X
: |( }1 B! h/ q* N/ X2 g
- h$ R! K7 M; C) X

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

( b7 m3 m2 |% e1 S       2.        用ResHacker或者Exescope(我这里使用ResHacker给大家做演示)打开XPGina.dll后,展开“位图”,在“101”,“107”下面均有个“2052”。如图3所示
, X! r- _2 M. }- I8 W6 |) J( c4 L5 Q  g0 U) C6 {
       3.        我们的目标就是替换这两个地方的图片。其中101处的图片大小为 413*72,用于用户登录过程和锁定画面;107 则是个较大的位图,格式为 413*88,用于登陆验证的画面。请尽量保持新图片的大小和系统自带图片大小的一致性,否则很影响美观性。
% C% p; Q( J7 e& k! i  c" _: n5 `, O. ^9 h8 F' v- u: A
       4.        我以101为例来说明如何替换这个图片。点击ResHacker的“操作”按钮,选择“替换位图”。如图4.
- k" f7 c3 b& p
- b* @4 @8 w8 G# B4 K. a& e: M2 ~              然后选择“打开新位图文件”,打开你事先准备好的,经过你无限创意的位图图片(大小413*72),点击“替换即可”。如图5和6。/ f3 o8 U+ C  e8 T1 K. W! D
       5.        107的替换步骤就不再赘述了,和前面的操作步骤完全一样。只不过图片选择413*88的那张。
- ]) Y0 I- Q  s* U. n# U! e* n$ Q- M1 P
       6.        全部修改完以后,点击ResHacker的“文件”,“保存”即可。这样,这个文件就被我们处理好了。 ' ^2 e* K/ f/ W) D# D4 j2 T' J
   " P# ~6 F7 m! A

1 g2 F: G1 ~  j$ X
6 _% Z3 F) W' J% E7 E. S6 r# F
+ B, j  Q2 m! f# U/ l3 n

4 [& w) p* q0 O
+ y3 j0 C4 @0 {, r
  " p3 n( q: k8 F+ K5 Y

& q$ p7 d! @2 H' ]
( [3 Q/ h6 n! i. n" O9 j& X7 S       个性化的文件我们已经有了,但是如何让操作系统启动的时候调用这个文件呢?其实,我在前面已经说过了,在注册表HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon值下新建一个REG_SZ的字符串值,将内容设置为C:\windows\XPGina.dll(前提是确保这个个性化文件在这个路径中,否则系统启动的时候会找不到这个文件而报错)。重新启动计算机就可以看到你的劳动成果了,很激动吧。
0 H$ {8 @1 n- D/ d% G8 `9 [0 A) u  c6 D' p" a! w
       操作已经接近尾声了,但是如何在公司的机器上大规模部署起来呢?总不能一个一个的去客户端做注册表修改吧?!当然不必!我们可以使用启动脚本、ADM模板来批量操作。下面我贴出我们公司目前的启动脚本文件:
% z# ]+ I+ z+ e
( a2 t, I& [' V6 \    @echo off
! V2 V, s7 ]# r" G, [1 i% p/ h    if exist c:\windows\XPGina.dll (# M) ]8 q, L+ P; Y) |2 w
    echo Windows Registry Editor Version 5.00 >> .\reg.reg
' B) w" F2 L. L) ~' C4 Y; W    echo . >> .\reg.reg
5 v+ W5 F! K& x" c* x' k    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg* R% y8 @% j/ A0 W) S# ]$ A
    echo "LogonPrompt"="                         祝您工作顺心!" >> .\reg.reg0 h6 O  W/ Y9 c$ O5 U
    echo "Welcome"="(BY IT支持维护)" >> .\reg.reg+ o1 [6 n3 R8 ?# ^6 o0 K
    echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg* N- O( N+ O- R$ c& U
    regedit /s .\reg.reg" r0 |# U; A. D) S! z
    del /F .\reg.reg) {4 ~. V6 l! E) f" `
    ) else (
. b* c/ M/ `; ?    net use z: /del
! a4 P9 W0 F  o2 W    net use z: \\FileServer\\Share  "password" /user:username@yourdomain.com
9 |* ]5 B: ?9 T# s! _    copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n
2 X+ }8 W2 j7 v1 G1 C4 h    net use z: /del0 ~7 ?; l1 R+ z0 J- o( v6 T
    )7 L3 `& p9 r+ O9 h0 ]: j' }& ~/ g2 m
% T, z$ D7 z6 E9 A) o
       对以上批处理文件,我稍微做一下解释。大致思路是先检查C盘Windows目录下是否有XPGina.dll这个文件,如果没有就从Z盘拷贝(Z盘是从文件共享服务器FileServer上映射的一个网络驱动器),拷贝完成后再断开驱动器的映射。如果有,就导入reg.reg注册表。至于注册表中具体写的什么内容,相信大家从批处理文件中一看就可以看出来。导入完成以后就删除该注册表文件。
" F( E, |% q( `; W8 e3 M  f" b7 |- r( l3 C7 r
       顺便稍上40楼朋友给我们带来的删除前面注册表操作的批处理脚本,这样就可以回滚操作了,9 U) R+ N" b* |9 ]5 {9 T% Q5 E
1 [  ~, X. u. H% P& |
    @echo off
' e- t: m6 N& W    if exist %SystemRoot%\XPGina.dll (1 g$ r& K9 ~1 ]: H+ J/ P. w; K
    echo Windows Registry Editor Version 5.00 >> .\reg.reg( y0 Y( @2 e4 ^( x, J3 h
    echo . >> .\reg.reg
% R: _, S" N9 h% s    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
' W8 ^2 |3 v+ x7 K    echo "LogonPrompt"=- >> .\reg.reg
3 G% q. }" O9 h) u9 c3 L    echo "Welcome"=- >> .\reg.reg
- Z0 _' K( K4 s: V% g    echo "GinaDLL"=- >> .\reg.reg
$ H( `' Z& |( {* I4 f! N* v    regedit /s .\reg.reg
3 m$ ]' |4 ^9 Y: v+ L; W: D7 f. ~    del /F .\reg.reg
# d0 X; b% U8 e2 \    ) else (
  K# h4 I) p& u    del "%SystemRoot%\XPGina.dll" /F! d* Y9 x& F) i/ u
    )
" }( v) x" y8 y" [7 x
5 j; f; v5 `0 I7 P       最后,整个操作步骤我还想补充几点说明:
5 K" P/ X% d  k5 s" K" ]8 p4 e
, U2 m7 t4 [# H# H  Q8 N       1.        操作系统不同,需要替换的位图文件的位置也不同,例如,XP是替换101和107,而2003就未必是这个地方了。不要试图用XP的GINADLL文件用在2003上,否则2003的登录界面很难看,其实也说不上难看,只是图片不是我们预期的图片。
1 w- v8 W- d& D6 Q5 A" b2 m# a
% n; }% j2 [% ~4 }& M$ G       2.        在批量实施的时候,请用启动或关机脚本。否则可能会因为权限问题,无法写进注册表数据。
+ a( d1 q4 }( s& U! b! k( i* T. |- `! c6 s2 J" _0 |) ?8 t
       3.        在纯安全模式下,个性化界面不会生效。这也就给了当我们遇到第4点中的问题时提供了操作可能。
% P  f, f6 Y" W6 V9 e- [2 o5 C* a- J( J- ~
       4.        如果遇到应用错误或者不想使用个性化登录界面,请直接删除注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新启动计算机就行了。) n9 u3 C- n* e; T

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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