예약된 작업 등록 방법
예약된 작업에 등록하게 위해서는 다음 class를 사용해야 한다.
ScheduledJob Class
uint32 Create(
[in] string Command,
[in] datetime StartTime,
[in, optional] boolean RunRepeatedly,
[in, optional] uint32 DaysOfWeek,
[in, optional] uint32 DaysOfMonth,
[in, optional] boolean InteractWithDesktop,
[out] uint32 JobId
);
1) Command
- 예약된 작업에서 수행할 Command(notepad의 경우 notepad.exe)
2) StartTime
- "YYYYMMDDHHMMSS.MMMMMM(+-)OOO",
앞의 YYYYMMDDHHMMSS - 년월일시간분초
(+-)OOO - Starttime 일반적인 LocalTime이 아니라 UTC Time임
3) RunRepeatedly
- 반복 수행 여부
4) DaysOfWeek
- 반복할 요일
(1:월 2:화 3:수 4:목 5:금 6:토 7:일)
5) DaysOfMonth
- 한달에 어느 날 반복할 것인지
(1:1일 2:2일 4:3일 - 계속 2배씩)
6) JobId
- Job No
Return Value
(MS 사이트 발췌)
위의 내용은 Class 값이다.
실제로 Vbscript 사용할 수 없다.
그럼 실제로 Vbscript에서는 어떻게 사용해야 할까?
다음과 같이 해당 Class를 오픈한 후 Create를 하면된다.
ex)
해당 ScheduledJob을 가져온다.
2. errJobCreated = objNewJob.Create _
("Notepad.exe", "********012500.000000-420", _
True , 4, , True, JobId)
해당 Class에 대해 새로운 잡을 Create(즉 등록) 한다.
Create의 매개변수는 다음과 같다.
1. Execute 구문
2. 시간
3. 반복여부
4. 요일(위와 동일)
6. JobID
위의 예제의 경우 매주 목요일 1시 25분에 notepad를 실행하게 됩니다.
예약된 작업은 유닉스의 Crontab과 같은 기능을 하므로 많은 사용을 하게 되지만
제어판 - 예약된 작업에서 등록을 하기는 힘드므로 여러대의 서버들에
자동화를 하기 위해서 많이 사용할거 같다.
msdn에서 상세한 내용을 못찾아서 고생을 하여 해당 내용을 공유한다.
예약된 작업에 등록하게 위해서는 다음 class를 사용해야 한다.
ScheduledJob Class
uint32 Create(
[in] string Command,
[in] datetime StartTime,
[in, optional] boolean RunRepeatedly,
[in, optional] uint32 DaysOfWeek,
[in, optional] uint32 DaysOfMonth,
[in, optional] boolean InteractWithDesktop,
[out] uint32 JobId
);
1) Command
- 예약된 작업에서 수행할 Command(notepad의 경우 notepad.exe)
2) StartTime
- "YYYYMMDDHHMMSS.MMMMMM(+-)OOO",
앞의 YYYYMMDDHHMMSS - 년월일시간분초
(+-)OOO - Starttime 일반적인 LocalTime이 아니라 UTC Time임
3) RunRepeatedly
- 반복 수행 여부
4) DaysOfWeek
- 반복할 요일
(1:월 2:화 3:수 4:목 5:금 6:토 7:일)
5) DaysOfMonth
- 한달에 어느 날 반복할 것인지
(1:1일 2:2일 4:3일 - 계속 2배씩)
6) JobId
- Job No
Return Value
Return code | Description |
---|---|
0 |
The request is accepted. |
1 |
The request is not supported. |
2 |
The user does not have the necessary access. |
8 |
Interactive process. |
9 |
The directory path to the service executable file cannot be found. |
21 |
Invalid parameters have been passed to the service. |
22 |
The account that this service runs under is invalid or lacks the permissions to run the service. |
위의 내용은 Class 값이다.
실제로 Vbscript 사용할 수 없다.
그럼 실제로 Vbscript에서는 어떻게 사용해야 할까?
다음과 같이 해당 Class를 오픈한 후 Create를 하면된다.
ex)
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set objNewJob = objWMIService.Get("Win32_ScheduledJob") errJobCreated = objNewJob.Create _ ("Notepad.exe", "********012500.000000-420", _ True , 4, , True, JobId) If errJobCreated <> 0 Then Wscript.Echo "Error on task creation" Else Wscript.Echo "Task created" End If1. Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
(해당 자료는 MS 사이트에서 퍼옴)
해당 ScheduledJob을 가져온다.
2. errJobCreated = objNewJob.Create _
("Notepad.exe", "********012500.000000-420", _
True , 4, , True, JobId)
해당 Class에 대해 새로운 잡을 Create(즉 등록) 한다.
Create의 매개변수는 다음과 같다.
1. Execute 구문
2. 시간
3. 반복여부
4. 요일(위와 동일)
6. JobID
위의 예제의 경우 매주 목요일 1시 25분에 notepad를 실행하게 됩니다.
예약된 작업은 유닉스의 Crontab과 같은 기능을 하므로 많은 사용을 하게 되지만
제어판 - 예약된 작업에서 등록을 하기는 힘드므로 여러대의 서버들에
자동화를 하기 위해서 많이 사용할거 같다.
msdn에서 상세한 내용을 못찾아서 고생을 하여 해당 내용을 공유한다.