Tôi cần có danh sách tất cả tác vụ được lập lịch đang chạy trên một máy chủ nhất định vào danh sách hoặc mảng trong C#.Cách đọc đầu ra tiêu chuẩn từ một lệnh chạy qua Process.Start() dưới dạng danh sách hoặc mảng
Truy vấn
schtasks /query /S CHESTNUT105B /FO List
trả về một danh sách như thế này:
HostName: CHESTNUT105B
TaskName: Calculator
Next Run Time: 12:00:00, 10/28/2010
Status: Running
HostName: CHESTNUT105B
TaskName: GoogleUpdateTaskMachineCore
Next Run Time: At logon time
Status:
HostName: CHESTNUT105B
TaskName: GoogleUpdateTaskMachineCore
Next Run Time: 13:02:00, 10/28/2010
Tôi có đoạn code sau đây để thực hiện lệnh tôi đã nêu ở trên:
static void Main(string[] args)
{
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = "SCHTASKS.exe";
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
string MachineName = "CHESTNUT105b";
string ScheduledTaskName = "Calculator";
string activeDirectoryDomainName = "xxx";
string userName = "xxx";
string password = "xxxxx";
p.StartInfo.Arguments = String.Format("/Query /S {0} /FO LIST", MachineName);
p.Start();
}
Làm thế nào tôi có thể đọc danh sách được tạo thành danh sách trong C#?
Tôi chắc chắn có cách tốt hơn để truy xuất danh sách - thông qua các lớp WMI, nhưng tôi không biết đủ về không gian tên đó để đưa ra câu trả lời. – Oded