-
我之前做过一段时间的企业网管,在工作中发现在AD域环境下,AD用户桌面经常会出现壁纸无法显示,ActiveDesktop桌面损坏之类的故障,当时从前人心得里学到的方法就是登入管理员,然后删除用户配置目录(%userprofile%),然后重新登入之后用户桌面就能正常了。
如此确实能修复这白屏故障桌面,但是用户的所有事设置均被重置,加大了维护工作量,这不是做维护愿意看到的,于是左查右查,我终于找到了症结所在!
原来,加入AD后,域用户的桌面都是网域服务器来配置的,而Active桌面就是从网域获取的一个叫做Desktop.htt的配置文件来控制的,每次用户环境的刷新,都会从AD服务器重新获取新的配置文件,当出现故障的时候(没深究,大概就是网域通讯之类的故障),Desktop.htt文件内容将会改变,都是无法连接之类的描述,从而造成了Active桌面故障,一片惨白!
于是,最开始就有了手动解决的办法,从正常用户环境得到正常的文件,将里面的分辨率修改成目标电脑分辨率并拷贝这个文件去覆盖损坏的desktop.htt,然后立刻设置为只读属性(否则一刷新就被损坏文件重新覆盖,从网域抓取失败时,生成的错误文件)。
问题到这里,至少有了解决办法,但是还是挺麻烦,还是不是作为超级懒人的我所要的答案,于是我就动手写个批处理好了,于是就有了下面这个代码:
@echo off color 2f mode con cols=39 lines=8 title ※白屏修复工具※ Ver 1.0 By ChenDeXin rem 获取屏幕分辨率,以便重写desktop.htt. echo Set oIE = CreateObject("htmlfile"):With oIE.parentWindow.screen:wsh.echo .width,"*",.height:End With>"%TMP%\vbs.tmp" for /f "delims=* tokens=1,2" %%i in ('cscript.exe //e:vbscript //nologo %TMP%\vbs.tmp') do ( if /i "%%i" gtr "0" set X=%%i & Set Y=%%j ) rem 生成Desktop.htt文件 echo ^<HTML^> >"%tmp%\Desktop.htt" echo ^<BODY background="" style="border:none;" bgcolor=#3A6DA6 topmargin=0 leftmargin=0 rightmargin=0 bottommargin=0^> >>"%tmp%\Desktop.htt" echo ^<DIV style="position:absolute; LEFT: 0; TOP: 0; WIDTH:%x%; HEIGHT:%Y%;"^> >>"%tmp%\Desktop.htt" echo ^<IMG src="C:\windows\web\wallpaper\youjbg.jpg" cache style="position: absolute; left:0; top:0; width: 100%%; height: 100%%;"^> >>"%tmp%\Desktop.htt" echo ^</DIV^> >>"%tmp%\Desktop.htt" echo ^</BODY^> >>"%tmp%\Desktop.htt" echo ^</HTML^> >>"%tmp%\Desktop.htt" rem 对已损坏的desktop.htt去属性处理 echo y|cacls /t /c /g "%userprofile%\Application Data\Microsoft\Internet Explorer\Desktop.htt" everyone:f attrib -r -h -S "%userprofile%\Application Data\Microsoft\Internet Explorer\Desktop.htt" >nul echo= rem 以新生成的desktop.htt覆盖 copy /y "%tmp%\Desktop.htt" "%userprofile%\Application Data\Microsoft\Internet Explorer\" attrib +r +h +s "%userprofile%\Application Data\Microsoft\Internet Explorer\Desktop.htt" >nul rem 判断桌面壁紙是否存在 if not exist "C:\windows\web\wallpaper\youjbg.jpg" ( goto Repair2 ) else ( Rundll32.exe USER32.DLL,UpdatePerUserSystemParameters Rundll32.exe USER32.DLL,UpdatePerUserSystemParameters echo= echo 桌面白屏故障修复成功! echo= echo 任意键退出... pause>NUL exit ) :Repair2 title ※修复桌面故障[桌面及壁紙]※ echo= copy /y youjpg.jpg C:\windows\web\wallpaper\youjpg.jpg 1>nul 2>NUL Rundll32.exe USER32.DLL,UpdatePerUserSystemParameters Rundll32.exe USER32.DLL,UpdatePerUserSystemParameters echo 桌面白屏及壁紙故障修复成功! echo= echo 任意键退出... pause>nul goto exit
简单说明:代码先获取屏幕分辨率,然后重新生成一个正常格式的desktop.htt文件,然后替换损坏文件并设置只读权限即可完成修复。
注意事项:
1、由于这个desktop.htt文件是设置了壁纸路径的,所以如果你要使用,请将代码中的【C:\windows\web\wallpaper\youjbg.jpg】替换成你电脑的实际图片路径。
2、而如果是公司电脑或网吧之类的,可能用的就是统一桌面壁纸了,这时你只要将我这个代码和图片放到一起,然后把youjpg.jpg修改成你的图片名称就行了!也可以打包成exe文件,更方便!后续我会再写一篇利用winrar打包批处理的教程,敬请期待!
3、此代码仅在XP环境下测试过,其他环境请先测试后再使用。
代码使用过程若有任何问题请在留言处粘贴错误信息,我会第一时间答复你!
桌面白屏(Active故障)修复批处理
1620人参与 |分类: 电脑百科|时间: 2012年10月25日
来源:陈德馨博客(微信/QQ号:35435164),转载请保留出处和链接!
相关文章
- 2020-05-09WordPress使用timthumb.php截取文章缩略图
- 2020-05-02Windows10安装软件及运行某些程序需要密码的设置方法
- 2020-04-23Win10提示某些设置由你的组织来管理怎么解决
- 2020-04-02添加dns-prefetch预解析真的可以提升网站的速度吗
- 2020-03-22PHP调用纯真IP数据库返回具体地址的方法
- 2020-03-18运行Microsoft Edge提示“以管理员身份运行 Microsoft Edge 时不支持登录。”的解决方法
- 2020-03-10笔记本预装的Office 2016家庭学生版的激活流程
- 2020-03-03如何删除Office2013中的Skydrive pro
- 2020-02-26安装原版系统怎么还带有推广软件?告诉你系统重装的各种坑
- 2020-02-12Win10连接共享打印机提示0x80070035错误的解决办法
评论专区德信商城