배치 잡이 잘 실행되지만 스케쥴러로부터 실행되지 않는가?
스케쥴러에의해 실행되는 잡은 스케쥴 서비스의 사용자 환경하에서 실행된다(제어판/서비스/스케쥴/시동). 만약 잡들이 데스크 탑과 상호동작할 필요가 있다면 이들 잡들은 내장된 시스템 계정을 사용해서 서비스가 데스크 탑과 상호동작하도록 허용됐는가를 검사한다. AT 명령을 호출할 때 /interactive 스위치를 사용한다.
불행하게 시스템 계정은 로칼이며 어떠한 네트웍 접속도 갖지않는다. 이러한 문제는 다음과 같이 우회할 수 있다.
net use Drive: \ServerName\ShareName /U:DomainName\UserName password
여기서 사용된 계정은 요구된 사용권한(과 만료기간이 없는 암호)을 가지고 있어야 한다.
잡을 디버깅하기위해 AT hh:mm /interactive cmd.exe /k나 soon /interactive cmd.exe /k를 입려한다.
이 것은 스케쥴 서비스의 사용자환경하에서 명령행을 열게된다.
이제 이 윈도우에서 배치잡을 실행하고 정확하게 문제점을 찾기위해 echo와 pause를 사용할 수 있다.
스케쥴된 잡에서 사용할 환경변수와 배치파일을 실행할 때 사용하는 환경변수가 다르다는 것을 깨닫는 것이 중요하다. 스케쥴 서비스의 환경 변수를 로그 파일로 보내어 이들을 조사할 수 있도록 이 윈도우에서 SET Drive:\Directory\SET.LOG를 입력한다. 다음의 필자의 것이다.
COMPUTERNAME=ALRMP
ComSpec=C:\WINNT\system32\cmd.exe /X /e:2048
NTResKit=D:\reskit40
NUMBER_OF_PROCESSORS=2
OS=Window_NT
Path=C:\WINNT\system32\repl\import\scripts;C:\WINNT\system32;C:\WINNT;C:\Util
PATHEXT=.COM;.EXE;.BAT;.CMD
PROCESSOR_ARCHITECTURE=x86
SystemDrive=C:
SystemRoot=C:\WINNT
USERDOMAIN=NT AUTHORITY
USERNAME=SYSTEM
USERPROFILE=C:\WINNT\Profiles\Default User
windir=C:\WINNT
댓글: