Fix Zaplanowane zadanie nie uruchomi się dla pliku .BAT


Jeśli masz plik .BAT i próbujesz go uruchomić automatycznie przy użyciu Harmonogramu zadań w systemie Windows, być może masz problem, który nie działa, chyba że ręcznie wykonasz zadanie.

Stworzyłem plik wsadowy, który usuwa wszystko wewnątrz folderu tymczasowego przy każdym uruchomieniu komputera. Stworzyłem podstawowe zadanie w Task Scheduler i miałem nadzieję na najlepsze. Niestety, nic się nie wydarzyło, gdy uruchomiłem komputer. Po wielu próbach i błędach zorientowałem się, jak uruchomić skrypt.

W tym artykule omówię ustawienia i uprawnienia, które należy dostosować, aby uzyskać plik wsadowy uruchamia się bez ręcznej interwencji.

Krok 1: Sprawdź uprawnienia do pliku / folderu

Pierwszym krokiem do rozwiązania tego problemu jest upewnienie się, że konto używane do uruchamiania skryptu w Task Scheduler ma uprawnienia Pełna kontrola w folderze zawierającym skrypt, sam skrypt i wszystkie foldery / pliki, które skrypt dotyka podczas działania.

Na przykład poniżej stworzyłem poniższy skrypt:

set folder="C:\test"
cd /d %folder% for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)

Zapisałem plik .BAT w folderze Moje dokumenty. Ścieżka to C: \ Users \ nazwa_użytkownika \ Dokumenty. Poszedłem do C: \ Users \ nazwa użytkownika, kliknąłem prawym przyciskiem myszy na folderze Dokumentyi kliknąłem Właściwości. Następnie kliknąłem kartę Bezpieczeństwo.

Jak widać, konto użytkownika Aseem został jawnie dodany i otrzymał uprawnienie Pełna kontrola. Teraz musisz zrobić to samo dla folderu zawierającego skrypt i samego skryptu. Nie zakładajcie, że jeśli dajecie uprawnienia do folderu zawierającego skrypt, dobrze jest iść, bo tak nie jest. Na koniec ustaw uprawnienia do plików i folderów, z którymi skrypt będzie wchodził w interakcje.

W moim przypadku musiałem przejść do C: \ test, kliknąć ten folder prawym przyciskiem myszy i dodaj moje konto użytkownika z uprawnieniami Pełna kontrola. To dość irytujące, że musisz to zrobić, ale jest to jedyny sposób na uruchomienie skryptu.

Uwaga: konto używane do uruchamiania skrypt musi należeć do lokalnej grupy Administratorzyna komputerze. W moim przypadku konto Aseem jest kontem administratora, a więc częścią lokalnej grupy Administratorzy.

Krok 2: Sprawdź ustawienia harmonogramu zadań

Przejdźmy teraz do Harmonogramu zadań i zmień tam odpowiednie ustawienia. Otwórz Harmonogram zadań i znajdź swoje zadanie w sekcji Aktywne zadania. Powinny być wymienione w kolejności alfabetycznej.

Dwukrotnie kliknij na niego, a sam otworzy zadanie w tym samym oknie. Aby edytować zadanie, musisz kliknąć go prawym przyciskiem myszy i wybrać Właściwości.

Jest kilka zakładek i kilka rzeczy musi się tutaj sprawdzić i zmienić. Po pierwsze, na karcie Ogólne, musisz sprawdzić konto użytkownika, które jest używane do uruchomienia zadania. W moim przypadku jest to konto Aseem, nadane wcześniej przeze mnie w systemie plików i należącym do grupy Administratorzy na tym komputerze.

Następnie wybierz opcję Uruchom, czy użytkownik jest zalogowany, czy niei wybierz Windows Vista, Windows Serwer 2008w polu Konfiguruj dla.

W przypadku działań karta, musisz wybrać skrypt, kliknąć Edytuj, a następnie dodać ścieżkę do folderu zawierającego skrypt w polu e Rozpocznij w (opcjonalnie). Może się to wydawać niepotrzebne, ale tak nie jest. W moim przypadku umieściłem w polu C: \ Users \ Aseem \ Documents \.

Teraz kliknij OK, aby zapisać ustawienia. Gdy to zrobisz, może pojawić się okno dialogowe, w którym musisz wprowadzić hasło konta użytkownika, które uruchomi zadanie. Pojawia się kolejny wymóg. Nie możesz użyć konta, które nie ma hasła. Konto użytkownika musi mieć hasło, aby zadanie zostało uruchomione.

Wreszcie, zadanie należy uruchomić ręcznie raz w Harmonogramie zadań aby upewnić się, że działa. Jeśli po zmianie wszystkich ustawień działa poprawnie ręcznie, powinien działać, gdy powinien zostać uruchomiony. W moim przypadku miało się to stać po starcie i po wprowadzeniu zmian wszystko działało dobrze.

Zwróć uwagę, że jeśli twój skrypt jest dostęp do różnych komputerów w domenie po uruchomieniu, należy spróbować użyć konta administratora domeny, aby uruchomić zadanie. Zapewni to, że konto ma wystarczające uprawnienia, aby uzyskać dostęp do komputerów zdalnych.

Inną rzeczą do zapamiętania jest to, czy twój skrypt uzyskuje dostęp do zasobów w udziale sieciowym. Jeśli twój skrypt używa liter, aby uzyskać dostęp do sieci, może nie działać. Na przykład zamiast używać F: \ data \, należy użyć w skrypcie \\ nazwa-maszyny \ nazwa_udziału \ danych \. Jeśli nadal nie możesz uruchomić skryptu, napisz tutaj komentarz, a ja postaram się pomóc. Ciesz się!

Powiązane posty:


13.09.2017