我的應用程序我想要監視遠程服務器上特定計劃任務的「狀態」選項卡,並根據該狀態執行操作。即運行一個任務,如果它還沒有運行,等遠程計劃任務狀態
截至目前,我啓動cmd.exe作爲一個進程在C#中,psexec'ing該機器schtasks成文本文件,閱讀該文本文件,然後我執行相應的操作。
有沒有更好的方法來做這個過程(獲得一個schtask的特定狀態),不涉及第三方開放源代碼庫?
我的應用程序我想要監視遠程服務器上特定計劃任務的「狀態」選項卡,並根據該狀態執行操作。即運行一個任務,如果它還沒有運行,等遠程計劃任務狀態
截至目前,我啓動cmd.exe作爲一個進程在C#中,psexec'ing該機器schtasks成文本文件,閱讀該文本文件,然後我執行相應的操作。
有沒有更好的方法來做這個過程(獲得一個schtask的特定狀態),不涉及第三方開放源代碼庫?
你可以嘗試使用本地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是一個可能更容易取決於版本的選項。
請參閱「[堆棧溢出不允許標題中的標籤](http://meta.stackexchange.com/a/130208)」。 –