找回密码
 注册

QQ登录

只需一步,快速开始

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

[复制链接]
发表于 2009-4-16 10:26:35 | 显示全部楼层 |阅读模式
出处:中国IT实验室- S8 ^* u2 q( r1 ?( e2 Z

1 ^2 U# \0 }2 x. P& v) ]       个性化Windows XP客户端的登录界面     一般来说,XP客户端登录界面分为两种,一种是使用“欢迎屏幕”;另一种是不使用“欢迎屏幕”的经典登录界面。大家都知道,XP系统一旦加入域后,就不再使用“欢迎屏幕”。所以,今天我们就来讨论一下如何个性化域中的XP登录界面。4 w7 W, n6 Q/ `* z. X% k" v2 R

9 |+ c* i3 ^) L! V- I# }       先让大家先看一下,我们公司现在和以前使用过的XP个性化登录界面。如图1 2
6 f6 g6 F" Q9 v4 J  d) t  a! V' O! B, a9 \6 N% t/ G  j' |
       是不是还不错呢?其实做法很简单,下面我就一步一步来和大家分享一下如何操作
  f+ P$ }- |  X) {' j2 `7 w3 Q    ) n2 X5 }" }" z) S
" T3 I! l% L8 C. L9 @
0 p: U; A$ H2 }7 k. {, l$ C2 _: W

; A" o( p5 Z6 f4 c# _! g2 z+ v3 o% x3 L, v/ {0 ^
       在正式操作之前,我想先和大家介绍一下Gina这个东西。为什么要介绍这个呢?因为我们今天做的个性化设置就是修改Gina来实现的。它是干什么用的呢?一言以蔽之,它是专门用来进行登录进程的验证和身份验证的。从它的英文全称Graphical Identification and Authentication(图形标识和身份验证)就可以看出它的用途。Gina的功能实现是依靠C:\WINDOWS\system32\msgina.dll这个动态链接文件来实现的。这个文件包含了默认的Windows登录界面。可以自己开发GINA DLL,以实现其他的身份验证方法,例如某些磁卡、智能卡验证、动态令牌验证等。我们今天就准备修改这个文件的内容来达到个性化的目的。不过这个文件是受保护的系统文件,想要彻底修改替换它也不怎么容易。需要借助故障恢复控制台、PE系统或者类似NTFSDOS的工具来实现,比较麻烦,而且极有可能影响系统的稳定。这种做法不值得推荐给大家。
5 ~: x# Y) B& _  k! V1 o- j+ C: v8 s5 H. t. o, k
       不过微软还算厚道,在注册表里留了一个位置用于安装GINA,在HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon下设置GINADLL为你指定的GINA DLL,(注意:GINADLL这个值缺省没有,需要新建)如果设置了这个值,系统会先调用该GINA,而不会调用缺省的msGINA.dll。
  R! ~0 T& f8 z- B$ i7 i; a# c+ c5 H# b( ]7 z: Q$ Q
       OK,下面是具体操作步骤:- p' m% [9 N% G5 V( o5 i
       1.        将XP系统中的C:\WINDOWS\system32\msgina.dll这个文件复制一份出来,用于编辑之用,并且重命名为重命名为XPGina.dll(名字随便取啦)
! G; J! e! a0 u, Z& C% u& O& y: g, }4 r) d6 j5 Q
       2.        用ResHacker或者Exescope(我这里使用ResHacker给大家做演示)打开XPGina.dll后,展开“位图”,在“101”,“107”下面均有个“2052”。如图3所示
: }# h0 C5 C4 D9 f5 i% h* H8 k- c& Y' ^' D/ P7 X
       3.        我们的目标就是替换这两个地方的图片。其中101处的图片大小为 413*72,用于用户登录过程和锁定画面;107 则是个较大的位图,格式为 413*88,用于登陆验证的画面。请尽量保持新图片的大小和系统自带图片大小的一致性,否则很影响美观性。
