2012-11-29 13 views
91

Mam do czynienia z dziwnym problemem. Zaplanowałem zadanie, aby uruchomić plik wsadowy. Po uruchomieniu zadania z opcją Run only when user is logged on wszystko działa poprawnie. ale chcę uruchomić to zadanie w tle i dlatego uruchamiam go przy użyciu opcji Run whether user is logged on or not. Teraz, gdy uruchamiam to zadanie, to nie działa. Dostaję następujące 2 błędy. Nie rozumiem tego błędu. Pomóż mi rozwiązać ten problem.dlaczego zadanie harmonogramu zadań Windows 7 nie powiedzie się z błędem 2147942667

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. 
+27

Konwertuj kod błędu na hex, aby uzyskać 0x8007010B. 7 powoduje, że jest to błąd systemu Windows. Który powoduje 010B kod błędu 267. "Nazwa katalogu jest nieprawidłowa". Jasne, tak się dzieje. –

+1

@HansPassant, to genialne. Konwertuj na hex, użyj ostatnich czterech bajtów, aby wyszukać kod błędu. Mam nadzieję, że to pamiętam! –

+0

FWIW Zauważyłem, że główny interfejs użytkownika harmonogramu zadań miał zadanie z "wynikiem ostatniego uruchomienia" lub podobną kolumną, pokazując czytelny komunikat o błędzie "Nazwa katalogu jest nieprawidłowa". Poprawką w naszej sytuacji była odpowiedź z jp2code poniżej na temat usuwania cudzysłowów z folderu Start In, ponieważ skopiowałem go z cytowanego polecenia do uruchomienia. – Neek

Odpowiedz

178

Miałem ten sam problem.

Rozwiązanie dla mnie było znaleźć w Microsoft KB artykułu 2452723:

Windows Vista onwards scheduled tasks fail to run if the path in "Start in (Optional)" field has quotes

Zasadniczo edytować swoje zaplanowane zadanie i podjąć notowania na starcie w polu:

  1. Rozwinąć Zaplanowane zadanie
  2. Przejdź do zakładki "Czynności"
  3. Otwórz swoje działanie
  4. Usuń cudzysłów (") z pola«Rozpocznij w (opcjonalnie)»
  5. zapisać i zamknąć wszystkie otwarte okna dialogowe

enter image description here

+4

problem był związany z korzystaniem z uprawnień. Po uruchomieniu opcji "Uruchom, czy użytkownik jest zalogowany, czy nie", korzystałem z innego użytkownika, aby uruchomić aplikację. Ten nowy użytkownik nie miał odpowiednich uprawnień do odczytu danych, a tym samym błędu. Dzięki. – Alok

+1

To też nie było dla mnie "przyzwoleniem". To był folder ** Start in **. Jeśli ma '' C: \ Some Path \ "', to jest złe, ponieważ ma cytaty. Musi powiedzieć "C: \ Some Path \" (bez cudzysłowów). – jp2code

+10

To jest rozwiązanie. Usuń cudzysłowy z pola tekstowego ** Rozpocznij w folderze **. Dość ezoteryczna poprawka. Zmarnowane godziny - żałuję, że Microsoft nie ułatwiłby sobie pomocnych błędów lub nie naprawił tego oczywistego błędu. – Dan

2

Na odpowiedź bardziej ogólny, konwertować wartość błędu do hex, następnie wyszukaj wartość heksadecymalną pod adresem Windows Task Scheduler Error and Success Constants

+3

Cześć Mike. Użyłem kalkulatora Windows w trybie programisty, aby przekonwertować '2147942667' na HEX:' 0x8007010B'. Ta wartość nie pojawia się w podanym przez Ciebie linku. Tylko FYI, oczywiście. – jp2code

+3

Właśnie googlowałem: '2147942667 na heksie'. Google też jest teraz kalkulatorem. – Baodad

5

Może się tak zdarzyć z więcej niż jednego powodu. W moim przypadku stało się to z powodu problemu z uprawnieniami. Użytkownik, który uruchomił zadanie, nie miał uprawnień do zapisu w katalogu dzienników, więc nie udało mu się tego błędu.

3

Miałem ten sam problem, na Windows7.

Otrzymałem komunikat o błędzie 2147942667 i raport o niemożności uruchomienia c: \ windows \ system32 \ CMD.EXE. Próbowałem z podwójnymi cudzysłowami i bez niego w Skrypcie i Początku i nie robiło to żadnej różnicy. Następnie próbowałem zastąpić wszystkie odwołania do ścieżek do zamapowanych dysków sieciowych i odwołań UNC (\ Server1 \ Sharexx \ my_scripts \ run_this.cmd) i to naprawiło to dla mnie. Pat.

+0

To w końcu zrobiło to także dla mnie. Musiałem użyć "Net Use", aby uzyskać nazwę serwera, a następnie ping, aby uzyskać nazwę domeny. Ostatecznie był to \\ machine.domain.local \ app.exe. \\ Machine \ app.exe nie działało – greg

+0

Zrobiłem to też dla mnie. Dzięki! – Jace

2

Dla mnie był to "Start In" - skopiowałem wartości ze starszego serwera i zaktualizowałem ścieżkę do nowej lokalizacji exe, ale zapomniałem zaktualizować lokalizację "start in" - jeśli ona nie istnieje, masz ten błąd zbyt

Cytowanie @ komentarzu Hans-passant jest z góry, ponieważ jest cenne debgging ten problem:

przekonwertować kod błędu hex dostać 0x8007010B. The 7 sprawia, że ​​jest to błąd systemu Windows . Co powoduje, że kod błędu 010B to 267. "Nazwa katalogu jest nieprawidłowa" ". Jasne, tak się dzieje.