2012-06-26 6 views
4

для моего приложения Я хочу отслеживать вкладку «Статус» конкретной запланированной задачи на удаленном сервере и выполнять действия на основе этого состояния. т. е. запустить задачу, если она еще не запущена, и т. д.Статус удаленной запланированной задачи

В настоящее время я запускаю cmd.exe как процесс на C#, psexec'ing этой машины schtasks в текстовый файл, читая этот текстовый файл , а затем я выполняю соответствующее действие.

Есть ли лучшие способы сделать этот процесс (получить конкретный статус 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 является опцией, которая может быть проще в зависимости от версии.

Смежные вопросы