특정 파일을 생성하는 스크립트(.vbs) 또는 배치 파일(.cmd 또는 .bat)을 만들어 Task Scheduler 에 등록하였을 때, 작업은 정상적으로 성공하나 실제 파일이 생성되지 않는 문제와 관련하여 아래와 같이 정리하였습니다.


[환경]
Windows Server 2008 R2


[현상]
1. D:\TaskScheduler 폴더에서 DIR 파일 목록을 DIR.TXT 로 저장하는 Job.cmd 커맨드 파일을 생성한 후 실행할 경우 정상적으로 dir.txt 파일이 생성됨.
 가. job.cmd
dir > dir.txt


2. 이 파일을 Task Scheduler 에 등록하여 실행할 경우 작업은 성공으로 (0x0) 종료되나 실제 파일이 생성되지 않음.





[원인]
배치 파일이 스크립트 내에서 처리되는 파일들에 대한 경로(Path)를 명시해 주지 않을 경우 cmd.exe 명령으로 실행되는 배치 작업들은 실행되는 기준 경로가 C:\Windows\system32 폴더로 지정됩니다. 


[해결방법]
job.cmd 커맨드 파일을 아래와 같이 파일 생성 위치에 대한 경로를 명시합니다.
dir "d:\TaskScheduler" > d:\TaskScheduler\dir.txt



[분석결과]
1. Task Scheduler 실행 시 마지막 실행 결과 성공(0x0)



2. Process Monitor 
 가. Filter 적용 : Path - Contains = dir.txt
 나. C:\Windows\system32 폴더에 파일이 생성되었음을 확인




[참고자료]
Task Scheduler Overview
http://technet.microsoft.com/en-us/library/cc721871.aspx


작성자 : Lai Go / 작성일자 : 2011.03.14
Posted by Lai Go