对于我的应用程序我想监视远程服务器上特定计划任务的“状态”选项卡,并根据该状态执行操作。即,如果任务尚未运行,则运行任务等。
截至目前,我正在启动cmd.exe作为C#中的一个进程,psexec将该机器的schtasks转换为文本文件,读取该文本文件,然后执行相应的操作。
是否有更好的方法来执行此过程(获取schtask的特定状态),而不涉及第三方开源库?
答案 0 :(得分: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是一个可能更容易的选项,具体取决于版本。
答案 1 :(得分:-1)