以下をコピペして適当なところにbatファイルとして作成
右クリックから「管理者として実行」として実行
あとは同一ディレクトリに「services.bat」が作成されるので、元に戻したい場合はそのbatを同様に「管理者として実行」として実行すればおk。
Win7で動作確認したけど多分XP~8全般で動くはず。
@echo off title Windows サービスバックアップツール echo サービスのバックアップを開始します pause echo. echo. for /f "tokens=1, 2, 3, 4 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=services.bat sc query type= service state= all | findstr /r /C:"SERVICE_NAME:" > tmpsrv.txt echo @echo バックアップ日時:%DATE% %TIME%>"services.bat" echo @pause>>"services.bat" 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>>"services.bat") echo @echo リカバリが完了しました。再起動して下さい>>"services.bat" del tmpsrv.txt del tmpstype.txt echo バックアップが完了しました。 echo リカバリする際は同一フォルダのservices.batを実行してください pause
2013年9月3日追記
改良した
@echo off
title Windows サービスバックアップツール echo サービスのバックアップを開始します pause echo. echo. cd /d %~dp0 for /f "tokens=1, 2, 3, 4 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=services.bat sc query type= service state= all | findstr /r /C:"SERVICE_NAME:" > tmpsrv.txt echo @echo off>"services.bat" echo echo バックアップ日時:%DATE% %TIME%>>"services.bat" echo pause>>"services.bat" 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>>"services.bat") echo echo リカバリが完了しました。再起動して下さい>>"services.bat" echo pause>>"services.bat" del tmpsrv.txt del tmpstype.txt echo バックアップが完了しました。 echo リカバリする際は同一フォルダのservices.batを実行してください pause