您当前的位置:JZ5U绿色下载站文章中心设计学院Photoshop → 文章内容
  • 自动恢复系统服务“一招制敌”

安装好Windows后,我们经常要对Windows进行调节,其中重要的一项就是关闭不必要的服务。为了节约系统资源,关闭一些无关紧要的服务确实必要。但会产生这样一个问题:如果服务被错误地关闭,而当我们后来发现问题,又找不出是哪一个服务被关闭的时候,也许我们就会想要回到以前的正常状态,然后一个个地关闭服务以便找出问题,可是又记不清每个服务的初始状态,这可就令人恼火了!

  如果能够写一个程序,记录每个服务的启动状态,并能够把系统的服务恢复到该状态就比较方便了。下面这个BAT程序,用于记录并恢复服务的启动状态,使用了sc命令(Windows XP/2003自带,Windows 2000系统用户可以从Windows XP复制一个sc.exe就可以用了)

  该程序的优点是:生成的记录文件是一个批处理文件,直接运行就可以恢复系统服务的启动状态。

  下面是批处理文件的代码,存储为savestate.bat就可以了,双击后运行,会自动产生一个以当前时间和日期文件名字的记录文件。

@echo off
rem get current date and time
for /f "tokens=1,2,3 delims=-/. " %%j in ('Date /T') do set FILENAME=srv_%%j_%%k_%%l_%%m
for /f "tokens=1,2 delims=: " %%j in ('TIME /T') do set FILENAME=%FILENAME%_%%j_%%k.bat

rem get all service name
sc query type= service state= all| findstr /r /C:"SERVICE_NAME:" >tmpsrv.txt
echo Save Service Start State In %FILENAME%
rem save service start state into batch file
rem

echo @echo Restore The Service Start State Saved At %TIME% %DATE% >"%FILENAME%"
echo @pause >>"%FILENAME%"

for /f "tokens=2 delims=:" %%j in (tmpsrv.txt) do @( sc qc %%j |findstr START_TYPE >tmpstype.txt && for /f "tokens=4 delims=:_ " %%s in ( tmpstype.txt) do @echo sc config %%j start= %%s >>"%FILENAME%")
echo @pause >>"%FILENAME%"

del tmpsrv.txt
del tmpstype.txt

  上述代码可以到下载,它可以生成一个恢复到系统服务默认状态的批处理文件,文件名中包含当前的日期。这样,一旦因为修改系统服务出现故障,可以运行这个恢复程序,就能把系统服务恢复到安全状态了。



  生成的批处理文件是下面的样子:

@echo Restore The Service Start State Saved At 21:44:39.67 2004-08-12 星期四
@pause
sc config Alerter start= DISABLED
sc config ALG start= DEMAND
.
.
.
sc config wuauserv start= DISABLED
sc config WZCSVC start= DISABLED
@pause

  运行这个文件之后,系统服务就恢复到启动状态了,如图,很方便吧?


  • 作者:互联网  来源:本站整理  发布时间:2006-08-28 07:03:58


------------------------------- · 相关文档浏览 · --------------------------------------------------------------------- · 热门文档浏览 · -------------------------------------