윈도우 프로그램 예약 실행 — 작업 스케줄러 사용법과 실행이 안 될 때 확인할 것
매일 아침 같은 프로그램을 켜거나, 퇴근 후 백업 파일을 돌리거나, 장 시작 전에 증권 프로그램을 띄우는 일은 윈도우에 기본으로 들어 있는 작업 스케줄러로 할 수 있습니다. 만드는 것 자체는 5분이면 끝나지만, 막상 시간이 되면 아무 일도 일어나지 않거나 창이 안 보이는 경우가 많습니다. 원인은 대부분 기본값 몇 개에 있습니다. 만드는 순서와 함께, 안 될 때 어디부터 보면 되는지 정리했습니다.
작업 스케줄러의 탭과 옵션이 부담스러울 때. 트레이에 상주하며 한 화면에서 .exe·.bat·.cmd 를 정한 시각에 실행하고, 텔레그램으로 휴대폰에서 PC 를 원격 조작합니다.
방법은 네 가지 — 무엇을 고를까
윈도우에서 프로그램을 정해진 때에 자동으로 실행하는 방법은 크게 네 가지입니다. 기능이 가장 많은 것은 윈도우 기본 앱인 작업 스케줄러이고, 같은 작업을 명령어로 만들 수도 있습니다. 로그인할 때 한 번만 켜면 되는 프로그램이라면 시작프로그램 폴더가 가장 간단하고, 옵션을 신경 쓰고 싶지 않다면 전용 도구를 쓰는 방법도 있습니다.
| 방법 | 잘 맞는 경우 | 주의할 점 |
|---|---|---|
| 작업 스케줄러 (기본 앱) | 매일·매주 정해진 시각, 부팅할 때, 로그인하지 않아도 돌아야 하는 작업 | 기본값 때문에 안 도는 경우가 많음 (이 글의 대부분) |
schtasks·PowerShell 명령 | 같은 작업을 여러 PC 에 똑같이 만들 때, 배치 파일로 자동화할 때 | schtasks 로는 시작 위치를 지정할 수 없음 |
시작프로그램 폴더 (shell:startup) | 로그인하면 바로 한 번 켜기만 하면 될 때 | 시각 지정 불가 |
| 전용 도구 (GUI Apps Controller 등) | 한 화면에서 여러 프로그램 시각을 관리하고 싶을 때 | 도구가 켜져 있고 로그인한 상태에서만 동작 |
작업 스케줄러로 예약하기 — 기본 작업 만들기
처음이라면 마법사 형태인 기본 작업 만들기가 편합니다. 아래 순서는 윈도우 11 기준이고, 윈도우 10 도 메뉴 구성이 거의 같습니다.
- 1
Win+R을 누르고taskschd.msc를 입력해 엔터를 칩니다. 시작 메뉴에서 '작업 스케줄러'를 검색해도 됩니다. - 2왼쪽에서 작업 스케줄러 라이브러리를 선택하고, 오른쪽 작업 창에서 기본 작업 만들기를 누릅니다.
- 3이름을 입력합니다. 나중에 목록에서 찾기 쉽게 '아침 메신저 실행'처럼 무엇을 하는지 적어 두세요.
- 4트리거에서 언제 실행할지 고릅니다. 매일, 매주, 매월, 한 번, 컴퓨터 시작 시, 로그온할 때, 특정 이벤트가 기록될 때 가운데 하나를 고르고 시각을 정합니다.
- 5동작에서 프로그램 시작을 고른 뒤, 프로그램/스크립트 칸에 실행 파일을 지정합니다. 찾아보기 버튼으로 고르면 경로 오타가 없습니다.
- 6시작 위치(옵션) 칸에는 실행 파일이 들어 있는 폴더 경로를 적습니다. 비워 두면 프로그램이 설정 파일을 엉뚱한 곳에서 찾아 실패할 수 있습니다.
- 7마침을 누르면 목록에 작업이 생깁니다. 작업을 우클릭해 실행을 누르면 예약 시각을 기다리지 않고 바로 시험해 볼 수 있습니다.
시작 위치를 비워 두면 작업은 C:\Windows\System32 를 기준 폴더로 삼아 실행됩니다. 더블클릭하면 잘 켜지는 프로그램이 예약 실행에서만 설정을 못 읽거나 로그 파일을 못 만든다면 대부분 이 칸 때문입니다. 배치 파일이라면 첫 줄에 cd /d "%~dp0" 를 넣어 두면 배치 파일이 있는 폴더에서 실행됩니다.
시간은 됐는데 아무 일도 없다 — 작업이 지나는 네 관문
예약한 작업은 트리거가 울린 뒤에도 조건, 보안 옵션, 동작이라는 관문을 차례로 지나야 실제로 실행됩니다. 어느 관문에서 걸렸는지는 작업 목록의 상태와 마지막 실행 결과 열, 그리고 아래쪽 기록 탭으로 알 수 있습니다.
기록 탭이 비어 있다면 기록 기능이 꺼져 있는 것입니다. 작업 스케줄러 오른쪽 작업 창에서 모든 작업 기록 사용을 누르면 그다음 실행부터 트리거가 울렸는지, 동작이 시작됐는지, 몇 번 코드로 끝났는지가 남습니다. 같은 기록은 이벤트 뷰어의 응용 프로그램 및 서비스 로그 → Microsoft → Windows → TaskScheduler → Operational 에서도 볼 수 있습니다.
창이 안 뜬다 — 보안 옵션부터 확인
작업 속성의 일반 탭 아래쪽 보안 옵션에는 사용자가 로그온할 때만 실행과 사용자의 로그온 여부에 관계없이 실행 두 가지가 있습니다. 기본 작업 만들기로 만들면 앞의 것이 선택돼 있습니다. 이름만 보면 뒤의 것이 더 넓은 선택처럼 보이지만 결과는 전혀 다릅니다.
로그온 여부에 관계없이 실행으로 두면 작업은 로그인 화면 뒤의 별도 세션에서 실행됩니다. 메모장이나 증권 프로그램처럼 창이 있는 프로그램도 실행은 되지만 내 화면에는 나타나지 않고, 누를 사람이 없는 창을 띄운 채 계속 실행 중 상태로 남습니다. 이때 마지막 실행 결과에는 0x41301(현재 실행 중)이 보이고, 다음 예약 시각이 와도 새로 시작하지 않습니다. 이미 실행 중인 작업은 새로 시작하지 않는 것이 기본값이기 때문입니다.
- 창을 보고 써야 하는 프로그램: 사용자가 로그온할 때만 실행. 로그아웃돼 있으면 그 회차는 건너뜁니다.
- 창이 필요 없는 백업·정리용 배치 파일: 로그온 여부에 관계없이 실행. 까만 명령 창이 번쩍이지 않는 장점도 있습니다. 대신 계정 암호를 한 번 입력해 저장해야 합니다.
- 관리자 권한이 필요한 프로그램: 가장 높은 수준의 권한으로 실행을 켜면 실행할 때마다 뜨는 사용자 계정 컨트롤(UAC) 확인 창 없이 관리자 권한으로 실행됩니다.
로그온 여부에 관계없이 실행에서 '암호를 저장하지 않음'을 켜면 암호 입력 없이 만들 수 있지만, 마이크로소프트 문서에 따르면 이 방식은 네트워크 공유 폴더와 암호화된 파일에 접근하지 못합니다. NAS 로 백업하는 작업이라면 이 항목은 끄세요.
노트북에서만 안 돈다 — 조건 탭의 전원 설정
데스크톱에서는 잘 돌던 작업이 노트북에서만 조용히 건너뛰어진다면 조건 탭을 보세요. 컴퓨터의 AC 전원이 켜져 있는 경우에만 작업 시작이 기본으로 켜져 있어서, 충전기를 뽑고 쓰는 동안에는 시각이 돼도 시작하지 않습니다. 그 아래의 배터리 전원으로 바뀌면 작업을 중지하는 항목도 기본으로 켜져 있어, 실행 중에 충전기를 뽑으면 작업이 멈춥니다.
- 배터리로도 돌아야 하는 작업이면 두 항목의 체크를 모두 풉니다.
- 절전 모드인 PC 를 깨워서 실행하고 싶다면 조건 탭에서 절전 모드를 해제해 실행하는 항목을 켭니다. 기본은 꺼져 있고, 전원 옵션에서 절전 모드 해제 타이머가 허용돼 있어야 동작합니다.
- 유휴 상태 조건(컴퓨터를 몇 분 동안 안 쓸 때만 실행)은 기본으로 꺼져 있습니다. 켜 두었다면 PC 를 쓰고 있는 동안에는 시작하지 않습니다.
PC 가 꺼져 있던 시간과 오래 도는 프로그램 — 설정 탭
예약 시각에 PC 가 꺼져 있었다면 그 회차는 기본적으로 건너뜁니다. 나중에 켰을 때라도 실행되기를 원하면 설정 탭의 예약된 시작 시간을 놓친 경우 가능한 대로 빨리 작업 시작을 켜세요. 아침 9시 백업을 걸어 두었는데 10시에 PC 를 켰다면, 켜고 나서 곧 실행됩니다.
같은 설정 탭에는 실행 시간 제한도 있습니다. 기본값은 3일이라, 켜 두고 며칠씩 쓰는 프로그램을 작업 스케줄러로 띄우면 3일(72시간)이 지나는 순간 작업 스케줄러가 프로그램을 종료합니다. 자동매매 프로그램이나 서버처럼 계속 켜 둘 프로그램이라면 이 제한의 체크를 풉니다.
| 설정 | 기본값 | 바꿔야 하는 경우 |
|---|---|---|
| AC 전원일 때만 시작 (조건 탭) | 켜짐 | 노트북에서 배터리로도 돌아야 할 때 |
| 배터리로 바뀌면 중지 (조건 탭) | 켜짐 | 실행 중 충전기를 뽑을 수 있을 때 |
| 놓친 예약 곧바로 실행 (설정 탭) | 꺼짐 | PC 를 켜는 시각이 들쭉날쭉할 때 |
| 실행 시간 제한 (설정 탭) | 3일 | 며칠씩 켜 두는 프로그램일 때 |
| 이미 실행 중이면 (설정 탭) | 새로 시작 안 함 | 대개 그대로 두는 것이 안전 |
마지막 실행 결과 코드 읽는 법
작업 목록의 마지막 실행 결과 열에는 16진수 코드가 괄호와 함께 표시됩니다. 0x41301 처럼 0x4130… 으로 시작하는 값은 작업 스케줄러 자신이 알려 주는 상태이고, 그 밖의 작은 숫자는 대개 실행한 프로그램이 끝나면서 돌려준 종료 코드입니다. 0x4130… 계열의 뜻은 마이크로소프트의 작업 스케줄러 오류·성공 상수 문서, 0x8007… 계열은 윈도우 오류 메시지를 기준으로 정리했습니다.
| 코드 | 뜻 | 확인할 것 |
|---|---|---|
0x0 | 성공 (프로그램이 0 으로 끝남) | 그런데도 결과물이 없다면 시작 위치·실행 계정 |
0x41301 | 작업이 현재 실행 중 | 창 없이 떠 있는지, 실행 시간 제한 |
0x41303 | 작업이 아직 실행된 적 없음 | 트리거 시각·날짜, 조건 탭 |
0x80070002 | 지정한 파일을 찾을 수 없음 | 프로그램 경로 오타, 따옴표, 네트워크 드라이브 |
0x800710E0 | 운영자 또는 관리자가 요청을 거부함 | 조건 탭(전원·유휴), 계정 권한 |
0x1, 0x2 등 | 프로그램이 돌려준 종료 코드 | 프로그램·배치 파일을 직접 실행해 오류 확인 |
0x41303 은 고장이 아닙니다. 윈도우가 기본으로 넣어 둔 작업들도 특정 상황에서만 도는 것이 많아서, 평범한 PC 에서도 이 값을 가진 작업이 수십 개씩 보입니다. 내가 만든 작업이 예약 시각이 지난 뒤에도 이 값이라면 트리거가 울리지 않았거나 조건에서 걸린 것입니다.
배치 파일을 실행하는 작업이 0x1 로 끝났다면 배치 파일이 오류 코드 1 을 남기고 끝났다는 뜻입니다. 배치 파일의 종료 코드는 대개 마지막으로 실행된 명령의 결과이므로, 그 명령이 실패했을 가능성이 큽니다. 작업 스케줄러는 배치 파일이 어떤 오류를 냈는지까지는 보여 주지 않으므로, 명령 뒤에 >> log.txt 2>&1 을 붙여 출력을 파일로 남기면 원인을 찾기 쉽습니다.
명령어로 만들기 — schtasks 와 PowerShell
여러 PC 에 같은 작업을 만들거나 설치 배치 파일에 넣으려면 명령어가 편합니다. 명령 프롬프트에서 schtasks 를 쓰면 아래처럼 한 줄로 만들 수 있습니다. 날짜와 시각 형식은 schtasks /create /? 도움말에 나온 대로입니다.
:: 매일 오전 9시에 메모장 실행
schtasks /create /tn "아침 메모장" /tr "C:\Windows\System32\notepad.exe" /sc daily /st 09:00
:: 매주 월·금 18시 30분에 배치 파일 실행
schtasks /create /tn "주간 백업" /tr "C:\Tools\backup.bat" /sc weekly /d MON,FRI /st 18:30
:: 경로에 공백이 있으면 안쪽을 작은따옴표로 한 번 더 감싼다
schtasks /create /tn "리포트" /tr "'C:\Program Files\Report\report.exe' --quiet" /sc daily /st 07:00
:: 바로 실행 · 상태 보기 · 삭제
schtasks /run /tn "아침 메모장"
schtasks /query /tn "아침 메모장" /v /fo list
schtasks /delete /tn "아침 메모장" /f최고 권한(/rl highest)으로 실행할 작업은 관리자 권한 명령 프롬프트에서 만들어야 합니다. 한 가지 빠진 것이 시작 위치입니다. schtasks 에는 시작 위치 옵션이 없으므로, 필요하면 배치 파일로 감싸거나 PowerShell 을 씁니다.
$action = New-ScheduledTaskAction -Execute "C:\Tools\report.exe" -WorkingDirectory "C:\Tools"
$trigger = New-ScheduledTaskTrigger -Daily -At 9am
# 배터리에서도 실행, 놓친 예약은 곧바로 실행, 실행 시간 제한 없음
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable -ExecutionTimeLimit ([TimeSpan]::Zero)
Register-ScheduledTask -TaskName "아침 리포트" -Action $action -Trigger $trigger -Settings $settingsPowerShell 방식은 앞에서 다룬 기본값(배터리 조건, 놓친 예약, 3일 제한)을 한 번에 바꿔서 만들 수 있다는 것이 장점입니다. 만든 뒤에는 작업 스케줄러 목록에서 열어 설정이 의도대로 들어갔는지 확인하세요.
더 간단한 방법 — 시작프로그램 폴더와 전용 도구
시각은 상관없고 로그인하면 켜지기만 하면 되는 프로그램이라면 작업 스케줄러까지 갈 필요가 없습니다. Win+R 에 shell:startup 을 입력하면 시작프로그램 폴더가 열리는데, 여기에 프로그램 바로 가기를 넣어 두면 로그인할 때마다 실행됩니다. 빼고 싶으면 바로 가기를 지우면 됩니다.
여러 프로그램을 요일·시각별로 켜야 하는데 작업마다 탭 다섯 개를 오가는 것이 번거롭다면 전용 도구가 편합니다. 이 사이트의 GUI Apps Controller 는 트레이에 상주하면서 한 화면 표에 .exe·.bat·.cmd 와 실행 시각을 등록하는 방식이고, 실행 기록은 %APPDATA%\GuiAppsController\logs\app.log 에 남습니다. 내 바탕화면 세션에서 실행하므로 창이 안 보이는 문제는 없고, 텔레그램 봇으로 휴대폰에서 프로그램 실행·화면 잠금·스크린샷을 요청할 수도 있습니다.
공정하게 비교하면, 전용 도구는 도구 자체가 켜져 있고 로그인한 상태에서만 동작합니다. PC 가 꺼져 있던 시간의 일정은 건너뜁니다. 로그인 전에 돌아야 하는 작업이나, 잠든 PC 를 깨워서 실행해야 하는 작업은 작업 스케줄러의 해당 옵션을 쓰세요.
자주 묻는 질문
Q. 작업을 만들었는데 목록에 보이지 않습니다.
왼쪽 트리에서 작업 스케줄러 라이브러리를 선택한 상태인지 확인하고, 오른쪽 작업 창의 새로 고침을 누르세요. 하위 폴더를 만들어 그 안에 넣었다면 그 폴더를 선택해야 보입니다.
Q. 배치 파일을 예약했더니 까만 창이 잠깐 떴다 사라집니다.
로그온할 때만 실행으로 만든 배치 파일은 명령 창이 보이는 것이 정상입니다. 창이 필요 없는 작업이라면 보안 옵션을 로그온 여부에 관계없이 실행으로 바꾸면 창 없이 실행됩니다. 이때는 계정 암호를 입력해야 합니다.
Q. 컴퓨터를 정해진 시간에 끄는 것도 되나요?
됩니다. 한 번만이라면 명령 프롬프트에서 shutdown /s /t 3600 을 입력하면 3600초(1시간) 뒤에 꺼지고, shutdown /a 로 취소합니다. 매일 끄려면 작업 스케줄러의 프로그램/스크립트에 shutdown, 인수에 /s /t 60 을 넣으세요. 저장하지 않은 문서가 있으면 잃을 수 있으니 주의합니다.
Q. 관리자 권한이 필요한 프로그램을 매번 확인 창 없이 실행하고 싶습니다.
작업 속성 일반 탭에서 가장 높은 수준의 권한으로 실행을 켜세요. 작업 스케줄러가 관리자 권한으로 실행하므로 사용자 계정 컨트롤 확인 창이 뜨지 않습니다.
Q. 예약 시각을 바꾸려면 작업을 새로 만들어야 하나요?
아닙니다. 작업을 더블클릭해 속성을 열고 트리거 탭에서 해당 트리거를 선택한 뒤 편집을 누르면 시각과 반복 주기를 바꿀 수 있습니다. 명령어로는 schtasks /change /tn "작업 이름" /st 10:00 처럼 바꿉니다.
작업 스케줄러의 탭과 옵션이 부담스러울 때. 트레이에 상주하며 한 화면에서 .exe·.bat·.cmd 를 정한 시각에 실행하고, 텔레그램으로 휴대폰에서 PC 를 원격 조작합니다.