2012-06-26 7 views
4

내 응용 프로그램 원격 서버에서 예약 된 특정 작업의 "상태"탭을 모니터링하고 해당 상태를 기반으로 작업을 수행하려고합니다. 즉, 아직 실행 중이 아닌 작업을 실행하십시오.원격 예약 작업 상태

지금 당장은 C#에서 프로세스로 cmd.exe를 시작하고 해당 시스템의 schtasks를 텍스트 파일로 psexecing하여 해당 텍스트 파일을 읽습니다. , 그런 다음 해당 조치를 수행합니다.

제 3 자 오픈 소스 라이브러리를 포함하지 않는이 프로세스 (schtask의 특정 상태 가져 오기)를 수행하는 더 좋은 방법이 있습니까? 또한 여기

+0

"[스택 오버플로는 제목의 태그를 허용하지 않습니다.] (http://meta.stackexchange.com/a/130208)"를 참조하십시오. –

답변

1

당신은 기본 TaskService COM API를 사용하여 시도 할 수 있습니다 : 보안에 대한 몇 가지 작업에 대해

//add reference to the 'Task Scheduler 1.1 Type Library' 

using TaskScheduler; 

//... 

TaskSchedulerClass ts = new TaskSchedulerClass(); 
ts.Connect(remotehost, user, domain, password); 
IRunningTaskCollection tasks = ts.GetRunningTasks(1); 
foreach (IRunningTask task in tasks) 
{ 
    Console.WriteLine(task.Name); 
} 

과 권한은 http://msdn.microsoft.com/en-us/library/windows/desktop/aa382140(v=vs.85).aspx

참조

또는 powershell이 ​​버전에 따라 더 쉬운 옵션 일 경우.