perché l'attività dell'utilità di pianificazione di Windows 7 ha esito negativo con errore 2147942667


133

Sto affrontando uno strano problema. Ho programmato un'attività per il lancio di un file batch. Quando eseguo l'attività con l'opzione, Run only when user is logged ontutto funziona bene. ma voglio eseguire questa attività in background e quindi la sto usando usando l'opzione Run whether user is logged on or not. Ora quando eseguo l'attività non funziona. Ottengo seguenti 2 errori. Non capisco questo errore. Aiutatemi a risolvere questo problema.

 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.

41
Convertire il codice di errore in esadecimale per ottenere 0x8007010B. Il 7 lo rende un errore di Windows. Il che rende il codice di errore 010B 267. "Il nome della directory non è valido". Certo, succede.
Hans Passant,

1
@HansPassant, è geniale. Converti in esadecimale, utilizza gli ultimi quattro byte per cercare il codice di errore. Spero di ricordare quello!
Mark Berry,

FWIW Ho trovato che l'interfaccia utente dell'Utilità di pianificazione principale aveva l'attività con un "Risultato ultima esecuzione" o una colonna simile, che mostrava un messaggio di errore "Il nome della directory non è valido". La soluzione nella nostra situazione era la risposta da jp2code di seguito sulla rimozione delle virgolette dalla cartella Start In, perché l'avevo copiata dal comando citato per l'esecuzione.
Neek,


1
@RJDunnill, grazie per avermi segnalato. Molto utile!
Mark Berry

Risposte:


253

Ho avuto lo stesso problema.

La soluzione per me è stata trovata nell'articolo 2452723 di Microsoft KB:

Le attività pianificate successive di Windows Vista non possono essere eseguite se il percorso nel campo "Avvia in (Facoltativo)" presenta virgolette

Fondamentalmente, modifica l'attività pianificata e prendi le virgolette dal campo Inizia in:

  1. Apri l'attività pianificata
  2. Passa alla scheda "Azioni"
  3. Apri la tua azione
  4. Rimuovi le virgolette (") dal campo" Inizia tra (opzionale) "
  5. Salva e chiudi tutte le finestre di dialogo aperte

Finestra di dialogo Modifica azione

Per ottenere il messaggio di errore rilevante:

1) Converti 2147942667 in esadecimale: 8007010B
2) Prendi le ultime 4 cifre (010B) e converti in decimale: 267
3) Esegui: net helpmsg 267
4) Risultato: "Il nome della directory non è valido."

Finestra del prompt dei comandi


5
il problema era legato all'uso dell'autorizzazione. Quando eseguito utilizzando l'opzione Run whether user is logged on or not, stavo usando un altro utente per eseguire l'applicazione. Questo nuovo utente non disponeva delle autorizzazioni appropriate per leggere i dati e quindi l'errore. Grazie.
Alok

1
Neanche per me era "permesso". Era la cartella Start in . Se lo è "C:\Some Path\", è sbagliato perché ha le virgolette. Deve dire `C: \ Some Path` (senza virgolette).
jp2code,

16
Questa è la soluzione Rimuovere le virgolette dalla casella di testo Inizia nella cartella . Abbastanza una correzione esoterica. Ore sprecate su questo - vorrei che Microsoft avrebbe reso più facile con errori utili o risolto questo ovvio bug.
Joseph

6
Per quello che vale sto ricevendo questo errore, ma l'impostazione Inizio nella cartella non ha virgolette, ma il percorso a cui si fa riferimento non esisteva.
shufler,

2
Non sto usando le virgolette e sto ancora ricevendo lo stesso problema. @RayofCommand: hai trovato la soluzione a questo problema.
Utente1551892

9

Per me è stato il "Start In" - Ho copiato i valori da un server più vecchio e ho aggiornato il percorso alla nuova posizione .exe, ma ho dimenticato di aggiornare la posizione "start in" - se non esiste, tu ottieni anche questo errore

Citando il commento di @ hans-passant dall'alto, perché è utile eseguire il debug di questo problema:

Convertire il codice di errore in esadecimale per ottenere 0x8007010B. Il 7 lo rende un errore di Windows. Il che rende il codice di errore 010B 267. "Il nome della directory non è valido". Certo, succede.


7

Questo può accadere per più di un motivo. Nel mio caso ciò è accaduto a causa di un problema di autorizzazioni. L'utente in cui l'attività era in esecuzione non aveva l'autorizzazione a scrivere nella directory dei registri, quindi non è riuscito con questo errore.


3

Ho avuto lo stesso problema, su Windows 7.

Stavo ottenendo l'errore 2147942667 e un rapporto di impossibilità di eseguire c: \ windows \ system32 \ CMD.EXE. Ho provato con e senza virgolette doppie in Script e Start-in e non ha fatto differenza. Quindi ho provato a sostituire tutti i riferimenti di percorso alle unità di rete mappate e con i riferimenti UNC (\ Server1 \ Sharexx \ my_scripts \ run_this.cmd) e questo è stato risolto per me. Colpetto.


Questo alla fine lo ha fatto anche per me. Ho dovuto usare "Net Use" per ottenere il nome del server e quindi eseguire il ping per ottenere il nome del dominio. Alla fine era \\ machine.domain.local \ app.exe. \\ Machine \ app.exe non ha funzionato
greg

L'ho fatto anche per me. Grazie!
Jace,

2

Per una risposta più generica, converti il ​​valore dell'errore in esadecimale, quindi cerca il valore esadecimale in Costanti di errore e successo dell'utilità di pianificazione di Windows


3
Ciao Mike. Ho usato il calcolatore di Windows in modalità programmatore per convertire2147942667 a HEX: 0x8007010B. Tale valore non viene visualizzato nel collegamento fornito. Cordiali saluti, ovviamente.
jp2code,

4
Ho appena Googled esso: 2147942667 in hex. Anche Google è una calcolatrice.
Baodad,

0

Per me è stato "Start In" - ho lasciato accidentalmente nel '.py' alla fine del nome del mio programma. E ho dimenticato di scrivere in maiuscolo il nome della cartella in cui si trovava ("App").


0

Per me, questo era dovuto alla variabile d'ambiente PATH dell'utente, che non sembrava funzionare anche se l'utente aveva ragione, quindi avevo bisogno di inserire l'intero percorso eseguibile nel campo del programma.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.