por qué la tarea del programador de tareas de Windows 7 falla con el error 2147942667

133

Estoy enfrentando un problema extraño. He programado una tarea para lanzar un archivo por lotes. Cuando ejecuto la tarea con opción, Run only when user is logged ontodo funciona bien. pero quiero ejecutar esta tarea en segundo plano y por lo tanto estoy funcionando utilizando la opción Run whether user is logged on or not. Ahora cuando ejecuto la tarea no funciona. Recibo los siguientes 2 errores. No entiendo este error. Por favor ayúdeme a resolver esta situación.

 Task Scheduler failed to launch action "C:\Windows\SYSTEM32\cmd.exe" in instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of task "\stmm\Daemon". Additional Data: Error Value: 2147942667.
 Task Scheduler failed to start instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of "\stmm\Daemon"  task for user "GBLADHEDANI\N011940" . Additional Data: Error Value: 2147942667.
Alok
fuente
41
Convierta el código de error a hexadecimal para obtener 0x8007010B. El 7 lo convierte en un error de Windows. Lo que hace el código de error 010B 267. "El nombre del directorio no es válido". Claro, eso pasa.
Hans Passant
1
@HansPassant, eso es genial. Convierta a hexadecimal, use los últimos cuatro bytes para buscar el código de error. ¡Espero poder recordar eso!
Mark Berry
FWIW Encontré que la IU principal del Programador de tareas tenía la tarea con un 'Resultado de última ejecución' o una columna similar, mostrando un mensaje de error legible 'El nombre del directorio no es válido'. La solución en nuestra situación fue la respuesta de jp2code a continuación sobre eliminar las comillas de la carpeta Inicio en, porque lo había copiado del Comando citado para ejecutar.
Neek
Entonces, mi problema que resultó en 2147942667 se debió a una unidad asignada. Cuando configuré las rutas "Programa / script" y "Iniciar en" para usar el UNC completo, el trabajo se ejecutó correctamente.
user432532
Para vincular con el excelente comentario de @ HansPassant: docs.microsoft.com/en-us/windows/win32/debug/system-error-codes
Ian Kemp

Respuestas:

253

Tuve el mismo problema.

La solución para mí se encontró en el artículo KB Microsoft 2452723:

Las tareas programadas de Windows Vista en adelante no se ejecutan si la ruta en el campo "Iniciar en (Opcional)" tiene comillas

Básicamente, edite su tarea programada y saque las Cotizaciones del campo Iniciar en:

  1. Abra su tarea programada
  2. Cambie a la pestaña "Acciones"
  3. Abre tu acción
  4. Elimine las comillas (") del campo" Iniciar en (opcional) "
  5. Guardar y cerrar todos los cuadros de diálogo abiertos

Cuadro de diálogo Editar acción

Para obtener el mensaje de error relevante:

1) Convertir 2147942667 a hexadecimal: 8007010B
2) Tomar los últimos 4 dígitos (010B) y convertir a decimal: 267
3) Ejecutar: net helpmsg 267
4) Resultado: "El nombre del directorio no es válido".

Ventana de símbolo del sistema

jp2code
fuente
55
El problema estaba relacionado con los permisos de uso. Cuando lo ejecuté usando la opción Run whether user is logged on or not, estaba usando un usuario diferente para ejecutar la aplicación. Este nuevo usuario no tenía los permisos adecuados para leer los datos y, por lo tanto, el error. Gracias.
Alok
1
Tampoco fue "permiso" para mí. Fue el inicio en la carpeta. Si es así "C:\Some Path\", eso está mal porque tiene comillas. Necesita decir `C: \ Some Path` (sin comillas).
jp2code
16
Esta es la solución Elimine las comillas del cuadro de texto Inicio en carpeta . Toda una solución esotérica. Perdió horas en esto: desearía que Microsoft lo hubiera hecho más fácil con errores útiles o solucionado este error obvio.
Joseph
66
Por lo que vale, obtengo este error, pero mi configuración de Inicio en carpeta no tiene comillas, sino que la ruta a la que se hizo referencia no existía.
shufler
2
No estoy usando comillas y sigo teniendo el mismo problema. @RayofCommand: ¿encontró la solución a este problema?
Usuario1551892
9

Para mí fue "Iniciar en": copié los valores de un servidor anterior y actualicé la ruta a la nueva ubicación .exe, pero olvidé actualizar la ubicación "iniciar en"; si no existe, usted obtener este error también

Citando el comentario de @ hans-passant de arriba, porque es valioso para depurar este problema:

Convierta el código de error a hexadecimal para obtener 0x8007010B. El 7 lo convierte en un error de Windows. Lo que hace el código de error 010B 267. "El nombre del directorio no es válido". Claro, eso pasa.

usuario230910
fuente
7

Esto puede suceder por más de una razón. En mi caso, esto sucedió debido a un problema de permisos. El usuario que ejecutaba la tarea no tenía permiso para escribir en el directorio de registros, por lo que falló con este error.

Cookalino
fuente
3

Tuve el mismo problema, en Windows7.

Recibía el error 2147942667 y un informe de no poder ejecutar c: \ windows \ system32 \ CMD.EXE. Intenté con y sin comillas dobles en el Script y Start-in y no hizo ninguna diferencia. Luego intenté reemplazar todas las referencias de ruta a unidades de red asignadas y con referencias UNC (\ Server1 \ Sharexx \ my_scripts \ run_this.cmd) y eso me lo arregló. Palmadita.

Pat Fahy
fuente
Esto finalmente lo hizo por mí también. Tuve que usar "Net Use" para obtener el nombre del servidor y luego hacer ping para obtener el nombre de dominio. Finalmente fue \\ machine.domain.local \ app.exe. \\ Machine \ app.exe no funcionó
greg
Lo hizo por mí también. ¡Gracias!
Jace
2

Para obtener una respuesta más genérica, convierta el valor de error en hexadecimal, luego busque el valor hexadecimal en Error de programador de tareas de Windows y Constantes de éxito

flymike
fuente
3
Hola Mike. Solía calculadora de Windows en el modo de programador para convertir 2147942667a HEX: 0x8007010B. Ese valor no aparece en el enlace que proporcionó. Solo para tu información, por supuesto.
jp2code
44
Acabo el Google: 2147942667 in hex. Google es una calculadora ahora también.
Baodad
0

Para mí fue el "Iniciar en": accidentalmente dejé en '.py' al final del nombre de mi programa. Y olvidé poner en mayúscula el nombre de la carpeta en la que estaba ('Aplicaciones').

Rios Cuomo
fuente
0

Para mí, esto se debió a la variable de entorno PATH del usuario, que no parecía funcionar a pesar de que el usuario era correcto, por lo que necesitaba poner toda la ruta ejecutable en el campo del programa.

rayzinnz
fuente