Estoy usando el siguiente código para cambiar el nombre de usuario y la contraseña 'Ejecutar como:' para una tarea programada en un host remoto.Verifique la existencia de tareas programadas y compruebe el estado
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();
Tengo un par de preguntas:
- ¿Cómo puedo comprobar si el servicio especificado existe en absoluto, de modo que si no existe, sólo puede salir del programa.
- ¿Cómo puedo verificar si la tarea programada se está ejecutando o está deshabilitada?
- Si la tarea programada está deshabilitada, ¿aún puedo cambiar las credenciales, o es como un servicio de Windows donde las credenciales no se pueden cambiar si está deshabilitado?
La declaración de devolución muestra este error: Excepción no controlada: System.IndexOutOfRangeException: Index estaba fuera del boun ds de la matriz. – xbonez
Cuando lo ejecuto, hay 2 líneas devueltas. La primera línea se ve así: 'Carpeta: \ '¿Tal vez la tuya es diferente? –
cuando ejecuta el código anterior? No puedo ejecutarlo debido al error – xbonez