- 공유 링크 만들기
- X
- 이메일
- 기타 앱
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
이 글의 목적은 Windows 작업 스케줄러에서 예약 작업이 실행되지 않는 문제 중 특히 권한 설정 오류와 프로그램·스크립트 경로 설정 오류를 체계적으로 점검·해결할 수 있도록 실무 중심으로 정리하는 것이다.
1. 작업 스케줄러 동작 원리와 기본 점검
작업 스케줄러는 지정된 계정 권한과 작업 디렉터리를 기반으로 프로그램이나 스크립트를 자동 실행하는 서비스이다. 따라서 다음 네 가지가 정확히 맞지 않으면 트리거가 정상적으로 발생해도 실제 실행은 실패하는 경우가 많다.
- 어떤 계정으로 실행할지(보안 옵션)
- 해당 계정이 파일·폴더에 접근할 권한이 있는지
- 프로그램/스크립트 경로가 정확한지(공백 포함, 확장자 포함)
- “시작 위치(Start in)” 작업 디렉터리가 올바른지
작업이 실행되지 않을 때는 먼저 작업 스케줄러의 “기록(History)” 탭과 “최종 결과 코드(Last Run Result)”를 확인해서 어떤 유형의 오류인지 구분하는 것이 중요하다.
1-1. 작업 속성 기본 항목 점검
- 작업 스케줄러에서 해당 작업을 더블 클릭한다.
- “일반” 탭에서 다음 항목을 확인한다.
- “사용자 또는 그룹 변경”이 올바른 계정인지
- “가장 높은 수준의 권한으로 실행”이 필요한 작업인지
- “사용자 로그온 여부에 관계없이 실행”이 필요한지
- “동작” 탭에서
- “프로그램/스크립트” 경로가 실제 파일 경로와 일치하는지
- “인수 추가(옵션)”에 명령줄 인수를 정확히 넣었는지
- “시작 위치(옵션)”에 실행 파일이 존재하는 폴더를 넣었는지 확인한다.
주의 : 경로에 공백이 포함된 경우 따옴표를 빠뜨리면 배치 파일·스크립트에서 다른 프로그램을 호출할 때 0x1 오류가 자주 발생한다.
2. 권한 관련 오류(0x5, 접근 거부) 해결
작업 스케줄러에서 자주 발생하는 권한 문제는 다음과 같다.
- 네트워크 드라이브(공유 폴더)에 접근할 권한이 없음
- 관리자 권한이 필요한 작업을 일반 계정으로 실행
- UAC(사용자 계정 컨트롤) 상승이 필요한 프로그램 실행 실패
2-1. 보안 옵션(실행 계정) 설정
“일반” 탭의 보안 옵션은 작업 실행 성공 여부에 직접 영향을 준다.
- 작업 속성 → “일반” 탭을 연다.
- “사용자 또는 그룹 변경” 버튼을 눌러 실제로 파일에 접근 가능한 계정을 지정한다.
- 관리자 권한이 필요한 작업이라면 해당 계정이 Administrators 그룹에 속해 있어야 한다.
- “가장 높은 수준의 권한으로 실행” 체크박스를 활성화하여 UAC 상승이 필요한 프로그램도 실행되도록 한다.
주의 : 도메인 환경에서는 “도메인\계정이름” 형식으로 지정해야 네트워크 리소스에 정상 접근하는 경우가 많다.
2-2. 파일·폴더 NTFS 권한 점검
계정이 올바르더라도 폴더 권한이 부족하면 실행이 실패한다.
- 실행 대상 프로그램 또는 스크립트가 있는 폴더를 탐색기에서 마우스 오른쪽 버튼 클릭한다.
- “속성 → 보안” 탭을 열어 작업에 사용할 계정이 있는지 확인한다.
- 없다면 “편집 → 추가”에서 계정을 추가하고 최소한 “읽기 및 실행(Read & execute)” 권한을 부여한다.
- 로그 파일을 기록하는 폴더가 따로 있다면 그 폴더에도 동일하게 권한을 부여한다.
2-3. 네트워크 드라이브/공유 폴더 접근 문제
작업 스케줄러는 기본적으로 시스템 서비스 컨텍스트에서 동작하기 때문에 로그온 후 연결되는 드라이브 문자(예: Z:, X:)를 인식하지 못하는 경우가 많다.
- 드라이브 문자 대신 UNC 경로(예:
\\server\share\folder)를 사용한다. - “일반” 탭 계정을 실제 공유 폴더 접근 권한이 있는 도메인/로컬 계정으로 지정한다.
- 필요하다면 스크립트 시작 부분에서
net use명령으로 공유를 연결한다.
net use \\server\share /user:도메인\계정 비밀번호 /persistent:no 3. 경로 및 시작 위치 오류(0x1, 0x2 등) 해결
최근 Windows 환경에서 가장 흔한 작업 스케줄러 실패 원인은 잘못된 경로와 시작 위치 설정이다. 특히 배치 파일, PowerShell 스크립트, 파이썬 스크립트를 실행할 때 자주 발생한다.
3-1. 동작 탭에서 경로 설정 원칙
“동작” 탭에서 다음 규칙을 지키면 대부분의 경로 관련 오류를 예방할 수 있다.
- 프로그램/스크립트에는 실제 실행 파일 또는 인터프리터 경로를 넣는다.
- 배치 파일 직접 실행:
C:\Scripts\backup.bat - 파이썬 스크립트 실행:
C:\Python39\python.exe - PowerShell 스크립트 실행:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
- 배치 파일 직접 실행:
- 인수 추가(옵션)에는 실행할 스크립트 파일 경로와 옵션을 넣는다.
- 예:
"C:\Scripts\myscript.py" -mode auto - 예:
-ExecutionPolicy Bypass -File "C:\Scripts\myscript.ps1"
- 예:
- 시작 위치(옵션)에는 스크립트 또는 실행 파일이 위치한 폴더만 넣는다.
- 예:
C:\Scripts
- 예:
주의 : 시작 위치에 파일 경로 전체(예: C:\Scripts\myscript.bat)을 넣으면 일부 환경에서 0x1 또는 0x2 오류가 발생한다. 반드시 폴더 경로만 입력해야 한다.
3-2. 공백·특수문자가 있는 경로 처리
프로그램/스크립트 또는 인수 경로에 공백이 포함된 경우 반드시 큰따옴표로 감싸야 한다.
"C:\Program Files\7-Zip\7z.exe" "C:\Backup Scripts\backup.bat" 파일 경로 뒤에 인수를 추가할 때는 파일 경로와 인수 사이에 공백을 넣고, 각 인수는 따옴표 규칙을 지켜 구분한다.
"C:\Program Files\7-Zip\7z.exe" a "D:\backup\archive.7z" "D:\data\*" 3-3. 상대경로 사용 금지
작업 스케줄러에서는 상대경로(.\logs, ..\data) 사용 시 시작 위치에 따라 결과가 달라져 예상치 못한 실패가 발생한다. 실무에서는 다음 원칙을 권장한다.
- 스크립트 내부에서 사용하는 경로는 모두 절대경로로 작성한다.
- 여러 서버/PC에서 공통으로 사용할 스크립트는 환경변수를 활용해 기본 경로를 설정한다.
4. 자주 발생하는 작업 스케줄러 오류 코드 정리
작업 스케줄러의 “최종 결과 코드(Last Run Result)”는 16진수로 표시되는 경우가 많다. 주요 코드와 원인을 정리하면 다음과 같다.
| 결과 코드 | 의미 | 주요 원인 | 해결 방향 |
|---|---|---|---|
| 0x0 | 성공 | 정상 종료 | 문제 없음 |
| 0x1 | 일반 오류 | 잘못된 경로, 시작 위치, 배치 파일 내 명령 실패 | 경로·따옴표 재확인, 시작 위치 수정, 배치 파일 단독 실행 테스트 |
| 0x2 | 파일 없음 | 실행 파일 또는 스크립트가 존재하지 않음 | 파일 경로 오타·이동 여부 확인 |
| 0x5 | 액세스 거부 | 권한 부족, 네트워크 공유 권한 문제 | 실행 계정·NTFS·공유 권한 점검, 관리자 권한 부여 |
| 0xC000013A | 사용자에 의해 종료 | 수동 중지 또는 콘솔에서 Ctrl+C | 정상 범주, 장시간 실행 작업의 중단 여부 확인 |
| 0x41301 | 실행 중 | 작업이 아직 종료되지 않음 | 실행 시간 과다 여부·무한 루프 여부 점검 |
5. 로그와 기록으로 원인 정밀 분석
권한·경로를 모두 점검했는데도 작업이 실패한다면, 로그를 통해 보다 자세히 확인할 필요가 있다.
5-1. 작업 스케줄러 기록 탭 활성화
- 작업 스케줄러 왼쪽 트리에서 “작업 스케줄러(로컬)”를 선택한다.
- 중앙 창 상단의 “기록” 탭에서 기록이 꺼져 있다면 “기록 사용”을 클릭한다.
- 문제가 발생하는 작업을 수동으로 “실행”한 뒤, 기록 탭에서 이벤트 ID와 메시지를 확인한다.
5-2. 이벤트 뷰어에서 세부 로그 확인
- Win+R →
eventvwr.msc실행한다. - “응용 프로그램 및 서비스 로그 → Microsoft → Windows → TaskScheduler” 경로로 이동한다.
- Operational 로그를 열고 해당 작업 이름으로 필터링하여 오류 메시지를 확인한다.
이벤트 로그에서는 실행한 명령줄 전체, 반환 코드, 상세 오류 메시지가 함께 기록되는 경우가 많아 원인을 찾는 데 큰 도움이 된다.
5-3. schtasks 명령으로 상태 확인
명령 프롬프트(관리자 권한)에서 다음 명령으로 작업 상태를 확인할 수 있다.
schtasks /query /v /fo LIST /tn "작업이름" 이 명령은 마지막 실행 시간, 결과 코드, 다음 실행 시간 등 상세 정보를 텍스트로 보여주므로 원격 서버나 스크립트에서 상태를 모니터링할 때 유용하다.
6. 스크립트·배치 파일별 체크리스트
실무에서 많이 사용하는 유형별로 작업 스케줄러 설정 체크리스트를 간단히 정리한다.
6-1. 배치 파일(.bat, .cmd) 자동 실행
- 프로그램/스크립트:
C:\Windows\System32\cmd.exe - 인수 추가:
/c "C:\Scripts\backup.bat"
- 시작 위치:
C:\Scripts
배치 파일 내부에서 로그 파일을 남길 때는 절대경로를 사용하는 것이 좋다.
set LOG=C:\Logs\backup.log echo [%date% %time%] Backup Start >> %LOG% 6-2. PowerShell 스크립트(.ps1) 자동 실행
- 프로그램/스크립트:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
- 인수 추가 예시:
-ExecutionPolicy Bypass -File "C:\Scripts\job.ps1"
- 시작 위치:
C:\Scripts
주의 : 조직 정책상 실행 정책 변경이 제한된 환경에서는
-ExecutionPolicy 인수 사용이 차단될 수 있다. 이 경우 관리 정책에 따라 사전 승인을 받아야 한다.6-3. 파이썬 스크립트(.py) 자동 실행
- 프로그램/스크립트:
C:\Python39\python.exe또는 가상환경의 python.exe 경로
- 인수 추가:
"C:\Scripts\myscript.py" --mode batch
- 시작 위치:
C:\Scripts
파이썬 스크립트에서 상대경로를 사용할 경우, __file__을 활용해 실행 파일 기준 경로를 계산하면 환경 차이에 덜 민감하다.
import os BASE_DIR = os.path.dirname(os.path.abspath(__file__)) log_path = os.path.join(BASE_DIR, "logs", "job.log") 7. 조건·전원 관리로 인한 오동작 점검
권한과 경로가 모두 정상이어도 “조건”이나 “전원 관리” 설정 때문에 작업이 실행되지 않는 경우가 있다.
7-1. 조건 탭 확인
- “컴퓨터가 AC 전원에 연결된 경우에만 작업 시작”이 체크되어 있으면, 노트북 배터리 사용 시에는 작업이 실행되지 않는다.
- “다음 시간 이상 유휴 상태인 경우에만 작업 시작”이 체크되어 있으면, 사용자가 PC를 계속 사용 중일 때는 작업이 지연된다.
- “컴퓨터를 절전 모드에서 다시 시작하여 작업 수행 허용”을 체크하면, 절전 상태에서도 작업 시작을 위해 시스템을 깨울 수 있다(하드웨어 지원 필요).
7-2. 전원 옵션과의 상호 작용
데스크톱 PC나 서버에서 장시간 주기 작업을 사용하는 경우, 전원 옵션에서 다음 항목을 확인한다.
- 디스플레이 끄기와는 별개로 “컴퓨터 절전 모드 전환” 시간이 너무 짧게 설정되어 있지 않은지
- 서버·NAS 백업 등은 절전 모드로 들어가지 않도록 별도의 전원 계획을 사용하는지
8. 실무용 체크리스트 요약
작업 스케줄러가 동작하지 않을 때 아래 순서대로 점검하면 대부분의 권한·경로 문제를 빠르게 해결할 수 있다.
- “마지막 실행 결과 코드” 확인 후 오류 유형 파악(0x1, 0x2, 0x5 등).
- “일반” 탭
- 실행 계정이 올바른지, 해당 계정이 파일·폴더 접근 권한을 갖는지 확인한다.
- 관리자 권한 필요 시 “가장 높은 수준의 권한으로 실행”을 체크한다.
- “동작” 탭
- 프로그램/스크립트, 인수, 시작 위치를 원칙에 맞게 분리·입력한다.
- 경로에 공백이 있을 경우 모두 큰따옴표로 감싼다.
- 네트워크·공유 폴더 사용 시
- UNC 경로(
\\server\share) 사용을 우선 고려한다. - 필요하면 스크립트에서
net use명령으로 연결한다.
- UNC 경로(
- 조건·전원 탭에서 유휴 상태·AC 전원 조건, 절전 관련 옵션을 확인한다.
- 그래도 해결되지 않으면 작업 스케줄러 기록 및 이벤트 뷰어 로그를 통해 구체적인 오류 메시지를 확인하고, 해당 메시지 중심으로 추가 조치한다.
FAQ
작업 스케줄러에서 0x1 오류만 나오고 실행이 안 된다.
0x1은 일반적인 실패 코드로, 대부분 경로·시작 위치 설정 문제 또는 배치 파일 내부 명령 실패이다. 먼저 “동작” 탭에서 프로그램/스크립트·인수·시작 위치를 원칙대로 분리해 다시 설정한다. 이후 같은 명령을 명령 프롬프트에서 직접 실행해 보고, 수동 실행도 실패한다면 스크립트 자체를 수정해야 한다.
수동으로 실행하면 되는데 예약 시간이 되면만 실패한다.
이 경우 실행 계정이나 권한 문제일 가능성이 크다. 사용자가 로그인된 상태에서 수동 실행할 때와, 스케줄러가 백그라운드에서 실행할 때 사용하는 계정이 동일한지 확인한다. “사용자 로그온 여부에 관계없이 실행”을 사용하는 경우 별도 자격 증명이 필요하며, 네트워크 드라이브 문자 대신 UNC 경로를 사용해야 한다.
PC가 절전 상태여도 작업이 실행되게 하고 싶다.
작업 속성의 “조건” 탭에서 “컴퓨터를 절전 모드에서 다시 시작하여 작업 수행 허용” 옵션을 체크한다. 단, BIOS/UEFI와 하드웨어가 해당 기능을 지원해야 하며, 일부 노트북·슬림 PC에서는 정상적으로 동작하지 않을 수 있다. 중요 작업은 가능하면 서버나 24시간 켜두는 장비에서 수행하는 것이 안전하다.
작업 스케줄러에서 네트워크 공유 폴더에 백업 파일을 저장하려는데 계속 실패한다.
먼저 백업 대상 경로를 드라이브 문자(Z:, X:)가 아닌 UNC 경로(예: \\server\backup)로 변경한다. 그 다음 작업의 실행 계정을 해당 공유 폴더에 읽기/쓰기 권한이 있는 도메인 또는 로컬 계정으로 설정한다. 필요시 스크립트 시작 부분에서 net use 명령으로 공유를 연결하고, 연결 실패 시 로그를 남겨 원인을 추적한다.
PowerShell 스크립트가 실행 정책 때문에 실패한다.
조직 정책이 허용하는 범위 내에서, PowerShell 실행 시 -ExecutionPolicy Bypass -File 옵션을 사용하여 해당 작업에 한해 실행 정책을 완화할 수 있다. 보안·감사 요구사항이 있는 환경에서는 보안 담당자와 상의해 허용된 실행 정책 범위 내에서 스케줄 작업을 설계해야 한다.
추천·관련글
- How to Stabilize pH After Acid Neutralization: Proven Process Control Strategies
- How to Reduce High HPLC Column Backpressure: Proven Troubleshooting and Prevention
- Excel Dynamic Arrays with Structured References: Complete Guide to Spill-Safe Table Formulas
- Fix NMR Shimming Failure: Expert Troubleshooting Guide for Sharp, Stable Spectra
- Fix Inconsistent NMR Integrals: Expert qNMR Troubleshooting Guide
- Suppress Solvent Peak Interference in NMR: Proven Solvent Suppression Techniques and Settings