|
論壇說明 | 標記討論區已讀 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2006-08-29, 08:39 AM | #1 |
榮譽會員
|
系統 - 自動恢復系統服務「一招制敵」
自動恢復系統服務「一招制敵」
安裝好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 上述代碼可以到http://www.newhua.com/cfan/200418/savestate.rar下載,它可以產生一個恢復到系統服務預定狀態的批處理文件,文件名中包含當前的日期。這樣,一旦因為修改系統服務出現故障,可以執行這個恢復程式,就能把系統服務恢復到安全狀態了。 產生的批處理文件是下面的樣子: @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 執行這個文件之後,系統服務就恢復到啟動狀態了,如圖,很方便吧? |
__________________ |
|
送花文章: 3,
|