Windows에서 로그인 동작 또는 특정 일정에 따라 작업을 예약해서 수행하고 싶은 경우 작업 스케줄러Task Scheduler를 주로 활용합니다. 작업 스케줄러는 Windows 운영체제에 내장된 GUI(Graphical User Interface) 도구로, 사용자가 메뉴와 대화 상자를 통해 작업을 생성하고 관리할 수 있습니다. 이 도구는 윈도우 시스템에 내장되어 있으며, 작업을 생성하거나 변경할 때 상세한 옵션을 제공합니다. 이를 통해 사용자는 좀 더 직관적으로 작업을 스케줄링할 수 있는데요.
작업 스케줄러에서 만들어서 사용하던 스케줄을 다른 컴퓨터로 옮기거나 Windows를 다시 설치 해서 그대로 복원하기 위해서는 .xml
파일로 내보내고 가져와서 복구할 수 있지만, 한 번에 전체 스케줄을 내보내는 기능은 제공하지 않아 사용 중인 스케줄이 많다면 이 작업도 쉬운 일이 아닙니다. 그리고 작업이 특정 사용자 권한으로 실행되도록 설정된 경우, 해당 사용자 계정이 새 컴퓨터에도 존재해야 하기 때문에 아주 간편한 방식은 아닌데요.
이 경우 schtasks
라는 명령 줄 도구를 활용하면 명령어 한줄로 보다 간편하고 빠르게 스케줄을 등록하고 관리할 수 있고 필요하다면 스크립트나 배치 파일에서 사용되므로, 작업 스케줄링을 한 단계 더 자동화해서 사용할 수도 있습니다. 그래서 오늘은 schtasks
를 사용하는 기본적인 내용과 일반적인 사용 예제들을 간단하게 정리합니다.
튜토리얼 환경: Windows, 명령 프롬프트
schtasks
란
schtasks
라는 도구는 무엇인지 그리고 작업 스케줄러와의 차이는 어떤 부분이 있는지에 대해서 알아봅니다.
schtasks
schtasks
는 Windows에서 제공하는 명령 줄 도구로, 작업 스케줄러를 통해 컴퓨터에서 실행되는 작업을 만들고, 수정하고, 삭제하거나 쿼리하는 데 사용됩니다. 이 도구를 사용하면 일정 시간이나 이벤트에 따라 프로그램이나 배치 파일, 스크립트를 자동으로 실행하도록 스케줄을 설정할 수 있습니다.
schtasks는 GUI를 사용하는 작업 스케줄러보다 더욱 자세한 옵션 설정과 자동화에 유용하며, 배치 파일이나 스크립트 내에서 작업을 관리하는데 적합합니다. 이는 일반적으로 시스템 관리자나 개발자들에게 유용한 도구입니다.
다음은 schtasks에서 제공하는 주요 기능입니다:
- 작업 생성: 일정 시간이나 이벤트에 따라 프로그램이나 스크립트를 실행하도록 새로운 작업을 설정합니다.
- 작업 수정: 이미 생성된 작업의 속성(예: 실행 시간, 작업 내용 등)을 변경합니다.
- 작업 삭제: 설정된 작업을 삭제합니다.
- 작업 조회: 설정된 작업의 정보를 조회합니다.
작업 스케줄러와 schtasks
작업 스케줄러와 schtasks
두 도구 모두 윈도우에서 예약된 작업을 관리하는 기능을 제공하지만, 사용 방식과 접근성에서 차이가 있습니다.
- 작업 스케줄러(Task Scheduler): 이는 GUI(Graphical User Interface) 도구로, 사용자가 메뉴와 대화 상자를 통해 작업을 생성하고 관리할 수 있습니다. 이 도구는 윈도우 시스템에 내장되어 있으며, 작업을 생성하거나 변경할 때 상세한 옵션을 제공합니다. 이를 통해 사용자는 좀 더 직관적으로 작업을 스케줄링할 수 있습니다.
- schtasks: 이는 명령 줄(Command Line) 도구로, 주로 스크립트 또는 배치 파일에서 작업을 생성하고 관리하는 데 사용됩니다. 이 도구는 윈도우 시스템에 내장되어 있으며, 복잡한 작업을 자동화하거나 원격 시스템에서 작업을 관리하는 데 유용합니다.
schtasks
명령의 기본 사용법
Windows에서 schtasks
명령을 사용하는 기본적인 방법과 대표적인 옵션들을 정리합니다.
Create
옵션으로 작업 생성하기
schtasks
명령에 /Create
옵션을 사용하면 새 작업을 생성할 수 있습니다.
schtasks /Create /SC schedule_frequency /TN task_name /TR task_run /ST start_time
위 명령을 간단하게 알아보면,
/SC
: 스케줄 빈도 설정 (예: DAILY, WEEKLY 등)/TN
: 작업 이름 설정/TR
: 실행할 작업 설정/ST
: 시작 시간 설정
schtasks /Create /SC DAILY /TN "My Task" /TR "C:\MyScript.bat" /ST 09:00
이 명령은 My Task
라는 이름의 작업을 생성하여 매일 오전 9시에 C:\MyScript.bat
을 실행합니다.
Change
옵션으로 작업 변경하기
schtasks
명령에 /Change
옵션을 사용하면 기존 작업을 변경할 수 있습니다.
schtasks /Change /TN task_name /option new_value
위 명령을 간단하게 알아보면,
/TN
: 변경할 작업 이름 설정/option
: 변경할 옵션 설정 (예: /ST, /ET, /TR 등)new_value
: 옵션의 새 값 설정
schtasks /Change /TN "My Task" /ST 10:00
이 명령은 My Task
라는 작업의 시작 시간을 오전 10시로 변경하는 실제 예시 입니다.
Delte
옵션으로 작업 삭제하기
schtasks
명령에 /Delete
옵션을 사용하면 기존 작업을 삭제할 수 있습니다.
schtasks /Delete /TN task_name
이 명령은 지정한 이름의 작업을 삭제합니다. 간단하니 예제는 생략합니다.
Query
명령으로 작업 쿼리하기
schtasks
명령에 /Query
옵션을 사용하면 작업에 대한 정보를 조회할 수 있습니다.
schtasks /Query /TN task_name
이 명령은 지정한 이름의 작업에 대한 정보를 출력합니다. 예를 들어 다음과 같은 형식을 반환하게 됩니다.
Folder: \
TaskName Next Run Time Status
=========================================== =============== ===============
My Task 09:00:00, 08/05/2023 Ready
여기서 My Task
는 작업 이름이고 09:00:00, 08/05/2023
는 다음 실행 시간, Ready
는 작업 상태를 나타냅니다. 물론, 실제 출력은 시스템 설정과 작업의 상태에 따라 달라질 수 있습니다.
schtasks
고급 기능
위 기본작업 만으로는 실제 사용하기에는 부족함이 있습니다. 보통 기본 작업 외에 실행 권한이나 트리거 등도 세부적으로 설정해 사용합니다.
실행 권한 설정
작업 스케줄러의 작업은 특정 권한으로 실행됩니다. /RL
옵션을 사용하면 작업이 실행될 때의 권한 레벨을 설정할 수 있습니다.
HIGHEST
: 작업이 최대 권한으로 실행됩니다. 사용자가 관리자 권한을 가진 경우, 작업은 관리자 권한으로 실행됩니다.LIMITED
: 작업이 사용자의 현재 권한으로 실행됩니다. 사용자가 관리자 권한을 가진 경우에도, 작업은 일반 사용자 권한으로 실행됩니다.
schtasks /Create /SC ONLOGON /TN "Mytask" /TR "C:\Users\username\Documents\Myfile.bat" /RL HIGHEST
위 예제는 사용자가 로그온할 때마다 Mytask
이름의 작업이 관리자 권한으로 실행되도록 설정합니다.
트리거 설정
트리거는 특정 조건 하에서 작업이 실행되게 하는 설정입니다. /SC
옵션을 사용하면 작업이 실행되는 트리거를 설정할 수 있습니다. 다음은 일부 가능한 트리거입니다.
MINUTE
,HOURLY
,DAILY
,WEEKLY
,MONTHLY
,ONCE
: 작업이 지정된 간격으로 실행됩니다.ONSTART
: 컴퓨터가 시작될 때 작업이 실행됩니다.ONLOGON
: 사용자가 로그온할 때 작업이 실행됩니다.ONIDLE
: 컴퓨터가 한가할 때 작업이 실행됩니다.
schtasks /Create /SC ONLOGON /TN "Mytask" /TR "C:\Users\username\Documents\Myfile.bat"
위 예제는 사용자가 로그온할 때마다 Mytask
이름으로 된 C:\Users\username\Documents\Myfile.bat
파일을 실행합니다.
다른 옵션 확인
이 외에도 schtasks
명령은 다양한 옵션을 제공합니다. 모든 옵션을 확인하려면 명령 프롬프트에서 schtasks /Create /?
를 실행하면 위와 같이 schtasks /Create
에 대한 자세한 사용 방법과 옵션이 반환됩니다.
마치며
Windows에서 작업 스케줄러와 함께 사용하면 더욱 유용한 schtasks
라는 명령 줄 도구에 대해 알아보았습니다. 작업 스케줄러와 schtasks 모두 Windows 시스템의 일부로, 둘 다 동일한 작업 스케줄링 서비스에 접근합니다. 이 말은 즉슨, 한 도구가 다른 도구보다 더 잘 동작하거나 Windows와 더 잘 통합된다는 개념은 없습니다.
다만 schtasks
도구는 스크립트나 프로그램에서 작업 스케줄러를 제어할 때 유용하며, 특히 프로그래머나 시스템 관리자에게 친숙하다고 할 수 있으니 각자 상황에 맞는 방식을 선택해서 사용하면 됩니다.그래서 작업 스케줄러에서 간단한 스케줄을 등록하는 것은 크게 어렵지 않지만 대량의 작업을 등록하거나 백업해서 다시 설정해야 한다면 schtasks
이 상당히 편리하니 위 내용을 참고해 직접 적용해 보시길 바랍니다.