* k- U9 X. [! d" M& `
; C5 t2 o4 U9 k9 C* W8 }7 ]       4.        我以101为例来说明如何替换这个图片。点击ResHacker的“操作”按钮,选择“替换位图”。如图4.
9 R1 F: {% _5 K
/ B/ y" V9 ^) `# Z# e              然后选择“打开新位图文件”,打开你事先准备好的,经过你无限创意的位图图片(大小413*72),点击“替换即可”。如图5和6。
$ D$ \* Z$ ?$ C9 D! |       5.        107的替换步骤就不再赘述了,和前面的操作步骤完全一样。只不过图片选择413*88的那张。, Z, I, y0 J" @4 {% N
9 G7 O! J! u7 h1 u
       6.        全部修改完以后,点击ResHacker的“文件”,“保存”即可。这样,这个文件就被我们处理好了。
9 T( g( I6 v( I+ u0 z  O" \   5 t' {2 ?9 A! x9 a

: `7 z1 X* b1 W# o/ d5 p0 p/ g# ?: I$ T" J1 I% T6 V3 t* P

/ M0 k5 F& V: K; W& d9 h, J! H& y; m
# o9 I' N1 Y9 j4 [0 h1 w; j

8 i+ p5 R0 Z3 x) v1 K# R% ~  1 M4 b' b! a) a6 q- W& e

/ C+ P1 ?3 |8 B" r8 O" R" ^
8 {8 W, D4 y* p. k+ Y0 \8 O       个性化的文件我们已经有了,但是如何让操作系统启动的时候调用这个文件呢?其实,我在前面已经说过了,在注册表HKLM\Software\MicrosoftWindows NT\CurrentVersion\Winlogon值下新建一个REG_SZ的字符串值,将内容设置为C:\windows\XPGina.dll(前提是确保这个个性化文件在这个路径中,否则系统启动的时候会找不到这个文件而报错)。重新启动计算机就可以看到你的劳动成果了,很激动吧。" [( ~4 E5 ?) p6 O
) z2 ]/ F) i: f, w2 n4 k
       操作已经接近尾声了,但是如何在公司的机器上大规模部署起来呢?总不能一个一个的去客户端做注册表修改吧?!当然不必!我们可以使用启动脚本、ADM模板来批量操作。下面我贴出我们公司目前的启动脚本文件:
& P0 L" M. }2 ~1 s# J* p  F  j6 Q7 w. }# `, o. D
    @echo off* K7 Z/ I# `; |+ N9 a
    if exist c:\windows\XPGina.dll (: k6 O$ l. X( Z, t! c4 V
    echo Windows Registry Editor Version 5.00 >> .\reg.reg, ~3 S' B& Q% i4 e' _8 n
    echo . >> .\reg.reg
& {& P4 R+ @$ L& t    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg
# o2 j/ p$ u7 Z$ ?0 c  z    echo "LogonPrompt"="                         祝您工作顺心!" >> .\reg.reg$ S0 Q+ X1 ]: ?7 J- Z1 F
    echo "Welcome"="(BY IT支持维护)" >> .\reg.reg* k2 |2 f# Y' g1 G% J9 q- M
    echo "GinaDLL"="c:\\windows\\XPGina.dll" >> .\reg.reg! T+ Z3 T* ^% z. w$ F. @2 A& P, K
    regedit /s .\reg.reg9 Q6 S: B  g7 L2 R7 x
    del /F .\reg.reg/ i. y) V% b# [1 Z
    ) else (
6 D+ Y, G$ c5 I- @3 v% D4 K    net use z: /del8 R0 O/ P9 o% p2 L. j
    net use z: \\FileServer\\Share  "password" /user:username@yourdomain.com
% p/ @% T) Q2 @+ b) b. I    copy z:\ XPGina.dll "c:\windows\XPGina.dll" /n
% _3 C, y% G0 j* W! D9 \    net use z: /del7 U" a2 l: X2 F7 a; S
    )
0 P8 y. j  }8 z7 j1 O' F- d" h  [8 W8 Q) g9 n% h) l
       对以上批处理文件,我稍微做一下解释。大致思路是先检查C盘Windows目录下是否有XPGina.dll这个文件,如果没有就从Z盘拷贝(Z盘是从文件共享服务器FileServer上映射的一个网络驱动器),拷贝完成后再断开驱动器的映射。如果有,就导入reg.reg注册表。至于注册表中具体写的什么内容,相信大家从批处理文件中一看就可以看出来。导入完成以后就删除该注册表文件。
( }0 K6 J( }2 L  C5 L- s" O
/ T# D* D6 X9 g$ P       顺便稍上40楼朋友给我们带来的删除前面注册表操作的批处理脚本,这样就可以回滚操作了,  A: c; r+ Q% j7 P7 `) V1 e, n
" q' ^3 \# I7 O* o7 u- q' G( U
    @echo off
, |! D* R# s- \+ [    if exist %SystemRoot%\XPGina.dll (
, _( P1 T0 }, C% J    echo Windows Registry Editor Version 5.00 >> .\reg.reg- ~( j4 u2 V& Y# T4 P% S
    echo . >> .\reg.reg' _7 V2 J# C4 J: x3 |
    echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >> .\reg.reg/ [! B5 O6 Z( A, Z4 C
    echo "LogonPrompt"=- >> .\reg.reg! O. a/ f) g# n7 G) V
    echo "Welcome"=- >> .\reg.reg
* s1 r4 R- k% t! f& ?' c; [    echo "GinaDLL"=- >> .\reg.reg
- h9 b: j  t; j; i% ^" L    regedit /s .\reg.reg
0 e8 {$ T& l4 _0 R! s! ~    del /F .\reg.reg
  H7 P4 U8 y& d- \2 m  v" {0 R  A    ) else (6 h7 D5 y1 S) x: }- b
    del "%SystemRoot%\XPGina.dll" /F
2 k. |* L/ Y# `. r    )
; Y5 S9 \: s( r* T1 l4 M7 T- |! f4 k
  y% T: M6 x, `' w       最后,整个操作步骤我还想补充几点说明:
- S/ N8 H' `) P
; f8 Q! e/ G* x  E4 j8 @       1.        操作系统不同,需要替换的位图文件的位置也不同,例如,XP是替换101和107,而2003就未必是这个地方了。不要试图用XP的GINADLL文件用在2003上,否则2003的登录界面很难看,其实也说不上难看,只是图片不是我们预期的图片。' {/ G$ E0 m* U9 F& s# i
8 u4 O$ s7 e9 v, H. ~! f# V& u
       2.        在批量实施的时候,请用启动或关机脚本。否则可能会因为权限问题,无法写进注册表数据。
5 R) @* {9 {# S# _( w
& ^  u! A, p! ~2 i- X( v       3.        在纯安全模式下,个性化界面不会生效。这也就给了当我们遇到第4点中的问题时提供了操作可能。! p( \8 k; m- H$ Y! h  U' @

; W3 R# c4 J, ~* |1 y       4.        如果遇到应用错误或者不想使用个性化登录界面,请直接删除注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的GinaDLL。重新启动计算机就行了。0 f1 G7 _) m( Y- _+ j: Z* y

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

本版积分规则

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

GMT+8, 2025-8-2 14:13

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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