障害に備えて復元ポイントを作成するバッチッファイル

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です