Windows 운영 체제에서는 사용자의 편의와 시스템의 안정성을 위해 시스템 보호 기능을 제공하며 복원 지점을 구성하게 되면 시스템의 중요한 변경 사항이 발생할 때 자동으로 복원 지점을 생성하는 것입니다. 복원 지점은 시스템 설정이나 애플리케이션 설치와 같은 중요한 변경 사항이 발생했을 때 이를 기록하여, 필요한 경우 이전 상태로 시스템을 복원할 수 있는 체크포인트 역할을 합니다.
하지만, 시스템이 자동으로 복원 지점을 생성하는 정확한 시점을 사용자가 파악하기는 어려운데요. 이로 인해, 사용자가 시스템을 자주 수정하거나 특정 이벤트, 예를 들어 사용자의 로그인 시에 맞춰 복원 지점을 생성하고 싶어하는 경우가 있을 수 있습니다. 특히, 시스템을 자주 수정하는 사용자나 특정 이벤트가 발생했을 때 복원 지점을 생성하고 싶어하는 사용자의 경우 이러한 자동 생성 방식으로는 충분하지 않을 수 있습니다.
예를 들어, 사용자가 Windows에 로그인할 때 마다 복원 지점을 생성하는 것 처럼, 보다 더 세밀하게 원하는 타이밍에 복원 지점을 생성하고자 하고 싶은 경우 다음과 같이 복원 지점을 생성하는 스크립트를 작성하고, 해당 스크립트를 사용자 로그인 이벤트에 연결하면 정확하게 로그인 시점에 복원 지점을 만들 수 있습니다.
튜토리얼 환경: 윈도우 11 Pro (빌드: 22631.3296)
PowerShell 스크립트 생성
Windows에 로그인할 때마다 자동으로 복원 지점을 만들기 위해서는 스크립트를 작성
메모장 또는 사용 중인 에디터를 열고 다음 명령을 작성하거나 붙여넣기( Ctrl + V )하고 CreateRestorePoint.ps1
와 같이 파일이름.ps1
형태로 저장합니다. 이때 파일 유형을 모든 파일로 선택하여 확장자가 .txt로 자동 변경되는 것을 방지하세요.
Checkpoint-Computer -Description "LoginRestorePoint" -RestorePointType "APPLICATION_INSTALL"
위 명령은 다음과 같이 동작하게 됩니다.
Checkpoint-Computer
: 이 명령은 현재 컴퓨터의 상태에 대한 복원 지점을 생성합니다.-Description LoginRestorePoint
: 이 옵션은 복원 지점의 설명을 지정합니다. 여기서는LoginRestorePoint
라는 설명이 사용되었습니다. 이 부분은 필요에 따라 다른 이름으로 변경할 수 있습니다.-RestorePointType APPLICATION_INSTALL
: 이 옵션은 복원 지점의 유형을 지정합니다. 여기서는APPLICATION_INSTAL
L이라는 유형이 사용되었습니다. 이것은 응용 프로그램을 설치할 때 생성되는 복원 지점 유형을 나타냅니다. 이것도 필요에 따라 다른 유형으로 변경할 수 있습니다.
필요한 경우 다음과 같이 작성하면 매번 스크립트가 실행될 때마다 자동으로 생성되는 복원 지점의 이름이 현재 날짜를 반영하게 되어, 복원 지점들을 더 쉽게 식별하고 관리할 수 있게 됩니다.
# 현재 날짜를 YYYYMMDD 형식으로 가져오기
$date = Get-Date -Format "yyyyMMdd"
# 날짜를 복원 지점 설명에 포함
Checkpoint-Computer -Description "LoginRestorePoint_$date" -RestorePointType "APPLICATION_INSTALL"
복원 지점 생성 빈도 수정(선택사항)
Windows 시스템에서는 기본적으로 24시간(1440분) 내에 하나의 시스템 복원 지점만 생성할 수 있도록 설정되어 있습니다. 이는 시스템 리소스와 저장 공간을 효율적으로 관리하기 위한 조치로 명령 줄에서 실행 시 위와 같은 경고가 표시됩니다. 따라서, 24시간 보다 더 짧은 시간 마다 복원 지점을 만들고 싶다면 경고의 안내에 따라 이 간격을 짧게 지정하도록 수정해야 합니다. 자세한 수정 과정은 Windows 시스템 보호 복원 지점 생성 간격을 24시간 보다 줄이는 방법 문서에서 확인할 수 있습니다.
작업 스케줄러를 사용하여 로그인 시 스크립트 실행
앞서 생성한 스크립트를 사용자 로그인 이벤트에 연결해야 하는데 Microsoft Windows 운영 체제에서는 사용자가 특정 시간에 자동으로 실행되도록 프로그램이나 스크립트를 예약할 수 있게 해주는 시스템 도구인 작업 스케줄러를 통해 이를 손쉽게 구성할 수 있습니다. 작업 스케줄러를 이용한 특정 프로그램 자동으로 실행 종료 방법 알아보기
작업 표시줄의 검색 필드에 작업 스케줄러
키워드로 검색하면 가장 정확에 작업 스케줄러가 표시되는데 해당 항목을 클릭하거나 우측 를 클릭합니다.
작업 스케줄러가 실행 되면 새로운 스케줄 작업을 생성하기 위해 좌측 사이드 바에서 작업 스케줄러 라이브러리를 마우스 오른쪽 버튼으로 클릭해 메뉴를 확장 후 을 선택합니다.
첫 단계는 실행 방식, 보안 수준, 실행 조건 등 작업의 기본적인 옵션을 지정할 수 있는 일반 탭이 열리게 되는데 여기서 상단의 필드에 작업의 이름을 입력합니다. 본문에서는 LoginRestorePoint와 같이 작성했습니다. 이어서 보안 옵션에서 을 체크해 해당 작업이 관리자 권한으로 수행되도록 구성합니다.
다시 상단 탭을 트리거 로 이동한 뒤 를 클릭합니다. 트리거에서는 작업이 실행되는 상황(이벤트)를 정의할 수 있습니다.
새 트리거 만들기라는 창이 새롭게 열리게 되는데 여기서 상단 의 드롭다운 목록에서 를 선택한 뒤 아래 을 클릭합니다. 필요한 경우 특정 사용자 또는 모든 사용자를 선택할 수도 있습니다.
다시 상단 탭을 동작 으로 이동한 뒤 를 클릭합니다. 동작에서는 앞선 트리거 상황에서 실행할 작업을 지정할 수 있습니다. 여기서는 시스템 복원 지점을 생성하는 명령을 실행하도록 구성해야 합니다.
새 동작 만들기 창이 열리면 이 으로 선택되었는지 확인하고, 에 powershell.exe
을 입력합니다. 에는 아래 코드 블럭의 값에서 스크립트 파일 경로\CreateRestorePoint.ps1값을 자신의 파일 경로로 수정한 후 입력합니다. 만약 바탕화면에 파일이 위치한다면 -ExecutionPolicy Bypass -File "$env:UserProfile\Desktop\CreateRestorePoint.ps1"
와 같이 지정합니다. 모두 입력 후 을 눌러 주면 설정이 모두 완료됩니다.
-ExecutionPolicy Bypass -File "스크립트 파일 경로\CreateRestorePoint.ps1"
적용 결과 확인
위 작업 후 장치를 재시동 하거나 작업 스케줄러에서 직접 실행하고 복원 지점이 생성되는지 결과를 확인할 수 있습니다.
생성한 스케줄을 마우스 오른쪽 버튼으로 클릭해 메뉴를 열고
을 선택하면 해당 스크립트가 바로 실행됩니다.Windows PowerShell을 열고 다음 명령어를 명령줄에 작성하거나 붙여넣기( Ctrl + V )한 뒤 Enter키로 실행하면 위 그림과 같이 지정한 형식으로 복원 지점이 만들어진 것을 확인할 수 있습니다. 이후
Get-ComputerRestorePoint