找回密码
 注册

QQ登录

只需一步,快速开始

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

[复制链接]
发表于 2009-4-16 10:26:35 | 显示全部楼层 |阅读模式
出处:中国IT实验室3 _: Q( f! M5 v! \
- q: f# U1 M9 `2 e$ V8 j; ~
       个性化Windows XP客户端的登录界面     一般来说,XP客户端登录界面分为两种,一种是使用“欢迎屏幕”;另一种是不使用“欢迎屏幕”的经典登录界面。大家都知道,XP系统一旦加入域后,就不再使用“欢迎屏幕”。所以,今天我们就来讨论一下如何个性化域中的XP登录界面。! h. y7 S2 j' [8 U" g, C/ A

( {9 O  M2 Q# |% S       先让大家先看一下,我们公司现在和以前使用过的XP个性化登录界面。如图1 2
+ O- p# x! H* u% G, ?# e. _9 @* S
       是不是还不错呢?其实做法很简单,下面我就一步一步来和大家分享一下如何操作% r5 u6 X- i* I& e' @
   
; Y7 L) H  l" _8 y3 v
- _3 B; W+ |& S- v

# o- w8 a0 l4 g9 m0 i' T# T

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

1 R; z+ f1 G$ M2 k8 b, p( g       OK,下面是具体操作步骤:  J! ]0 x2 ]2 l' v
       1.        将XP系统中的C:\WINDOWS\system32\msgina.dll这个文件复制一份出来,用于编辑之用,并且重命名为重命名为XPGina.dll(名字随便取啦)
" s% K" S0 F+ h5 z# C; X5 E. g0 i
! g* `3 y, S1 V! g: @$ P       2.        用ResHacker或者Exescope(我这里使用ResHacker给大家做演示)打开XPGina.dll后,展开“位图”,在“101”,“107”下面均有个“2052”。如图3所示
8 }- e  E" f( d9 |, N& `2 p( i6 ?: I# M7 d  ]- m& l
       3.        我们的目标就是替换这两个地方的图片。其中101处的图片大小为 413*72,用于用户登录过程和锁定画面;107 则是个较大的位图,格式为 413*88,用于登陆验证的画面。请尽量保持新图片的大小和系统自带图片大小的一致性,否则很影响美观性。8 n' g0 e8 V9 y1 ?1 ^/ t

, X6 Y4 h! V' i$ w( `. Y       4.        我以101为例来说明如何替换这个图片。点击ResHacker的“操作”按钮,选择“替换位图”。如图4.
# Z! p) t* g, W0 H% T
7 Q! N+ y# e- V2 Y5 C              然后选择“打开新位图文件”,打开你事先准备好的,经过你无限创意的位图图片(大小413*72),点击“替换即可”。如图5和6。" E# @1 }" t1 h3 T5 T  h( s" `
       5.        107的替换步骤就不再赘述了,和前面的操作步骤完全一样。只不过图片选择413*88的那张。
" j  ]% p, [6 V/ ~+ F/ K. l6 r' e7 {0 D
       6.        全部修改完以后,点击ResHacker的“文件”,“保存”即可。这样,这个文件就被我们处理好了。
5 u6 n7 O0 u4 A. b8 o6 _: C   
+ B1 t! O( d, S# |3 I
8 v$ s* I" j+ N# R' `; n, n' q
% Y0 r$ T$ s9 F9 Z* x2 m
3 s' X8 H( u4 H4 s6 N# y# G
0 {2 L" a; h5 J% U6 Q9 w8 ?) k+ |

% ~/ T0 F# E! G# g    I, p# `/ q$ F+ w+ m3 C  |% \0 ^9 _
1 |; }  a  R+ |- }5 l

- s) I( l+ l7 D& g       个性化的文件我们已经有了,但是如何让操作系统启动的时候调用这个文件呢?其实,我在前面已经说过了,在注册表HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon值下新建一个REG_SZ的字符串值,将内容设置为C:\windows\XPGina.dll(前提是确保这个个性化文件在这个路径中,否则系统启动的时候会找不到这个文件而报错)。重新启动计算机就可以看到你的劳动成果了,很激动吧。
8 w" _, H" X2 W; g8 n4 s- n" ~7 T& A8 e2 j. z" d( Q; e; B
       操作已经接近尾声了,但是如何在公司的机器上大规模部署起来呢?总不能一个一个的去客户端做注册表修改吧?!当然不必!我们可以使用启动脚本、ADM模板来批量操作。下面我贴出我们公司目前的启动脚本文件:
; U( O+ K( O4 m+ K3 i6 t; y* Y# X  R8 ]' a8 R
    @echo off
6 u8 A8 ^% b" O/ d* y    if exist c:\windows\XPGina.dll (
/ M) v, I& f) A8 v, K    echo Windows Registry Editor Version 5.00 >> .\reg.reg' ]. ?' n6 x& y8 n. K
    echo . >> .\reg.reg
8 u- ~; b3 M! G; u    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg2 d$ M! L# S- j* A
    echo "LogonPrompt"="                         祝您工作顺心!" >> .\reg.reg
" \. O4 t; W# r# Y- Y% B" ]* t' u! ~) Z    echo "Welcome"="(BY IT支持维护)" >> .\reg.reg& l* t) @& d- _7 R8 _. j0 h
    echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg! `, A! q  L5 A) G5 w5 }6 {7 q; n& i
    regedit /s .\reg.reg8 `* n) K8 r% R
    del /F .\reg.reg
7 k5 d- v$ F- m4 i* @0 Q    ) else (1 d  c; {" O: l$ ]4 B
    net use z: /del
% X  B1 c# h5 N! Z    net use z: \\FileServer\\Share  "password" /user:username@yourdomain.com
: a9 r7 ~& {% E    copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n( Y) [" B0 W, M$ s
    net use z: /del6 M4 C3 Y& u, |
    )$ p  N- }- j, x, c4 y1 x

$ v4 D- m: m) Q: U       对以上批处理文件,我稍微做一下解释。大致思路是先检查C盘Windows目录下是否有XPGina.dll这个文件,如果没有就从Z盘拷贝(Z盘是从文件共享服务器FileServer上映射的一个网络驱动器),拷贝完成后再断开驱动器的映射。如果有,就导入reg.reg注册表。至于注册表中具体写的什么内容,相信大家从批处理文件中一看就可以看出来。导入完成以后就删除该注册表文件。% S. j7 u6 L. `  l. a3 {: s
& }5 m3 e1 M' n4 x2 q9 K1 r
       顺便稍上40楼朋友给我们带来的删除前面注册表操作的批处理脚本,这样就可以回滚操作了,
+ l1 b5 P# M) d, F6 ^1 K- b, i; a8 C' `# d: ~  @6 o
    @echo off
# f9 V  E: C5 U! b! m    if exist %SystemRoot%\XPGina.dll (
; S5 s0 e+ X4 P% d4 [    echo Windows Registry Editor Version 5.00 >> .\reg.reg
- B, w1 T- E5 ^) r- k    echo . >> .\reg.reg
8 W% N3 N: D& x" a( C  J6 W    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg, F5 w5 j* W0 ?/ v% {: c. ~
    echo "LogonPrompt"=- >> .\reg.reg3 O" E7 @' w: }# u0 k
    echo "Welcome"=- >> .\reg.reg5 `3 f& l8 A4 b) e) P
    echo "GinaDLL"=- >> .\reg.reg
9 V5 ]: ^" Z1 ?2 B. b' d7 E& U    regedit /s .\reg.reg" q5 l2 R4 a1 G8 i; O
    del /F .\reg.reg" h# x5 u9 l$ U4 _
    ) else (% {, `* j  ~/ L( P* ?. N, b
    del "%SystemRoot%\XPGina.dll" /F
+ N: |& o3 A& H    )# k3 Z% _+ c, A" e* N& c

# P8 N. C/ X  j( {8 d: F! M0 r; u       最后,整个操作步骤我还想补充几点说明:
* y+ L) R( K: W, p2 A5 ?5 @& J0 P
       1.        操作系统不同,需要替换的位图文件的位置也不同,例如,XP是替换101和107,而2003就未必是这个地方了。不要试图用XP的GINADLL文件用在2003上,否则2003的登录界面很难看,其实也说不上难看,只是图片不是我们预期的图片。1 n8 X/ t8 e' h! G7 w! L* }+ n

! s% t0 y; y( @: K! w# `       2.        在批量实施的时候,请用启动或关机脚本。否则可能会因为权限问题,无法写进注册表数据。1 e& q' \2 d8 w& J# {" C; v/ f

  t2 _5 u, K: \/ _% q       3.        在纯安全模式下,个性化界面不会生效。这也就给了当我们遇到第4点中的问题时提供了操作可能。
* l% m' R0 V$ f& T
& M2 f; Q! F: L- ^       4.        如果遇到应用错误或者不想使用个性化登录界面,请直接删除注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新启动计算机就行了。  n% D* h: C$ S. B) S; M. C1 p

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

本版积分规则

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

GMT+8, 2025-12-16 16:40

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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