Napraw zaplanowane zadanie, które nie zostanie uruchomione dla pliku .BAT

Jeśli masz plik .BAT i próbujesz uruchomić go automatycznie za pomocą Harmonogramu zadań(Task Scheduler) w systemie Windows(Windows) , być może napotkałeś problem, w którym po prostu nie działa, chyba że ręcznie uruchomisz zadanie.

Utworzyłem plik wsadowy, który usuwa wszystko w folderze tymczasowym przy każdym uruchomieniu komputera. Stworzyłem podstawowe zadanie w Harmonogramie zadań(Task Scheduler) i liczyłem na najlepsze. Niestety nic się nie wydarzyło po uruchomieniu komputera. Po wielu próbach i błędach wymyśliłem, jak uruchomić skrypt.

W tym artykule przeprowadzę Cię przez ustawienia i uprawnienia, które musisz dostosować, aby plik wsadowy działał bez ręcznej interwencji.

Krok 1: Sprawdź uprawnienia File/Folder

Pierwszym krokiem do rozwiązania tego problemu jest upewnienie się, że konto używane do uruchamiania skryptu w Harmonogramie zadań(Task Scheduler) ma uprawnienia Pełna kontrola(Full Control) do folderu zawierającego skrypt, samego skryptu i wszelkich folderów/plików, których dotyka skrypt podczas jego uruchamiania.

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

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 moim folderze Dokumenty. Ścieżka to C:\Users\username\Documents . Poszedłem do C: \ Users \ nazwa użytkownika, kliknąłem prawym przyciskiem myszy folder Dokumenty(Documents) i kliknąłem Właściwości(Properties) . Następnie kliknąłem na zakładkę Bezpieczeństwo .(Security)

Jak widać, konto użytkownika Aseem zostało wyraźnie dodane i otrzymało uprawnienia Pełna kontrola(Full Control) . Teraz musisz zrobić to samo dla folderu zawierającego skrypt i dla samego skryptu. Nie zakładaj po prostu, że jeśli przyznasz uprawnienia do folderu zawierającego skrypt, jesteś gotowy, ponieważ tak nie jest. Na koniec ustaw uprawnienia do dowolnych plików i folderów, z którymi skrypt będzie wchodzić w interakcje.

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

Uwaga: Konto używane do uruchamiania skryptu musi należeć do lokalnej grupy Administratorzy na komputerze. W moim przypadku konto Aseem jest kontem administratora i dlatego jest częścią lokalnej grupy Administratorzy. (Note: The account that is being used to run the script has to be part of the local Administrators group on the computer. In my case, the Aseem account is an administrator account and therefore part of the local Administrators group. )

Krok 2: Sprawdź ustawienia Harmonogramu zadań(Task Scheduler Settings)

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

Kliknij go dwukrotnie, a samo zadanie otworzy się w tym samym oknie. Aby edytować zadanie, musisz kliknąć je prawym przyciskiem myszy i wybrać Właściwości(Properties) .

Istnieje kilka zakładek i kilka rzeczy trzeba tutaj sprawdzić i zmienić. Po pierwsze, na karcie Ogólne(General) musisz sprawdzić konto użytkownika, które jest używane do uruchomienia zadania. W moim przypadku jest to konto Aseem , któremu wcześniej nadałem uprawnienia w systemie plików i które jest częścią grupy Administratorzy(Administrators) na komputerze.

Następnie należy wybrać opcję Uruchom bez względu na to, czy użytkownik jest zalogowany, czy nie( Run whether user is logged on or not) i wybrać Windows Vista, Windows Server 2008 w polu Konfiguruj dla(Configure for) .

Na karcie Akcje(Actions) musisz wybrać skrypt, kliknąć Edytuj(Edit) , a następnie dodać ścieżkę do folderu zawierającego skrypt w polu Rozpocznij w (opcjonalnie)(e Start in (optional)) . 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 do konta użytkownika, które uruchomi zadanie. To rodzi kolejny wymóg. Nie możesz używać konta, które nie ma hasła. Konto użytkownika musi mieć hasło, aby zadanie zostało uruchomione.

Na koniec, powinieneś uruchomić zadanie ręcznie raz w Harmonogramie zadań(Task Scheduler) , aby upewnić się, że działa. Jeśli działa poprawnie ręcznie po zmianie wszystkich ustawień, powinien działać, gdy powinien zostać uruchomiony. W moim przypadku miało to nastąpić na starcie i po wprowadzeniu zmian wszystko działało dobrze.

Zauważ, że jeśli twój skrypt uzyskuje dostęp do różnych komputerów w domenie po uruchomieniu, powinieneś spróbować użyć konta administratora domeny, aby uruchomić zadanie. Dzięki temu konto ma wystarczające uprawnienia dostępu do komputerów zdalnych.

Kolejną kwestią, na którą należy zwrócić uwagę, jest to, czy skrypt uzyskuje dostęp do zasobów w udziale sieciowym. Jeśli twój skrypt używa liter w celu uzyskania dostępu do sieci, może nie działać. Na przykład zamiast F:\data\ , powinieneś użyć w \\machinename\share_name\data\ Â. Jeśli nadal nie możesz uruchomić skryptu, napisz tutaj komentarz, a postaram się pomóc. Cieszyć się!



About the author

Jestem ekspertem komputerowym z ponad 10-letnim doświadczeniem i specjalizuję się w pomaganiu ludziom w zarządzaniu komputerami w ich biurze. Napisałem artykuły na takie tematy, jak optymalizacja połączenia internetowego, konfiguracja komputera w celu uzyskania najlepszych wrażeń w grach i nie tylko. Jeśli szukasz pomocy we wszystkim, co dotyczy Twojej pracy lub życia osobistego, jestem osobą dla Ciebie!



Related posts