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
上述代碼可以到下載,它可以生成一個(gè)恢復(fù)到系統(tǒng)服務(wù)默認(rèn)狀態(tài)的批處理文件,文件名中包含當(dāng)前的日期。這樣,一旦因?yàn)樾薷南到y(tǒng)服務(wù)出現(xiàn)故障,可以運(yùn)行這個(gè)恢復(fù)程序,就能把系統(tǒng)服務(wù)恢復(fù)到安全狀態(tài)了。
生成的批處理文件是下面的樣子:
@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
運(yùn)行這個(gè)文件之后,系統(tǒng)服務(wù)就恢復(fù)到啟動(dòng)狀態(tài)了,如圖,很方便吧?