|
经过长时间的试验,终于找到了WIN7PE下开启Aero特效的方法,经过这段时间的验证,证明这方法比较完美了,现在公布出来,供广大网友参考:
WIN7的Aero效果可以参见http://bbs.wuyou.net/forum.php?mod=viewthread&tid=206755&extra=page%3D1
1. WIN7PE 开启 Aero 特效所必备的条件
WIN7PE 32 位,理论上支持64位,未经试验
PE不能太过精简,至少要能驱动显卡,至少要能使用UX开启Basic主题
PE要有完整的主题支持组件,右键个性化里要能切换主题,PE要能识别主题文件(.theme),要能通过双击主题文件切换到指定的主题
PE要有UxSms服务(Desktop Window Manager Session Manager)
PE要能切换用户,即能够正常注销,能够正常切换用户,要有内置的Administrator用户,并且能登入Administrator用户的桌面
PE要加入tsdiscon.exe到System32(可以从正常系统中复制)文件,并且执行tsdiscon.exe要能够出现登录界面
目前我所知道的玄天的WIN7PE满足以上条件,对于注销很慢的问题,针对玄天的WIN7PE已经有完美的解决办法,但对其他PE是否有效,有待验证
2. WIN7PE 开启 Aero 特效的原理与思路
a.断开终端连接
微软对主题的限制很多,对于PE就更多了,就算使用UX破解主题服务,也只能开启Basic主题,要想开启Aero主题,必须有用户帐户登陆才行,现在的PE都是SYSTEM帐户登陆的,而SYSTEM帐户是系统帐户,所以在SYSTEM帐户下是开不了Aero的,所以需要切换用户到Administrator用户,首先需要断开终端连接,进入登录界面
这里用到的第一个程序:tsdiscon.exe,这个程序是命令行模式下用来断开终端连接的,运行这个命令,将会断开终端连接,进入登录界面
b.自动登陆
这一步不是必须的,在上一步断开终端连接,进入登录界面后,用户可以点击Administrator用户登陆到Administrator用户桌面,如果想要实现自动化登陆,需要修改以下注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoAdminLogon=1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName=LsaSetupDomain\Administrator
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultPassword=""
当然,如果登陆界面不需要显示GUEST用户,可以
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList\Guest=0
c.恢复SYSTEM权限
PE的一个最大的优势就是拥有无上的SYSTEM权限,可以为所欲为不受限制,但是登陆到Administrator用户后才发现,Administrator用户的权限没有想象的那么大,很多事情做起来碍手碍脚的,很不爽;另外,Administrator用户的桌面黑漆漆一片,不能设置背景,开始菜单的搜索无效,窗口字体既小又丑陋无比,右键菜单也显示不正常,所以需要切换回SYSTEM用户的SHELL,恢复PE的原貌:
下面,请psexec.exe隆重登场(大家鼓掌欢迎),psexec.exe,来自于微软的官方网站,是一个系统辅助工具,可以用别的用户身份运行程序,这里只要杀死Administrator用户的EXPLORER,然后用psexec.exe使用SYSTEM身份运行EXPLORER,即可再次拥有无上的SYSTEM权限,并且拥有原来PE可爱的桌面
命令:
KILL explorer.exe
EXEC !=psexec -i -d -s %SystemRoot%\explorer.exe
psexec.exe首次运行会弹出同意的窗口,为了去掉他,需要事先修改以下注册表:
HKEY_CURRENT_USER\Software\Sysinternals\PsExec\EulaAccepted=#1
d.修复注销后重登陆,丑陋的Administrator用户又回来了的问题
虽然前面一步恢复了原来PE可爱的桌面,但是当用户注销后重登陆时,丑陋的Administrator用户又回来了,为此,需要添加一个注册表项,让上一步的命令在登陆后,显示桌面前执行,这里选中了HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce,因为RunOnce是登陆后,显示桌面前执行的,而Run是显示桌面后执行的,为了把丑陋的Administrator用户隐藏起来,所以选用了RunOnce(需要RunOnce.exe)
代码:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Init=PECMD.EXE LOAD X:\windows\System32\init.ini
其中init.ini就是c步骤的内容
但是这里又有一个问题,因为系统在执行RunOnce的命令后会把这条注册表删掉的,所以需要再启动一个PECMD进程,恢复RunOnce注册表项目
所以,init内容大体如下:
KILL explorer.exe
WALL %SystemRoot%\Web\Wallpaper\Windows\img0.jpg
EXEC !=psexec -i -d -s %SystemRoot%\explorer.exe
EXEC !=psexec -i -d -s PECMD.EXE LOAD %SystemRoot%\system32\logon.ini
logon.ini内容大体如下:
REGI HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Init=PECMD.EXE LOAD %SystemRoot%\System32\init.ini
e.开启Aero
经过前面的折腾,PE已经具备开启Aero的基本条件了,只要驱动好显卡,切换主题到aero.theme即可,为了实现自动化开启Aero
init还要加一句:
EXEC !=psexec -i -d -s PECMD.EXE EXEC @%SystemRoot%\explorer.exe %SystemRoot%\Resources\Themes\aero.theme
这样就切换主题到了aero.theme,但是在任务管理器里会有一个个性化的窗口,一直显示,所以在logon.ini里加一句,把它KILL掉:
WAIT 10000
EXEC @=PECMD KILL \个性化
咦?Aero还是没有开启,不着急,重启一下UxSms服务即可:
EXEC !=net stop UxSms
EXEC !=net start UxSms
d.其他小问题
启用Aero后发现拖动窗口时窗口周围有黑框,窗口并不实时移动,为了解决这个问题,让我绞尽脑汁,最终有了一个解决办法:
EXEC !dragwin.exe
dragwin.exe是我用汇编写的一个小程序,用于开启拖动窗体时显示窗体内容
启用Aero后发现ClearType字体没有启用,为了解决这个问题,我的脑汁又被绞尽了一次,最终有了一个解决办法:
EXEC !opencleartype.exe
opencleartype.exe是我用汇编写的一个小程序,用于开启cleartype效果
玄天的WIN7PE运行切换用户,或者执行tsdiscon.exe暴慢无比的问题:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\gpsvc\Start=3
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TrustedInstaller\Start=3
3. WIN7PE 开启 Aero 特效的方法总结
a.增加文件:
X:\Windows\system32\tsdiscon.exe
X:\Windows\system32\psexec.exe
X:\Windows\system32\runonce.exe
X:\Windows\system32\dragwin.exe
X:\Windows\system32\opencleartype.exe
X:\Windows\system32\init.ini
X:\Windows\system32\logon.ini
X:\Windows\system32\aero.ini
b.修改注册表:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\gpsvc\Start=3
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TrustedInstaller\Start=3
c.修改PECMD.ini文件
删除:
SHEL EXPLORER.EXE或者类似的命令
增加:
REGI HKCU\Software\Sysinternals\PsExec\EulaAccepted=#1
REGI HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Init=PECMD.EXE LOAD %SystemRoot%\System32\init.ini
REGI HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList\Guest=#0
REGI HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoAdminLogon=1
REGI HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName=LsaSetupDomain\Administrator
REGI HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultPassword=""
EXEC !=net start gpsvc
//用户登录界面
EXEC !%SystemRoot%\System32\tsdiscon.exe
4. 附件
附件.zip
(236.26 KB, 下载次数: 830)
[ 本帖最后由 smine 于 2012-4-3 12:10 编辑 ] |
评分
-
查看全部评分
|