OSがオカシクなった場合、Windowsには復元ポイントって言う機能がある。ただし、しっかりと設定をしておかないと、その機能の恩恵を受けることができない。
その復元ポイントの設定をするバッチファイルを作成しました。
fukugen.bat
@echo off
cls
color 0F
REM 管理者として実行されているか確認 START
for /f "tokens=1 delims=," %%i in ('whoami /groups /FO CSV /NH') do (
if "%%~i"=="BUILTIN\Administrators" set ADMIN=yes
if "%%~i"=="Mandatory Label\High Mandatory Level" set ELEVATED=yes
)
if "%ADMIN%" neq "yes" (
echo _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
echo.
echo.
echo.
echo 管理者権限でないため終了します。
echo.
echo.
pause
exit
)
if "%ELEVATED%" neq "yes" (
rem Admin権限あリユーザが通常実行した場合(昇格しない)
echo _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
echo.
echo.
echo このファイルは管理者権限での実行が必要なため
echo.
echo 管理者へ権限を昇格します。
echo.
echo しばらくお待ちください
echo.
echo.
timeout /t 3 > nul
goto runas
)
cls
echo ■■■■■■■■■ 復元ポイントの作成 ■■■■■■■■■
echo.
echo.
echo.
echo 復元ポイントを作成しました。
echo.
powershell -Command "Enable-ComputerRestore -Drive C:"
powershell -Command "Checkpoint-Computer -Description 'RecoveryPoint' -RestorePointType 'APPLICATION_INSTALL'"
echo.
echo.
echo.
echo.
pause
exit
:runas
if "%1" == "" (
rem 引数なしのため、管理者として再実行
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process %~f0 REPEATED -Verb runas"
) else (
echo _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
echo.
echo.
echo.
echo 管理者への昇格に失敗したため終了します。
echo.
echo.
pause
exit
)
exit