我正在使用以下代码更改远程主机上计划任务的'Run As:'用户名和密码。检查计划任务是否存在并检查状态
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = "SCHTASKS.exe";
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
//p.StartInfo.Arguments = String.Format("/Change /TN {0} /RU {1} /RP {2}",ScheduledTaskName,userName,password);
p.StartInfo.Arguments = String.Format(
"/Change /S {0} /TN {1} /TR {2} /RU {3}\\{4} /RP {5}",
MachineName, ScheduledTaskName, taskPath, activeDirectoryDomainName, userName, password);
p.Start();
// Read the error stream first and then wait.
string error = p.StandardError.ReadToEnd();
p.WaitForExit();
我有几个问题:
- 我如何检查是否指定的服务存在的话,那么,如果它不存在,我可以退出程序。
- 如何检查计划任务是否正在运行或停用?
- 如果计划任务处于禁用状态,我仍可以更改凭据吗?还是像Windows服务一样,如果密码被禁用,则凭据无法更改?
你的返回语句给出了这个错误:未处理的异常:System.IndexOutOfRangeException:索引超出了数组的缺省值 ds。 – xbonez 2010-10-27 18:10:20
当我运行它时,返回了2行。第一行看起来像这样:'文件夹:\'也许你的不同?当你运行上面的代码时,你的代码是 – 2010-10-27 18:19:11
?我无法运行错误 – xbonez 2010-10-27 18:26:32